Android的百度地图开发.ppt
《Android的百度地图开发.ppt》由会员分享,可在线阅读,更多相关《Android的百度地图开发.ppt(33页珍藏版)》请在三一办公上搜索。
1、Android的百度地图开发,Android进阶,百度地图API平台介绍,百度地图 Android SDK是一套基于Android 2.1(v1.3.5及以前版本支持android 1.5以上系统)及以上版本设备的应用程序接口。可以使用该套 SDK开发适用于Android系统移动设备的地图应用,通过调用地图SDK接口,您可以轻松访问百度地图服务和数据,构建功能丰富、交互性强的地图类应用程序。百度地图Android SDK提供的所有服务是免费的,接口使用无次数限制。您需申请密钥(key)后,才可使用百度地图Android SDK。任何非营利性产品请直接使用。,百度地图API平台,百度地图API网
2、址:http:/申请新密钥及查看原先申请的密钥开发指南 在安卓平台上使用百度地图的开发指南类参考 地图库所提供的类及方法说明相关下载 开发所使用的相关包及说明示例下例,申请key,点击 获取密钥 进入密钥申请页并阅读相关的使用条款勾选 已阅读并同意条款填写应用名称填写一下应用的相应功能及描述输入验证码确定后 密钥即可申请成功,如何把API 添加到我的Android工程中,在工程里新建libs文件夹(若不存在的话),将开发包里的baidumapapi_v2_1_1.jar拷贝到libs根目录下,将libapp_BaiduMapApplib_v2_1_1.so和libvi_voslib.so 拷贝
3、到libsarmeabi目录下项目属性中Java Build Path-Order and Export中,确定Android Private Libaries与Android Dependencies这两项前面的选择框被选上后,点确定菜单Project-clean重新编译项目后就可以正常使用地图中的功能进行编程了。上图包中的liblockSDK3.1.jar及对应的so文件是用于定位与搜索功能的,如果不需要可以不加入到项目当中,项目清单添加权限,在Manifest中添加使用权限,项目清单添加权限,在清单文件中添加对屏幕的支持,对需要加载地图的Activity进行属性设置,项目清单添加权限,在
4、布局中添加百度地图显示控件,这个就是加载百度地图的控件框,这个布局你可以根据自己的需要进行调整,或是放置到你的Activity需要的地方去。此控件需要接收到点击事件,所以需要把clickable设置成true。,MapActivity基类,管理显示在MapView类中activity处理逻辑的基础类。MapActivity这个基类不是必须的,但一般情况下,我们会把地图配置处相关处理代码放在基类中,然后在实现此基类的子类中专心实现业务的相关逻辑,而不是把大量的地图设置与业务逻辑混杂在一起。它的责任包括:Activity及地图生命周期管理 地图控制相关配置在一个MapView后面创建和销毁服务 定
5、位结果返回后的处理,BMapManager,地图、定位、搜索功能都需要用BMapManager对象来管理,BMapManager提供四个接口:init()、start()、stop()、destroy()。在应用程序里生成BMapManager 对象并初始化,在程序退出时调用destroy(),在需要使用sdk功能的Activity的onCreate()方法里调用start()方法,onDestroy()方法里调用stop()方法,或者onResume()/onPause()分别调用start()和stop()。常用方法:destroy():在程序退出前调用boolean init(java.
6、lang.StringstrKey,MKGeneralListener listener)初始化地图引擎,需要送入申请的百度地图Keyboolean start():开启百度地图APIboolean stop():终止百度地图API,调用此函数后,不会再发生回调,MKGeneralListener,一般事件通知接口,该接口返回网络状态,授权验证等结果,用户需要实现该接口以处理相应事件。void onGetPermissionState(intiError):返回授权验证错误,iError 为错误号,值为300,验证失败void onGetNetworkState(int iError)返回网络
7、错误参数:iError-错误号,MapView,一个显示地图的视图控件,当被焦点选中时,它能捕获按键事件和触摸手势去平移和缩放地图 setBuiltInZoomControls(booleanon):设置是否启用内置的缩放控件 getController():返回地图的MapController,这个对象可用于控制和驱动平移和缩放setDoubleClickZooming(booleanbDoubleClickZooming):设置mapview是否支持双击放大效果 getOverlays():获取当时地图控件中的已有图层refresh():刷新此地图控件,MapController,处理地图
8、移动和缩放的工具类setCenter(GeoPointpoint):设置地图视图中心点,必须设置中心点才能显示地图setZoom(intzoomLevel):设置地图的缩放级别。3-19值越大地图上建筑越大zoomIn/Out():放大/缩小一个级别animateTo(GeoPoint p,Message m):以动画的方式将地图视图移到到指定点上,结果后发送一个指定的消息。,GeoPoint(int latitudeE6,int longitudeE6)普通经纬度要乘以106表示一个地理坐标点,存放经度和纬度,以微度的整数形式存储,LocationClient,定位处理功能的核心类regis
9、terLocationListener(BDLocationListener)接收到定位数据后可由指定监听器中的onReceiveLocation(BDLocation)的方法来接收相关的数据并做相关的处理构造:new LocationClient(getApplicationContext()setLocOption(LocationClientOption)设置定位的参数start()启动定位功能,此功能是持续的,可以定义间隔刷新时间stop()结束定位功能,但前面设置的定位参数不会消失,可以再启动requestLocation()发起异步定位请求,如果位置没有变化,不会发起网络请求,直接
10、返回上次的位置。(2次间隔需要大于1秒),LocationClientOption,设置定位功能的定位方式disableCache(boolean)真表示禁用缓存定位setOpenGPS(boolean)是否使用GPS定位,前提是手机打开了GPS定位setAddrType(String)当字串为all时返回此位置地址信息,其它不返回setCoorType(String)设置返回坐标的格式gcj02-国测局bd09百度墨卡托bd0911百度经纬坐标(手机默认)setScanSpan(int)定时定位的时间间隔(ms)此值大于1000时,每隔此值指定的时间就会发起一次定位此值小于1000时或不设置
11、此值时,调用一次requestLocation()方法则定位一次,LocationData,保存用户位置的数据实例double latitude 纬度值double longitude 经度值float accuracy 定位精度float direction GPS定位时的方向角度int satellitesNum GPS卫星的数量speed GPS定位时速度,MapActivity代码,protected void onDestroy()mapView.destroy();if(mapManager!=null)mapManager.destroy();mapManager=null;su
12、per.onDestroy();,protected void onPause()mapView.onPause();if(mapManager!=null)mapManager.stop();super.onPause();,protected void onResume()mapView.onResume();if(mapManager!=null)mapManager.start();super.onResume();,地图代码示例,protected void onCreate(Bundle savedInstanceState)/MapActivity基类的Createsuper.o
13、nCreate(savedInstanceState);mapManager=new BMapManager(getApplication();mapManager.init(BAIDU_MAP_KEY,null);locationClient=new LocationClient(getApplicationContext();locationClient.registerLocationListener(this);LocationClientOption lco=new LocationClientOption();lco.setOpenGps(true);lco.setCoorType
14、(bd09ll);lco.setPriority(LocationClientOption.GpsFirst);/lco.setScanSpan(5000);locationClient.setLocOption(lco);locData=new LocationData();,protected void initMap(int mapId)/初始化地图mapView=(MapView)findViewById(mapId);mapView.setBuiltInZoomControls(true);mc=mapView.getController();locData.latitude=39.
15、915d;locData.longitude=116.404d;mc.setCenter(new GeoPoint(int)(locData.latitude*1e6),(int)(locData.longitude*1e6);mc.enableClick(true);mc.setZoom(14);locationOverlay=new MyLocationOverlay(mapView);mapView.getOverlays().add(locationOverlay);locationOverlay.enableCompass();mapView.refresh();,地图示例效果图,m
16、apView.setTraffic(true),mapView.setSatellite(true),覆盖物,所以叠加或覆盖到地图的内容,统称为地图覆盖物。如标注、矢量图形元素(包括折线、多边形和圆)、定位图标等。覆盖物拥有自己的地理坐标,当拖动或缩放地图时,覆盖物也会做相应的移动。地图API提供如下几种覆盖物:Overlay:覆盖物的抽象基类,所有的覆盖物都继承此类的方法,实现用户自定义图层显示。MyLocationOverlay:负责显示用户当前位置的Overlay。ItemizedOverlay:Overlay的一个基类,包含了一个OverlayItem列表,相当于一组分条的Overla
17、y,通过继承此类,将一组兴趣点显示在地图上。PoiOverlay:本地搜索图层,提供某一特定地区的位置搜索服务,比如北京市搜索公园,通过此图层将公园显示在地图上。PopupOverlay 用于快速在特定位置显示一个弹窗,通常用于导航,搜索定位点的提供RouteOverlay:步行、驾车导航线路图层,将步行、驾车出行方案的路线及关键点显示在地图上。TransitOverlay:公交换乘线路图层,将某一特定地区的公交出行方案的路线及换乘位置显示在地图上。,覆盖物类继承图,com.baidu.mapapi.map.Overlay,GraphicsOverlay,MyLocationOverlay,P
18、opupOverlay,ItemizedOverlay,PoiOverlay,RouteOverlay,TransitOverlay,标注我的位置,MyLocationOverlay myLay=new MyLocationOverlay(mapView);LocationData locData=new LocationData();locData.latitude=26.04968d;locData.longitude=119.307784d;/手动设定经纬度myLay.setData(locData);mapView.getOverlays().add(myLay);mapView.re
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Android 百度 地图 开发
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-2878226.html