关于坐标系,可能专业人士比较清楚,可是我一个外行的人,确实被各种坐标系给弄晕了。
地理坐标系统,是一种球面坐标。
投影坐标系统,是一种平面坐标。
GPS,WGS-84,原始坐标体系。一般用国际标准的GPS记录仪记录下来的坐标,都是GPS的坐标。很可惜,在中国,任何一个地图产品都不允许使用GPS坐标,据说是为了保密。GPS坐标形式如图,度分秒形式的经纬度。
国测局02年发布的坐标体系。又称“火星坐标”。在中国,必须至少使用GCJ-02的坐标体系。比如谷歌,腾讯,高德都在用这个坐标体系。GCJ-02也是国内最广泛使用的坐标体系。
一般都是由GCJ-02进行再一次加密得到的。这种体系就根据每个公司的不同,坐标体系都不一样了。比如,百度。就在火星坐标上面再一次进行了加密。哎,这他妈已经很混乱了,结果还来。
现在使用谷歌地球、百度、高德分别拾取故宫左下角位置的坐标进行对比。位置如图所示。
坐标相互转换,结果如下。
坐标系 | Google Earth(WGS84) | 百度地图(BD09) | 高德地图(火星坐标) |
---|---|---|---|
拾取的坐标 | 116.386364 39.911985 | 116.398991,39.919753 | 116.392627,39.913428 |
转换为谷歌地球 | \ | 116.386371,39.912032 | 116.386384,39.912025 |
转换为百度地图 | 116.398979,39.919702 | \ | 116.399003,39.919747 |
转换为高德地图 | 116.392602,39.913383 | 116.392614,39.913434 | \ |
表格里面的结果不能十分直观的反应各个坐标系之间的差异了,但是放在地图里面就十分直观了。对比下图。
每一种地理坐标系统都有一种与之对应的投影坐标。
这个是球面坐标,对于北京来说,就是(116.38817139.935961)这样的坐标。比如腾讯、高德、百度都是这样的经纬度坐标。谷歌是经纬度顺序写反的经纬度坐标。
如果是度分秒坐标,需要进行转换,才能得到这样的经纬度坐标。详见坐标转换。
平面坐标,相当于是直线距离,数字一般都比较大,像这样的。(215362.00021333335 99526.00034912192)
墨卡托坐标,主要用于程序的后台计算。直线距离嘛,加加减减几乎计算方便。
搜狗地图API就是直接使用的墨卡托坐标。
目前OpenLayers 3支持两种投影
1. EPSG:4326,等同于WGS84坐标系
2. EPSG:3857,等同于900913,由Mercator投影而来,经常用于web地图
考虑到天地图是以CGCS-2000坐标系,与GPS坐标系一样,同是地心坐标系,所以相差不大数据偏移量会很小
百度地图一般使用的是(BD-09)
GCJ-02
坐标转换
例外,百度API上取到的,是BD-09坐标,只适用于百度地图相关产品。
例外,搜狗API上取到的,是搜狗坐标,只适用于搜狗地图相关产品。
例外,谷歌地球,google earth上取到的,是GPS坐标,而且是度分秒形式的经纬度坐标。在国内不允许使用。必须转换为GCJ-02坐标。