今天来说说坐标系转换的事情。
不同的API提供商可能会使用不同的坐标系,根据相关法律的规定,GPS获取的原始坐标又不能在互联网上对外提供,所以要使用API展示GPS数据就需要了解有关坐标系转换的内容。
通常GPS获取的经纬度属于WGS84坐标体系,在我国,这个坐标是不能直接应用在互联网服务上的,至少要经过国家测绘局的加密。google map在中国大陆地区的数据使用的就是经过国测局加密之后的坐标系,而google earth在中国地区仍然使用的是WGS84坐标系。
坐标转换
如果有GPS获取的坐标,或者之前从google map api获取的坐标,如何正确的转换到百度地图上呢?
首先我们打开google earth,获取鸟巢体育场处的位置:北纬39度59分29.38秒,东经116度23分24.99秒。
这是“度分秒”单位制的,我们把它转换为“度”,即:39.9914944,116.3902750。这是WGS84坐标系(与GPS获取的一致),为了在百度地图上显示正确位置需要调用转换接口得到:116.40293253658,39.999254873942。这个坐标在百度地图上显示位置为:
可以看到在百度地图上位置与google earth中是一样的。
同样如果是通过google map api获取的坐标也需要经过坐标转换。可以在如下地址进行坐标转换,也可以获取代码自行调用接口进行转换。
坐标转换地址:http://dev.baidu.com/wiki/static/map/API/examples/?v=1.2&0_5#0&5
如果发现获取的GPS坐标转换后在百度地图上有偏移,那么建议将这个原始坐标在google earth中进行验证,如果google earth中的位置与百度地图上的位置一致,那么说明原始坐标就是有偏移的,与转换过程没有关系。