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

Android 地图SDK

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

坐标知识介绍

国内主流坐标系类型

主要有以下三种

1. WGS84:为一种大地坐标系,也是目前广泛使用的GPS全球卫星定位系统使用的坐标系;

2. GCJ02:是由中国国家测绘局制订的地理信息系统的坐标系统,是由WGS84坐标系经加密后的坐标系;

3. BD09:百度坐标系,在GCJ02坐标系基础上再次加密。其中BD09ll表示百度经纬度坐标,BD09mc表示百度墨卡托米制坐标。

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

百度地图SDK使用什么坐标类型?

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

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

为什么需要转换坐标?

百度地图的服务,国内(包括港澳台)使用BD09坐标,国外使用WGS84坐标。若使用非BD09坐标直接叠加在百度地图上,因坐标值不同,展示位置就会偏移。

举例:

1)在国内(包括港澳台):POI使用WGS84或GCJ02坐标数值,直接显示在百度地图上,POI展示位置就会偏移,因此通过其他坐标(WGS84、GCJ02)调用服务时,需先将其他坐标转换为BD09,再访问百度地图数据。

2)在国外:POI使用WGS84坐标数值,则无需转换,百度地图国外即使用WGS84坐标。

非百度坐标系,如何转换成百度坐标系?

1. 通用坐标转换方法: 手动将输入的WGS84、GCJ02坐标转换为BD09。适用于所有使用百度地图的开发者,是转换为百度BD09坐标的官方基础算法。

2. 自动坐标转换方法: 自Android v4.3起,支持一次声明GCJ02坐标类型,全应用内自动执行GCJ02到BD09的坐标转换,即直接输入GCJ02坐标,返回GCJ02坐标。

通用坐标转换方法(坐标之间互转)

除了直接使用GCJ02坐标系,开发者仍可以自行转换坐标类型,将WGS84和GCJ02转换为百度BD09坐标,如未对坐标参数进行设置,默认使用BD09坐标系

注意:请勿使用其他非官方转换方法!!!

支持其他坐标转百度经纬度坐标BD09ll

转换方式如下:

// 将google地图、soso地图、aliyun地图、mapabc地图和amap地图// 所用坐标转换成百度坐标  

CoordinateConverter converter  = new CoordinateConverter();  
converter.from(CoordType.COMMON);  

// sourceLatLng待转换坐标  

converter.coord(sourceLatLng);  
LatLng desLatLng = converter.convert();  
 
// 将GPS设备采集的原始GPS坐标转换成百度坐标  

CoordinateConverter converter  = new CoordinateConverter();  
converter.from(CoordType.GPS);  

// sourceLatLng待转换坐标  

converter.coord(sourceLatLng);  
LatLng desLatLng = converter.convert();

百度经纬度坐标BD09ll转国测局坐标GCJ02ll

转换方式如下:

LatLng desCoord = CoordinateConverter.from(BD09LL).coord(LatLng srcCoord);

百度墨卡托坐标转百度经纬度坐标接口

转换方式如下:

LatLng desCoord = CoordinateConverter.from(@CoordType BD09MC).coord(LatLng srcCoord);
自动坐标转换(GCJ02坐标输入/输出)

自Android v4.3起,一次声明GCJ02坐标类型,全应用自动执行坐标转换,即输入GCJ02坐标,返回GCJ02坐标。

声明坐标类型的代码如下:

SDKInitializer.setCoordType(CoordType.GCJ02);//默认为BD09LL坐标

也可以获取当前使用的坐标类型:

SDKInitializer.getCoordType();//BD09LL或者GCJ02坐标
注意事项

自动坐标转换方法仅适用于国内(包括港澳台地区)且输入坐标为GCJ02坐标的情况。

百度地图国外即使用WGS84坐标,如需要支持海外地区,直接使用WGS84坐标访问即可,无需转换。如需要同时访问国内和国外数据,自动坐标转换方法不适用。

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