百度地图地址转换

关键字: 百度坐标 谷歌坐标 BD-09 WGS-84 GCJ-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,调用方法:

1
2
GeoPoint wgs84 = YOUR_WGS_84_POINT;
GeoPoint bd09 = CoordinateConvert.bundleDecode(CoordinateConvert.fromWgs84ToBaidu(wgs84));

这里实在不明白为何要设计成CoordinateConvert.fromWgs84ToBaidu(wgs84)返回了一个Bundle,所以还需要CoordinateConvert.bundleDecode()再转成GeoPoint。

你可能感兴趣的:(百度地图地址转换)