android项目使用了百度地图的定位SDK,web端使用的也是高德地图,发现安卓的定位提交到web显示总是有误差。后发现高德使用的坐标系是“gcj02”也就是大家所说的“火星坐标”,
百度使用的是“BD09”因为是百度所用大家习惯称之为“百度坐标” ,如何将bd09转为gcj02呢,突然想到在百度的定位sdk里有这样一段说明(来自百度地图)
1
2
3
4
5
6
7
8
|
设置返回值的坐标类型。
public void setCoorType ( String )
我们支持返回若干种坐标系,包括国测局坐标系、百度坐标系,需要更多坐标系请联系我们,需要深度合作。目前这些参数的代码为。因此需要在请求时指定类型,如果不指定,默认返回百度坐标系。注意当仅输入IP时,不会返回坐标。目前这些参数的代码为
返回国测局经纬度坐标系 coor=gcj02
返回百度墨卡托坐标系 coor=bd09
返回百度经纬度坐标系 coor=bd09ll
百度手机地图对外接口中的坐标系默认是bd09ll,如果配合百度地图产品的话,需要注意坐标系对应问题。
|
也就是说百度这个定位sdk应该是可以直接返回gcj02坐标的,这样就可以直接在高德上使用了
代码如下
1
2
|
LocationClientOption option =
new
LocationClientOption();
option.setCoorType(
"gcj02"
);
//如果是百度坐标参数为 bd0911
|