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

文档全面上新

更科技的视觉体验,更高效的页面结构,快前往体验吧!

体验新版
第10行: 第10行:
 
在您接受使用条款约束的情况下,百度地图移动端SDK在您的移动应用中开放显示百度地图底图、进行地点搜索、路线查询和路况显示等功能。<br/>您只可使用在百度地图移动端SDK文档中所列明开放的SDK功能来对SDK相关服务数据的结果进行展示,不得直接存取、使用内部数据、图片、程序、模块或是任何其他百度地图的服务或功能。在接受使用条款约束的情况下,您可以在向最终用户提供其他信息的同时,使用SDK接口获得相关服务数据。
 
在您接受使用条款约束的情况下,百度地图移动端SDK在您的移动应用中开放显示百度地图底图、进行地点搜索、路线查询和路况显示等功能。<br/>您只可使用在百度地图移动端SDK文档中所列明开放的SDK功能来对SDK相关服务数据的结果进行展示,不得直接存取、使用内部数据、图片、程序、模块或是任何其他百度地图的服务或功能。在接受使用条款约束的情况下,您可以在向最终用户提供其他信息的同时,使用SDK接口获得相关服务数据。
  
在您使用上述服务时,请严格遵循[http://lbsyun.baidu.com/index.php?title=open/law “百度地图开发者服务条款”],如您满足以下使用场景“2.5 本服务面向您网站或应用是免费的,但如您就本服务进行商业使用或以其他方式直接或间接获得收益”,则需要事先获得百度的书面许可。需要说明的是如未获得授权,百度地图开放平台也不会随意终止或干扰您的正常使用。 如需要商用授权,可按照官网流程进行申请,[http://lbsyun.baidu.com/cashier/auth “申请入口”]
+
在您使用上述服务时,请严格遵循[http://lbsyun.baidu.com/index.php?title=open/law “百度地图开发者服务条款”],如您满足以下使用场景“2.5 本服务面向您网站或应用是免费的,但如您就本服务进行商业使用或以其他方式直接或间接获得收益”,则需要事先获得百度的书面许可。需要说明的是如未获得授权,百度地图开放平台也不会随意终止或干扰您的正常使用。 如需要商用授权,可按照官网流程进行申请,[http://lbsyun.baidu.com/cashier/auth “申请入口”]
 
</div>
 
</div>
  

2019年8月16日 (五) 17:59的版本

Android地图SDK
1、使用须知

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

在您使用上述服务时,请严格遵循“百度地图开发者服务条款”,如您满足以下使用场景“2.5 本服务面向您网站或应用是免费的,但如您就本服务进行商业使用或以其他方式直接或间接获得收益”,则需要事先获得百度的书面许可。需要说明的是如未获得授权,百度地图开放平台也不会随意终止或干扰您的正常使用。 如需要商用授权,可按照官网流程进行申请,“申请入口”

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/guide/tool/coordinate
(2)iOS地图SDK:http://lbsyun.baidu.com/index.php?title=iossdk/guide/tool/coordinate
(3)Web API服务:http://lbsyun.baidu.com/index.php?title=webapi/guide/changeposition

5、 Authentication Error 返回230的追查方法?

确保debug、release不同模式下,打包时的key中sha1值与注册时是否一致。app发起鉴权请求的 安全码可通过auth info过滤debug日志查看。

6、Android Studio、intellij工具下如何获取SHA1值?

keytool -list -v -keystore your_keystore。

7、手动把手机本地时间往后调,无法使用地图,提示ak校验不过?

因系统时间不正确时,key校验会不通过,请使用当前时间。

8、报错no implement method JNI_CommonMemCache_Init等

加载so失败导致找不到native方法实现

9、错误Log: so Failed to load问题的追查方法?

加载so失败首先确定so与jar是否是同一组合包,并检查存放位置(参考官方demo)以及存放的so与机器的CPU类型对应, 目前地图SDK支持的CPU有 armeabi、arm64-v8a、armeabi-v7a、x86、x86_64。

10、使用android studio加载so失败问题?

gradle中通过指定:jniLibs.srcDir 'libs',确保能正确获取libs中jar及so。

11定位相关参数的设置

参考MyLocationData,可对定位精度、方向、定位点的经纬、定位图层的显示方式、定位图标等进行设置,具体方式可参考官方demo。

12、定位相关的Bug反馈问题

定位相关的Bug反馈、相关问题的咨询请移至定位版块进行。

13、地图SDK需要哪些权限,各有什么用处

地图SDK权限说明: <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE”/> (获取设备网络状态,禁用后无法获取网络状态)

<uses-permission android:name="android.permission.INTERNET”/> (网络权限,当禁用后,无法进行检索等相关业务)

<uses-permission android:name="android.permission.READ_PHONE_STATE" /> (读取设备信息,用作统计)

<uses-permission android:name="com.android.launcher.permission.READ_SETTINGS" /> (读取系统信息,包含系统版本等信息,用作统计)

<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> (获取设备的网络状态,鉴权所需网络代理)

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

<uses-permission android:name="android.permission.WRITE_SETTINGS" /> (获取统计数据,cuid、channel)

<uses-permission android:name="android.permission.GET_TASKS" /> (鉴权所需该权限获取进程列表)

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

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

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

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

可能有几个原因:

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) 注册监听广播SDK_BROADTCAST_ACTION_STRING_PERMISSION_CHECK_ERROR

获取附加信息SDK_BROADTCAST_INTENT_EXTRA_INFO_KEY_ERROR_MESSAGE

和SDK_BROADTCAST_INTENT_EXTRA_INFO_KEY_ERROR_CODE

其中错误码:

601:未鉴权;

200:APP不存在,根据请求的AK,找不到对应的APP;

202:APP被管理员删除;

252:用户被管理员删除;

230:MCode与AK不匹配,请检查AK中的SHA1值和包名是否正确;

-11:Https网络不可用,请检查Https网络是否访问或者请关闭代理。


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

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

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

16、地图 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.基础底图(包括底图、底图道路、卫星图、室内图等);

17、地图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;

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

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

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

覆盖物相关

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

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

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

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

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

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

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

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

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

23、屏幕坐标与地理坐标之间的转换?

Projection的fromScreenLocation实现屏幕坐标转地理坐标;

toScreenLocation方法实现地理坐标转屏幕坐标。

24、根据已知坐标得不到正确的位置?

检查坐标的经纬度是否写反、坐标类型的正确性,坐标类型及相互转换关系参考

25、如何计算两点间距离?

计算两点间距离可参考DistanceUtil工具类

26、调用DistanceUtil.getDistance报错

通常是没有调用SDKInitializer.initialize(getApplicationContext())导致

27、检索无结果?

检查检索回调中Result的ERROR值,各状态码参考 com.baidu.mapapi.search.core.SearchResult.ERRORNO,包括网络问题、鉴权未通过等原因。

28、 发起多次检索的问题?

所有Search对象,需一次检索完成再发起新的检索,如需同时发起多次检索,可new多个Search对象。

29、根据检索结果,绘制overlay并更新地图状态

设置经纬度范围,并根据经纬度范围更新地图的缩放级别

//构造经纬度范围LatLngBounds

LatLngBounds.Builder builder = new LatLngBounds.Builder();

//更新地图的状态

mBaiduMap.setMapStatus(MapStatusUpdateFactory

.newLatLngBounds(builder.build()));

30、如何在地图上显示出检索得到的所有点集?

PoiOverlay容量为10,可自行通过Marker绘制来显示。

31、如何得到 一个坐标点周边的主要poi点

android 类参考类 ReverseGeoCodeResult java.util.List<PoiInfo> getPoiList() 位置附近的POI信息

32、绘制多个Marker点时耗时太长

Marker支持自定义样式绘制,绘制多个Marker点可参考点聚合功能。

33、InfoWindow显示问题?

InfoWindow支持View设置自定义样式,yOffset可设置y轴偏移量,并且不⽀支持多个InfoWindow同时显示,可使用Marker替代。

34、 InfoWindow重影问题?

InfoWindow构造时,拖动时用图片绘制,在停止时使用view。

35、如何缩放地图,使所有overlay都在是的视野内?

OverlayManager里有个zoomToSpan方法,该方法只对Marker类形的overlay有效.

自V3.6.0起,原内置覆盖物相关类代码开源(OverlayManager/PoiOverlay/TransitRouteOverlay/WalkingRouteOverlay/BusLineOverlay),源码可在BaiduMapsApiDemo工程中找到。

36、找不到overlayutil (开源代码),如 OverlayManager/PoiOverlay/TransitRouteOverlay/WalkingRouteOverlay/BusLineOverlay ?

V3.6.0起,原内置覆盖物相关类代码开源(OverlayManager/PoiOverlay/TransitRouteOverlay/WalkingRouteOverlay/BusLineOverlay),源码可在BaiduMapsApiDemo工程中找到。

下载【示例代码】,源码位置如下:

(1)合一包中,源码在放在 示例代码 中,源码路径为:BaiduMap_AndroidMapSDK_v4.X.X_Sample\BaiduMapsApiDemo\src\com\baidu\mapapi

37、获取手机屏幕上四个角的经纬度

Projection类里有fromScreenLocation方法,可以把屏幕坐标转换为经纬度


还是没有解决您的问题?请创建问题吧!

  • 文档根本没法用

  • 文档水平很差

  • 文档水平一般

  • 文档不错

  • 文档写的很好

如发现文档错误,或对此文档有更好的建议,请在下方反馈。问题咨询请前往反馈平台提交工单咨询。

提交反馈

拖动标注工具

添加矩形标注

添加箭头标注

完成

取消