百度地图地址转换

关键字: 百度坐标 谷歌坐标 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。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值