浏览器版本低!无法浏览完整内容,建议升级或更换浏览器。

Android 地图SDK

百度地图SDK是一套应用程序接口, 通过调用地图SDK接口,开发者可以轻松访问百度地图的服务和数据,构建功能丰富、交互性强的地图类应用程序。


1、使用须知

百度地图移动版API 由可让您在接受使用条款约束的情况下,在您的移动应用中显示百度地图图片;进行地点搜索、路线查询和交通流量显示等操作。
您只可使用在百度地图移动版API文档中所列明开放的API功能来对API相关服务数据的结果进行展示,不得直接存取、使用内部数据、图片、程序、模块或是任何其他百度地图的服务或功能。在接受使用条款约束的情况下,您可以在向最终用户提供其他信息的同时,使用 API 获得API相关服务数据。

百度地图开放平台面向开发者开放的产品及服务均为免费,请严格遵循“百度地图开发者服务条款”进行使用,如您满足以下使用场景“2.5 本服务面向您网站或应用是免费的,但如您就本服务进行商业使用或以其他方式直接或间接获得收益,则您需要事先获得百度的书面许可。”需要说明的是如未获得授权,百度地图开放平台也不会随意终止或干扰您的正常使用。 如需要商用授权,可按照官网流程进行申请http://lbsyun.baidu.com/index.php?title=open/help_index

2、百度地图SDK使用什么坐标系?

1) 百度地图SDK在国内(包括港澳台),输入、输出默认使用BD09坐标;定位SDK默认输出是使用GCJ02坐标。 自iOS v3.3起,支持一次声明为GCJ02坐标类型,全应用支持输入GCJ02坐标,返回GCJ02坐标。

2) 海外地区,输入为WGS84坐标。

3、什么是国测局坐标、百度坐标、WGS84坐标?

三种坐标系说明如下:
(1)WGS84:表示GPS获取的坐标;
(2)GCJ02:是由中国国家测绘局制订的地理信息系统的坐标系统。由WGS84坐标系经加密后的坐标系。
(3)BD09:为百度坐标系,在GCJ02坐标系基础上再次加密。其中bd09ll表示百度经纬度坐标,bd09mc表示百度墨卡托米制坐标;

百度地图SDK在国内(包括港澳台)使用的是BD09坐标;在海外地区,统一使用WGS84坐标。开发者在使用百度地图相关服务时,请注意选择。

4、如何从其他体系的坐标迁移到百度坐标?

百度地图开放平台提供了官方的坐标转换接口,请开发者直接选择使用。开发者切勿从非官方渠道获得坐标转换方法。各平台坐标转换方法如下:
(1)Android地图SDK:http://lbsyun.baidu.com/index.php?title=androidsdk
(2)iOS地图SDK:http://lbsyun.baidu.com/index.php?title=iossdk
(3)Web API服务:http://lbsyun.baidu.com/index.php?title=webapi

5、地图首次安装白屏(仅白屏无网格)?

可能有几个原因: 1、jar中包含assets资源,如果脚本编译没有把这个资源打包进去,导致无法获取地图渲染必须的资源,因此白屏,通常用IDE生成apk没有问题,因为会自动merge工程的assets和jar中的asset,所以请解压apk,查看asset目录下是否有地图必须的cfg目录等资源。

2、混淆问题,二次混淆没有keep百度相关类导致消息等类被混淆,无法正常绘制

6、地图网格,没有数据?


可能有几个原因:

1)ak错误,通常debug和release包的签名不同,请保证签名+包名与申请key时使用的一致,可以参考logcat中是否有认证错误的日志。

ak错误是最常见的情况,由于ak配置与打包apk时用的签名是一一对应的,所以打包环境变更(包括更换签名,切换开发环境,degug/release模式切换等),都会导致ak验证不通过, ak认证问题追查步骤如下:

(1) 在Logcat中查看Tag为auth info的log , 查看其中ak , mcode 与您在ak配置页面所配置的是否一致,如果不一致则说明是ak配置错误。

(2) 查看LogCat 中有没有 "Authentication Error" 字样的Log, 如果有,请反馈此Log.

(3) GeneralListener 的 onGetPermissionResult(int state) 有没有回调? state 值是多少?非0值表示ak错误

建议参考下面链接的帖子(自己就能解决) http://bbs.lbsyun.baidu.com/forum.php?mod=viewthread&tid=106461

2)混淆问题,二次混淆没有keep百度相关类导致消息等类被混淆,无法正常绘制。

3)SD卡不可能用或没有读写权限,导致无法正常处理数据混存,请保证SD卡可用并有权限。

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE”>; (允许sd卡写权限,需写入地图数据,禁用后无法显示地图)

8、百度地图SDK支持多少种地图,以及比例尺、缩放控件的设置?

目前支持基础地图(默认为3D效果)、卫星图、热力图、实时路况。可参考BaiduMap类进选择关闭。

// 设置是否显示比例尺控件 public void showScaleControl(boolean show)

覆盖物相关

// 设置是否显示缩放控件 public void showZoomControls(boolean show)

9、目前地图支持的覆盖物?


目前地图支持overlay继承类以及marker标注覆盖物,通过overlay继承类实现Arc、Circle、 Dot、Polyline、Polygon、Text等覆盖物的绘制,可实现自定义颜色、线宽等。Marker标注覆盖物 可实现自定义样式。

10、如何删除指定覆盖物?


地图中删除指定overlay通过overlayoptions获得overlay对象,remove方法删除。也可通过 baidumap的clear全部清除。

11、如何获得地图显示范围及中心点坐标?


MapStatus中target为地图中心点坐标、bound为显示区域。

12、com.baidu.mapapi.overlayutil包内的内置图层能夸线程操作么?


不能跨线程操作,请在主线程操作

13、地图 SDK 的基础地图和 各种覆盖物元素 的层级压盖关系

基础地图和上面的各种覆盖物元素,具有一定的层级压盖关系,具体如下(从上至下的顺序):

1.自定义View(MapView.addView(View););

2.弹出窗图层(InfoWindow);

3.定位图层(BaiduMap.setMyLocationEnabled(true););

4.指南针图层(当地图发生旋转和视角变化时,默认出现在左上角的指南针);

5.标注图层(Marker),文字绘制图层(Text);

6.几何图形图层(点、折线、弧线、圆、多边形);

7.底图标注(指的是底图上面自带的那些POI元素);

8.百度城市热力图(BaiduMap.setBaiduHeatMapEnabled(true););

9.实时路况图图层(BaiduMap.setTrafficEnabled(true););

10.热力图图层(HeatMap);

11.地形图图层(GroundOverlay);

12.瓦片图层(TileOverlay);

13.基础底图(包括底图、底图道路、卫星图、室内图等);

14、地图level对应距离(比例尺级别对应的多少米)

level: 距离(米) 22: 2;

21: 5;

20: 10;

19: 20;

18: 50;

17: 100;

16: 200;

15: 500;

14: 1000;

13: 2000;

12: 5000;

11: 10000;

10: 20000;

9: 25000;

8: 50000;

7: 100000;

6: 200000;

5: 500000;

4: 1000000;

3: 2000000;

15、百度地图SDK使用的坐标系统是什么?

百度地图SDK采用的是百度自行加密的BD09ll坐标系。