Web墨卡托公开的小秘密
Web墨卡托公开的小秘密

Web墨卡托公开的小秘密

一.写在前面

什么是地图投影?

所谓地图投影,是利用一定数学法则把地球表面的经、纬线转换到平面上的理论和方法。由于地球是一个赤道略宽两极略扁的不规则的梨形球体,故其表面是一个不可展平的曲面,所以运用任何数学方法进行这种转换都会产生误差和变形,为按照不同的需求缩小误差,就产生了各种投影方法,eg:墨卡托投影,高斯克吕格投影, Lambert__投影,UTM__投影…

什么是墨卡托投影?

墨卡托投影是一种“正轴等角切圆柱投影”,由荷兰地图学家墨卡托(G.Mercator)于1569年创立:假设地球被围在一个中空的圆柱里,其赤道与圆柱相接触,然后再假想地球中心有一盏灯,把球面上的图形投影到圆柱体上,然后把圆柱体展开,这就是一幅标准纬线为零度(即赤道)的“墨卡托投影”绘制出的世界地图。

墨卡托投影在今天对于地图展示仍起着极为重要的作用,目前世界各国绘制海洋地图时仍广泛使用墨卡托投影.我们平时看到的谷歌地图,百度地图,包括我们的高德地图,都是使用的墨卡托投影.

Google们为什么选择墨卡托投影呢?首先墨卡托投影的“等角”特性,保证了对象的形状的不变,以及方向和相互位置的正确,墨卡托投影的“圆柱”特性,也保证了纬线和经线平行相互垂直,而且经线间隔相同,但是纬线间隔从赤道向两级逐渐增大,“等角”不可避免的带来的面积的巨大变形,特别是两极地区,明显的如格陵兰岛比实际面积扩大了N倍.

什么是Web墨卡托?

Web墨卡托是Google Map在电子地图中所创造并使用的地图投影方法,常被称作Web Mercator或Spherical Mercator,它与常规墨卡托投影的主要区别在于把地球模拟为球体而非椭球体:

  • 整个世界范围赤道作为标准纬线,本初子午线作为中央经线,两者交点为坐标原点,向东向北为正,向西向南为负。
  • 以米为单位,由于赤道半径为6378137米,则赤道周长为2*PI*r = 2*20037508.3427892,因此X轴的取值范围:[-20037508.3427892,20037508.3427892],由墨卡托投影方法可知,当纬度φ接近两极,y值趋向于无穷。于是“懒惰的工程师”就把Y轴的取值范围也限定在[-20037508.3427892,20037508.3427892]间.
  • 为了展示上的通俗易懂,电子地图通常以经纬度为单位展示地理坐标,而墨卡托投影坐标,经度范围:[-180,180], 纬度上面已知不可能到达90°,取值范围是[-85.05112877980659,85.05112877980659]。其余的地区怎么办?没事,企鹅们不在乎。

二.Web Mercator 公开的小秘密

我们知道,地理数据的坐标系一般有两大类,一是地理坐标系(GCS,=大地坐标系),是经纬度单位的椭球坐标系;二是投影坐标系(PCS),是平面直角坐标系。

投影坐标系(PCS)的定义一般会包含两方面的定义信息: 
(1)基准面/Datum — 与GCS相应 
(2)投影方法/Projection Method

Web Mercator是一个投影坐标系统,基准面是WGS 1984

那么,第一个问题,WGS 1984 是什么?

“ 世界大地坐标系是美国国防部制图局(Defence Mapping Agency, DMA)为统一世界大地坐标系统,实现全球测量标准的一致性,定义用于制图、大地、导航的坐标基准。它包括标准地球坐标框架、用于处理原始观测数据的标准椭球参考面(即基准和参考椭球)和定义标准海平面的重力等势面(大地水准面)。……”(摘自《大地坐标系统及其应用》)

在上面一段中可以知道,定义一个坐标系绝对是一个复杂浩大的数学工程。 我们经常听说的 WGS 1984 (或 WGS 84)就是其中一个世界大地坐标系统。我们经常使用的 GPS 的坐标参考系统也是它。

WGS 1984 的具体定义参数: GCS_WGS_1984  WKID: 4326 Authority: EPSG

Angular Unit: Degree (0.0174532925199433)  Prime Meridian: Greenwich (0.0)  Datum: D_WGS_1984  Spheroid: WGS_1984  Semimajor Axis: 6378137.0  Semiminor Axis: 6356752.314245179  Inverse Flattening: 298.257223563

通过参数描述,我们知道 WGS 1984 是一个长半轴(a)为6378137,短半轴(b)为6356752.314245179 的椭球体,扁率(f)为298.257223563,f=(a-b)/a 。

伪墨卡托投影

Web Mercator 坐标系使用的投影方法不是严格意义的墨卡托投影,而是一个被 EPSG(European Petroleum Survey Group)称为伪墨卡托的投影方法,这个伪墨卡托投影方法的大名是 Popular Visualization Pseudo Mercator,PVPM。 看起来就觉得这个投影方法不是很严谨的样子,大众化的?受欢迎的?可视化伪墨卡托投影……

因为这个坐标系统是 Google Map 最先使用的,或者更确切地说,是Google 最先发明的。在投影过程中,将表示地球的参考椭球体近似的作为正球体处理(正球体半径 R = 椭球体半长轴 a)。这也是为什么在 ArcGIS 中我们经常看到这个坐标系叫 WGS 1984 Web Mercator (Auxiliary Sphere)。Auxiliary Sphere 就是在告知你,这个坐标在投影过程中,将椭球体近似为正球体做投影变换,虽然基准面是WGS 1984 椭球面。

后来,Web Mercator 在 Web 地图领域被广泛使用,这个坐标系就名声大噪。尽管这个坐标系由于精度问题一度不被GIS专业人士接受,但最终 EPSG 还是给了 WKID:3857。

下面放一张在 EPSG 官网上找到的3857坐标的具体参数介绍,供参考:

Web Mercator 的阴暗面

Web Mercator 无论是来自Google程序员的谬误,还是为了简化换算的有意为之,现在它都已经名正言顺的成为了 Web 底图的最受欢迎平面坐标系。

问题又来了,为什么这么受欢迎的坐标系还会受到GIS大咖的诟病

拒绝给这个坐标系分配 坐标系ID 的原话是这样的:

The projected coordinate reference system originally lacked an official spatial reference identifier (SRID), and the Geodesy subcommittee of the OGP’s Geomatics committee (also known as EPSG) refused to provide it with one, declaring “We have reviewed the coordinate reference system used by Microsoft, Google, etc. and believe that it is technically flawed. We will not devalue the EPSG dataset by including such inappropriate geodesy and cartography.

这不是EPSG 冷酷无情无理取闹,从技术角度看是有原因的。简而言之,主要原因在于基准面被篡改后,本来是等角投影的Mercator坐标变换算法,不再等角了,而是近似等角,也就是出现角度变形。这种变形势必影响了坐标的精度,如下是某位专家给出的概要说明(闪亮的最后一条):

不再混乱的ID

也是由于GIS专业人士的质疑,相比最为广泛使用的EPSG:4326(WGS84坐标系ID),这个坐标系的ID经历了曲折的过程,好多人都感到困惑。简单地顺一下:

  • **OpenLayers:900913 **由于得不到官方的认证ID,Google为Web Mercator 任性地制定了这个ID,自娱自乐,也祝大家玩的开心……。

i think 900913 is great.  9-g  0-o  0-o  9-g  1-l  3-e  get it? 900913 is equal to google. THAT’S AMAZING ! =-)

  • **EPSG:3785 **这是 EPSG 在 2008 年给 Web Mercator 设立的WKID,但是这个坐标系的基准面是正圆球,不是WGS 1984。 存在了一段时间后被弃用。
  • **EPSG:3857 **EPSG为 Web Wercator 最终设立的WKID,也就是现在我们常用的Web 地图的坐标系,并且给定官方命名 “WGS 84 / Pseudo-Mercator“。
  • **ESRI:102113 **Esri内部使用ID,与 EPSG:3785 相应。已被弃用。
  • ESRI:102100 Esri内部使用ID,与 EPSG:3857 相应。

因此,细心地话,会发现在 ArcGIS Server 的REST 服务页面中,Web Mercator 的空间参考会记做: 102100(3857)

这些东西其实一直都是公开的,博主没有生产这些小秘密,只是小秘密的搬运工。

三.写在后面

推荐:  Keyhole,Google Maps前传

16条评论

发表评论

您的电子邮箱地址不会被公开。