WGS84与WGS84 Web Mercator
1. WGS84与WGS84 Web Mercator
1.1 关于WGS1984投影坐标系
UTM是由美国制定,因此起始分带并不在本初子午线,而是在180度,因而所有美国本土都处于0-30带内。UTM投影采用6度分带,从东经180度(或西经180度)开始,自西向东算起,因此1带的中央经线为-177(-180
-(-6)),而0度经线为30带和31带的分界,这两带的分界分别是-3和3度。纬度采用8度分带,从80S到84N共20个纬度带(X带多4度),分别用C到X的字母来表示。为了避免和数字混淆,I和O没有采用。UTM的“false
easting”值为500km,而南半球UTM带的“false northing”为10000km
Mercator,是一种等角横轴割圆柱投影,圆柱割地球于南纬80度、北纬84度两条等高圈,被许多国家用作地形图的数学基础,如中国采用的高斯-克吕格投影就是UTM投影的一种变形,很多遥感数据,如Landsat和Aster数据都应用UTM投影发布的。
1.2 Web Mercator
EPSG,即 European Petroleum Standards Group 欧洲石油标准组织
在ArcGIS 10中Web Mercator有三种EPSG编号。他们分别是EPSG3857 、EPSG102100。
EPSG102113。其实三者表示同一个投影,而这个投影跟谷歌以及Open Street Map等使用的投影EPSG:900913是一致的,只是这个编号以前人们使用的时候并没有被EPSG组织采纳。
以下是这几个编号代表的投影在ArcGIS中的元数据信息:(其中EPSG3857 EPSG102100 完全相同,EPSG102113稍有差异)
EPSG3857 – WGS_1984_Web_Mercator_Auxiliary_Sphere
EPSG102100 – WGS_1984_Web_Mercator_Auxiliary_Sphere
PROJCS[ "WGS_1984_Web_Mercator_Auxiliary_Sphere", GEOGCS[ "GCS_WGS_1984", DATUM["D_WGS_1984", SPHEROID["WGS_1984", 6378137.0, 298.257223563]], PRIMEM["Greenwich", 0.0], UNIT["Degree", 0.0174532925199433] ], PROJECTION["Mercator_Auxiliary_Sphere"], PARAMETER["False_Easting", 0.0], PARAMETER["False_Northing", 0.0], PARAMETER["Central_Meridian", 0.0], PARAMETER["Standard_Parallel_1", 0.0], PARAMETER["Auxiliary_Sphere_Type", 0.0], UNIT["Meter", 1.0] ]
EPSG102113 WGS_1984_Web_Mercator
PROJCS[ "WGS_1984_Web_Mercator", GEOGCS["GCS_WGS_1984_Major_Auxiliary_Sphere", DATUM["D_WGS_1984_Major_Auxiliary_Sphere",SPHEROID["WGS_1984_Major_Auxiliary_Sphere",6378137.0,0.0]], PRIMEM["Greenwich",0.0], UNIT["Degree",0.0174532925199433] ], PROJECTION["Mercator"], PARAMETER["False_Easting",0.0], PARAMETER["False_Northing",0.0], PARAMETER["Central_Meridian",0.0], PARAMETER["Standard_Parallel_1",0.0], UNIT["Meter",1.0] ]
1.3 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: EPSGAngular 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。
1.4 两者的区别
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 Web Mercator:
1、谷歌地图(WGS_1984_Pseudo_mercator)、Virtual Earth、Bing Maps、百度地图、Mapabc、ArcGIS Online等采用Web Mercator或Spherical Mercator坐标系,天地图采用CGCS2000国家大地坐标系;
2、Web Mercator与常规墨卡托投影的主要区别就是把地球模拟为球体而非椭球体;
3、为什么选择墨卡托投影?等角正轴圆柱投影,等角保证了对象的形状不变形,也保证了方向和相互位置的正确性(在航海、航空中应用),等角的代价是面积的巨大变形,特别是两极地区;
4、WebGIS开发经常碰到坐标系互转,如底图使用Web
Mercator,定位(GPS,wifi等)信号坐标为WGS84坐标,代码实现如下:
//经纬度转Wev墨卡托
dvec3 CMathEngine::lonLat2WebMercator(dvec3 lonLat) { dvec3 mercator; double x = lonLat.x *20037508.34/180; double y = log(tan((90+lonLat.y)*PI/360))/(PI/180); y = y *20037508.34/180; mercator.x = x; mercator.y = y; return mercator ; } //Web墨卡托转经纬度 dvec3 CMathEngine::WebMercator2lonLat( dvec3 mercator ) { dvec3 lonLat; double x = mercator.x/20037508.34*180; double y = mercator.y/20037508.34*180; y= 180/PI*(2*atan(exp(y*PI/180))-PI/2); lonLat.x = x; lonLat.y = y; return lonLat; }
2. 从WGS84到WGS84 Web Mercator
对于非地理专业的开发人员,对与这些生涩的概念,我们不一定都要了解,但是我们要理解,凡是以经纬度为单位的都是地理坐标系,因为它归根结底是一个椭球体,只不过各个国家为了反映该国家所在区域地球的真实形状,而采用不同的数学模型对本不是椭球体的地球进行椭球体化。而投影坐标系,是对地理坐标系按照某种方式投影到平面上的,所以可以认为它是一个平面坐标系,单位自然是米或千米。
我们在做开发的时候,尤其是web地图开发,两种坐标系至关重要4326 GCS_WGS_1984 和
102100WGS_1984_web_mercator_auxiliary_sphere
。
1)、4326 GCS_WGS_1984 是WGS1984,属于地理坐标系,相信大家对它都有所耳闻,他就是大名鼎鼎的gps采用的坐标系,也就是通过gps拿到的坐标信息都是按这个坐标系给我们的经度和纬度。当然,如果你是做移动平台上的gps,获得的经纬度也是按这个坐标系。
2)、102100 WGS_1984_web_mercator_auxiliary_sphere则是目前在线地图采用的通用坐标系,属于投影坐标系。
如果我们采用googlemap做底图,然后想通过gps将位置在地图上显示,不经过任何转换直接在googlemap上显示是不行的,因为他们的坐标系不统一。所以在显示之前就必须将gps获取点进行坐标转换到WGS_1984_web_mercator,然后在googlemap上显示。
在我们的实际应用中,经常用到SpatialReference空间参考系,我们大都用的是WKID=4326的D_WGS_1984的地理坐标,而由于需要,向之前的一篇博文中介绍的,叠加Google
Map地图的话,就涉及到将我们现
有的地图从WKID=4326的地理坐标系转换成WKID=102100的投影坐标系,怎么转换?
ArcMap中的工具箱中有这样的工具,以下截图详细说明:
1、打开已有的地图,并打开工具箱
2、按照箭头指向,依次展开节点后,选择“Project”工具,如下:
3、在打开的Project窗口中,选择输出的空间坐标系统,然后,点击“Select”,如下图:
4、选择“Projected Coordinate System”,如下图:
5、选择“World”,点击“Add”,如下图:
6、找到WGS 1984 Web Mercator.prj,点击“Add”,如下图:
7、在下拉框中,选择仅有的一项,然后点击“OK”,至此已经完成(这里请注意:请记住Output Dataset or Feature
Class中的位置,那是转换后的输出shp位置)
8、关闭ArcMap,重新打开ArcMap,并Add
Data上一步中转换后的那个图层shp文件,此时的图层已经是墨卡托坐标系了。
参考文章
ArcGIS中利用ArcMap将地理坐标系转换成投影坐标系(从WKID=4326到WKID=102100)