今天在用leaflet的时候发现,手头数据的经纬度坐标是基于百度地图体系的,在leaflet中用openstreetmap会有很大的偏移,解决了偏移问题,顺便了解了一下不同地图使用的坐标体系,整理如下:
先说一说现有的坐标体系:
- WGS-84/地球坐标
使用者:谷歌(除去中国部分),OpenStreetMap
原始坐标体系。很可惜,在中国,任何一个地图产品都不允许使用GPS坐标。保密。
- GCJ-02/火星坐标/国测局坐标
使用者:谷歌(中国地图部分),腾讯,高德
在中国,必须至少使用GCJ-02的坐标体系。GCJ-02也是国内最广泛使用的坐标体系。
- BD-09/百度坐标
使用者:百度
百度公司独有的坐标系
下面介绍几个坐标转换的工具:
- coordtransform: 基于Node.js
- coordTransform_py: 基于Python版本
- GCJ02 BD09 and WGS84 coordinate system conversion code: 基于JavaScript的野生版本
看到定位点终于回到了它原本的位置,真是一身轻松呢~
【参考资料】
coordtransform
【高德地图API】如何解决坐标转换,坐标偏移?
GCJ02 BD09 and WGS84 coordinate system conversion code