Web Mercator 公开的小秘密

网上已经有好多作者都不吝笔墨,写了好多有关 Web Mercator这个坐标系的前世今生。多搜罗多摄入,我们会得到很多有用的信息。今天讨论到 3758,3857,102100,100913…… 这些ID又一石激起千层浪,看来整理总结下还是有点必要。

Web Mercator 如何定义?

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

投影坐标系(PCS)的定义一般会包含两方面的定义信息:

(1)基准面/Datum — 与GCS相应

(2)投影方法/Projection Method

1

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 。

2

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坐标变换算法,不再等角了,而是近似等角,也就是出现角度变形。这种变形势必影响了坐标的精度,如下是某位GIS专家给出的概要说明(闪亮的最后一条):

如果你想进一步关心细节,想知道这位专家对 Web Mercator 的 dark side 的深入见解,点这里看看。

不再混乱的 ID

也是由于GIS专业人士的质疑,这个坐标系的ID经历了曲折的过程,好多做Web开发的朋友都感到困惑。简单地顺一下:

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)

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

我把自己看过的资源放在下面,共享之,文中提到的已经做链接了地,下面就不重复列举:

http://en.wikipedia.org/wiki/Web_Mercator

http://blogs.esri.com/esri/arcgis/2014/09/25/what-does-the-nga-web-mercator-advisory-mean-for-esri-defense-and-intelligence-users/

http://blogs.esri.com/esri/arcgis/2012/03/05/mercators-500th-birthday/

http://www.sharpgis.net/post/2008/05/15/SphericalWeb-Mercator-EPSG-code-3785

http://crschmidt.net/blog/archives/243/google-projection-900913/

http://forums.esri.com/Thread.asp?c=93&f=984&t=288607

时间: 2024-10-17 13:25:01

Web Mercator 公开的小秘密的相关文章

WGS84与WGS84 Web Mercator

两者的区别 WGS84坐标系 1.WGS84是地心坐标系,空间直角坐标系,原点与地球质心重合,为GPS采用的坐标系: 2.通过GPS可以直接获取WGS84下的坐标(B,L,H),B为纬度,L为经度,H为大地高即到WGS84椭 球面的高度: 3.我国地图采用的是北京1954或西安1980坐标系下的高斯投影坐标(x,y),也有采用北京1954或西安1980坐标系下的经纬度坐标(B,L),高程一般为海拔高度: 4.GPS的测量结果与北京54或西安80坐标相差几十米到一百多米,随区域各异: WGS84

在Oracle Spatial中增加Web Mercator投影坐标系

参考资料: 1. 最重要的参考文章,基本上就是按这个做的!!!:https://www.inf.unibz.it/dis/wiki/doku.php?id=students:minnerebner:oracle:addingsrid . 2. 实例参考:http://www.cnblogs.com/cleverxy/archive/2012/04/28/2474563.html 步骤1是从0开始,这个应该有一些基础了,可以对照看一下里面对8801~8807.9802~9807的解释,然后再去数据

Web Mercator Non-Conformal, Non-Mercator

public static void XYtoGL(Coordinate coordinate) { double R = 6378137; coordinate.x = coordinate.x / Math.PI * 180.0 / R; coordinate.y = ((Math.atan(Math.exp(coordinate.y / R)) - Math.PI/4) / Math.PI * 180.0)*2; } public static void GLtoXY(Coordinate

QGIS WGS84转其它坐标系并计算坐标

需求: 将带有经度.纬度(WGS84坐标系)坐标的文本(*.txt)转换成指定投影坐标系的shp文件并计算x,y坐标. 环境和工具: WIN10.QGIS2.16.带有经纬度坐标的文本.格式如下图: 1.创建矢量图层 打开QGIS,选择Layer-->Add Layer-->Add Delimited Text Layer 菜单,如下图所示: 2.导入文本坐标 弹出创建图层对话框,选择带有坐标的文本文件,选择自定自定义分割符(Custom delimiters),选择空格(Space),在X

(转)集成架构:对比 Web API 与面向服务的架构和企业应用程序集成

摘要:总体上讲,SOA 和 Web API 似乎解决的是同一个问题:以实时的.可重用的方式公开业务功能.本教程将分析这些举措有何不同,以及如何将它们融入到一个不断演变的集成架构中.文中还将讨论 API 管理与在它之前出现的集成架构(比如 SOA 和 EAI)有何不同. 简介 几乎所有企业都有多个应用程序作为其关键数据的记录系统,而且还拥有它们赖以创业的业务功能.因此,一些组织想要不断向其企业内外更广泛的受众揭示这些操作系统中的宝贵资产,我们对此已司空见惯.但是,这需要时间.在本教程中,我们将介绍

【Tomcat】面向初级 Web 开发人员的 Tomcat

Apache Tomcat 应用服务器不再是高级 Web 系统开发人员的专用领域.在本教程中,Sing Li 将向初级 Web 开发人员展示如何利用他们当前的 Java™ 开发技能,使用 Tomcat 编写服务器端 JSP.servlet 和 Web 服务. 开始之前 关于本教程 本教程向 Java Web 开发人员介绍使用 Tomcat 对 JavaServer Pages (JSP).servlet 和 Web 服务进行编程,Tomcat 是来自 Apache Foundation 的开源应

Web墨卡托投影(转)

Google Maps地图投影全解析(1):Web墨卡托投影 Google Maps.Virtual Earth等网络地理所使用的地图投影,常被称作Web Mercator或Spherical Mercator,它与常规墨卡托投影的主要区别就是把地球模拟为球体而非椭球体.建议先对地图投影知识做一个基本的了解,<地图投影为什么>. 什么是墨卡托投影? 墨卡托(Mercator)投影,又名“等角正轴圆柱投影”,荷兰地图学家墨卡托(Mercator)在1569年拟定,假设地球被围在一个中空的圆柱里,

转:WF工作流技术内幕 —— 通过Web服务调用Workflow工作流(开发持久化工作流)

转:http://www.cnblogs.com/carysun/archive/2009/01/11/receiveactivity.html 如果你曾经负责开发企业ERP系统或者OA系统,工作流对你来说一定并不陌生.工作流(Workflow)是对工作流程及其各操作步骤之间业务规则 的抽象.概括.描述.工作流要解决的主要问题是:为实现某个业务目标,在多个参与者之间,利用计算机,按某种预定规则自动传递文档.信息或者任务.有见及 此,微软在.NET 3.0基础上发布了WF,WCF,以及WCS(身份

(Inside Out)Web地图坐标系——谷歌的无奈

据前面所述,谷歌地图采用的Web Mercator对于中国境内是做了坐标加密处理的,而在境外又没有加密,所以,一直以来都有一个问号:接边是怎么处理的?也就是说在国境边界上会发生什么情况,下面的两个实验将说明这个问题. 实验二:谷歌地图(街道图)边界问题 辽宁丹东(中朝边界) 广西东兴(中越边界) 毫无疑问,基本没有接边处理,完全乱套,无奈. 实验三:谷歌地图(影像图)会怎么处理,街道可以错接,影像又会怎样? 还是在广西东兴(中越边界) 影像图正常,而叠加的街道是乱的. 影像图正常,就意味着影像图