Android 轻松实现百度地图定位

来源:互联网 发布:安桥e700m 淘宝 编辑:程序博客网 时间:2024/06/02 03:45
最近在做一地图定位软件,下面分享一下自己在做的过程中遇到的问题,希望对大家有帮助:
首先就是要用百度地图的API需要申请一个Key值,要到百度地图API中申请:
http://developer.baidu.com/map/index.php?title=android-locsdk

然后需要下载百度地图的SDK:
好多步骤在百度地图API中都有,具体就不给大家说了:
 

要注意的问题是:
1.
  1. SDK4.2及之后版本需要在Mainfest.xml设置Accesskey,设置有误会引起定位和地理围栏服务不能正常使用,必须进行Accesskey的正确设置。 

  2. 设置AccessKey,在application标签中加入 

  3. <meta-data
  4.             android:name="com.baidu.lbsapi.API_KEY"
  5.             android:value="key" />       //key:开发者申请的key
复制代码
2.
  1. 定位SDK必须注册GPS和网络的使用权限。 

  2. 使用定位SDK请尽量保证网络连接通畅(GPS定位方式不需要连网,但如果需要地址信息、位置语义化、POI等信息都需要联网的)。目前离线功能已经支持获取上述信息,但离线定位不是百分百都能定位成功的,增加我们如何保证在线定位成功的措施,以打消用户对于离线定位的顾虑。 

  3. 我们强烈建议您设置自己的prodName,并保管好,这样方便我们为您提供更好的定位服务。 

  4. 若需要返回的定位结果里包含地址信息,请保证网络连接。因为GPS是本地获取的定位位置,在某些情况下有可能不带地址信息。 

  5. 定位SDK可以返回bd09、bd09ll、gcj02三种类型坐标,若需要将定位点的位置通过百度Android地图 SDK进行地图展示,请返回bd09ll,将无偏差的叠加在百度地图上。 

  6. 有的移动设备锁屏后为了省电会自动关闭网络连接,此时网络定位模式的定位失效。此外,锁屏后移动设备若进入cpu休眠,定时定位功能也失效。若您需要实现在cpu休眠状态仍需定时定位,可以用alarmManager 实现1个cpu可叫醒的timer,定时请求定位。
复制代码
3.这样运行的地图是默认精确度比较大的,我想定位的比较细致,看了半天的文档终于被我找到了:
  1. mBaiduMap = mMapView.getMap();
  2.         MapStatusUpdate msu = MapStatusUpdateFactory.zoomTo(14.0f);//zoom越大越精确,一般14、16就可以了
  3.         mBaiduMap.setMapStatus(msu);
复制代码
好了这样就完美实现了,接下来的开发过程中会继续给大家分享的.........
0 0