地理坐标系
说起地图总绕不开一个词:经纬度,通常用经纬度来表示地图上的一个点。事实上经纬度总是相对于一个地理坐标系而言的,对面向瓦片地图开发的技术人员而言,有必要对此有较为深入的了解。
首先明确:地理坐标系是针对地球在数学意义上的旋转椭球面定义的坐标系,以期通过经纬度实现对地球表面任一点的坐标定义。因此,经纬度表述椭球面的三维坐标(尽管它只有两个坐标值)。
地球的自然表面是一个由高山、深谷等构成的极不规则的曲面。陆地最高点珠穆朗玛峰高8844.43米,海洋最深处马里亚纳海沟深-11034米,两点高程差将近20000米。这样复杂的曲面在数学上无法表示,是不可以作为地图制图的基准面的。
为了寻求一个合理的基准面,前辈们经过推算发现:虽然地表是一个极不规则的曲面,但对整个地球而言它的形状很接近一个扁率很小的椭圆绕短轴旋转而成的椭球体。这个旋转椭球体是一个可基于椭圆长、短半轴,由简单数学公式表示的曲面,很适合作为地图投影、制图的基准面。
地理坐标系的核心实际上就是如何在数学上表达这样一个椭球体。
瓦片地图的地理坐标系
对于国外开发人员,面向瓦片地图说起起地理坐标系,情况会比较简单:通常就是WGS-84。国外瓦片地图,如:OpenStreetMap、ArcGIS Online、MapQuest、谷歌地球、谷歌地图(国内的不算)等经纬度都基于WGS84地理坐标系。
对国内的开发人员而言,情况就比较悲催了。由于国内某些特殊要求,我们不得不额外面对:GCJ02、BD09这两个东东(都不敢说是地理坐标系)。下面我们逐一介绍WGS84、GCJ02、BD09及其他坐标系。
1.WGS84
WGS84与GPS相伴相生,详情可参见百度百科词条WGS84。
WGS84给出地球椭球的定义:
- 长半轴():6378137
- 扁率():1:298.257223563
由GPS测量设备给出的经纬度都是基于WGS84地理坐标系,可直接叠加到基于WGS84坐标系的瓦片地图,如国外的OpenStreetMap、ArcGIS Online、MapQuest、谷歌地球等、国内的天地图。
2.GCJ02
GCJ是国测局的拼音首字母。GCJ02坐标系(俗称:火星坐标系)严格意义上来说不是一种地理坐标系,而是在WGS84坐标系上人为随机加偏的坐标系,国内出版的各种地图系统(包括电子形式),必须至少采用GCJ-02对地理位置进行首次加密。因此,国内瓦片地图,如:高德地图、腾讯地图、超图、360地图等都是基于GCJ02坐标系。
3.BD09
百度地图独有坐标系,是在GCJ02上二次加偏的坐标系。
3.未知坐标系
国内一些瓦片地图,如:搜狗地图和e都市都使用自家独有坐标系。由于应用范围不广,归类于未知坐标系,不做讨论。
主流瓦片地图的地理坐标系
主流瓦片地图的地理坐标系可分以下几类:
地理坐标系 | ||
1 | WGS84 | 谷歌地球、谷歌地图(国外)、天地图、OpenStreetMap、ArcGIS Online(Imagery)、MapQuest |
2 | GCJ02 | 谷歌地图(国内)、高德地图、腾讯地图、必应地图、超图、360地图、ArcGIS Online(Street)、 |
3 | BD09 | 百度地图 |
4 | 未知坐标系 | 搜狗地图、e都市 |