百度地图地址转换
百度坐标谷歌坐标BD-09WGS-84GCJ-02
国内的地图坐标并不是实际的坐标,不解释。
在实际的实现中可能会需要坐标的转换,比如以下的场景:
1,原有的地图数据来自google,现有系统改成baidu了。
2,在iphone上使用google,在android上新开发的系统使用baidu了。
为了两个系统的兼容,所以在必要时需要转换,关键是这个转换技术是不公开的,不解释。百度的SDK为了方便,提供一种把GCJ-02和WGS-84转换成百度坐标(BD-09)的方式,所以在其它地方取得的数据在百度上显示是没有问题的,但是如果想从百度取得坐标放在google上显示就比较难了。在这里提供一种变通的方式。
在百度地图中取得WGS-84坐标,调用如下方法:
BMapManager.getLocationManager().setLocationCoordinateType(
MKLocationManager.MK_COORDINATE_WGS84);
这样从百度api中取得的坐标就是WGS-84了,可是这种坐标如果显示到百度地图上就会偏移,也就是说取出一个坐标,原封不动的显示上去就偏移了,所以为了显示也是正常就需要在绘制到百度地图上之前转换成BD-09。
转换成BD-09,调用方法:
GeoPointwgs84;
GeoPointbd09=CoordinateConvert.bundleDecode(CoordinateConvert.fromWgs84ToBaidu(wgs84));
这里实在不明白为何要设计成CoordinateConvert.fromWgs84ToBaidu(wgs84)返回了一个Bundle,所以还需要CoordinateConvert.bundleDecode()再转成GeoPoint。
相关推荐
id=3&hmsr=%E5%BC%80%E5%8F%91%E8%80%85-AI%E5%AD%A6%E4%B9%A0%E8%B7%AF%E7%BA%BF&hmpl=&hmcu=&hmkw=&hmci=