百度地图与高德地图坐标转换_百度定位sdk获取火星坐标
程序员文章站
2022-03-01 16:05:26
...
安卓项目使用了百度地图的定位SDK,在展示地图的时候同时使用了百度地图和高德地图
但是问题就来了、使用百度地图定位返回的坐标是“BD09”的坐标系、不可以在高德地图里面直接使用
这时就设置到的坐标系的转换问题了、我也网络上查了一下、方法有点复杂
当我后来在翻阅百度定位SDK的API时无意中发现、原来百度定位是可以直接返回gcj02的坐标的
这是百度官方的文档、有需求的朋友可以查看一下
补充了下坐标系知识后发现高德使用的坐标系是“gcj02”也就是大家所说的“火星坐标”
百度使用的是“BD09”因为是百度所用大家习惯称之为“百度坐标”
下面是官方摘抄的内容
设置坐标类型:
设置返回值的坐标类型。
public void setCoorType ( String )我们支持返回若干种坐标系,包括国测局坐标系、百度坐标系,需要更多坐标系请联系我们,需要深度合作
目前这些参数的代码为。因此需要在请求时指定类型,如果不指定,默认返回百度坐标系
注意当仅输入IP时,不会返回坐标。目前这些参数的代码为
返回国测局经纬度坐标系 coor=gcj02
返回百度墨卡托坐标系 coor=bd09
返回百度经纬度坐标系 coor=bd09ll
百度手机地图对外接口中的坐标系默认是bd09ll,如果配合百度地图产品的话,需要注意坐标系对应问题
有关坐标系的更多问题,请看常见问题
也就是说百度这个定位sdk应该是可以直接返回gcj02坐标的、这样就可以直接在高德上使用了
高德地图使用代码如下
LocationClientOption option = new LocationClientOption(); option.setCoorType("gcj02");//如果是百度坐标参数为 bd0911
百度地图使用代码如下
LocationClientOption option = new LocationClientOption(); option.setCoorType("bd09ll");//如果是百度坐标参数为 bd09ll
看来百度公司对于SDK使用中发现这块要比高德做的好一些
所以才会出现尽管高德地图数据不错但在开发中还是百度地图摘得头彩