安卓项目使用了百度地图的定位SDK,web端使用的也是百度地图, 后来发现界面显示百度地图不如高德效果好,web改用高德地图,本来的百度地图坐标是能够直接使用的,因为高德和百度地图的坐标系不一致 要如何转换呢。html
补充了下坐标系知识后发现高德使用的坐标系是“gcj02”也就是你们所说的“火星坐标”,java
百度使用的是“BD09”由于是百度所用你们习惯称之为“百度坐标” ,如何将bd09转为gcj02呢,忽然想到在百度的定位sdk里有这样一段说明(来自百度地图)android
1
2
3
4
5
6
7
8
|
设置返回值的坐标类型。
public void setCoorType ( String )
咱们支持返回若干种坐标系,包括国测局坐标系、百度坐标系,须要更多坐标系请联系咱们,须要深度合做。目前这些参数的代码为。所以须要在请求时指定类型,若是不指定,默认返回百度坐标系。注意当仅输入IP时,不会返回坐标。目前这些参数的代码为
返回国测局经纬度坐标系 coor=gcj02
返回百度墨卡托坐标系 coor=bd09
返回百度经纬度坐标系 coor=bd09ll
百度手机地图对外接口中的坐标系默认是bd09ll,若是配合百度地图产品的话,须要注意坐标系对应问题。
|
也就是说百度这个定位sdk应该是能够直接返回gcj02坐标的,这样就能够直接在高德上使用了 web
代码以下post
1
2
|
LocationClientOption option =
new
LocationClientOption();
option.setCoorType(
"gcj02"
);
//若是是百度坐标参数为 bd0911
|
看来百度公司对于SDK使用中发现这块要比高德作的好一些,因此才会出现尽管高德地图数据不错但在开发中仍是百度地图摘得头彩。url