Web墨卡托投影(转)

Google Maps地图投影全解析(1):Web墨卡托投影

Google Maps、Virtual Earth等网络地理所使用的地图投影,常被称作Web Mercator或Spherical Mercator,它与常规墨卡托投影的主要区别就是把地球模拟为球体而非椭球体。建议先对地图投影知识做一个基本的了解,《地图投影为什么》。

什么是墨卡托投影?

墨卡托(Mercator)投影,又名“等角正轴圆柱投影”,荷兰地图学家墨卡托(Mercator)在1569年拟定,假设地球被围在一个中空的圆柱里,其赤道与圆柱相接触,然后再假想地球中心有一盏灯,把球面上的图形投影到圆柱体上,再把圆柱体展开,这就是一幅标准纬线为零度(即赤道)的“墨卡托投影”绘制出的世界地图。从球到平面,有个转换公式,这里就不再罗列。

Google们为什么选择墨卡托投影?

墨卡托投影的“等角”特性,保证了对象的形状的不变行,正方形的物体投影后不会变为长方形。“等角”也保证了方向和相互位置的正确性,因此在航海和航空中常常应用,而Google们在计算人们查询地物的方向时不会出错。

墨卡托投影的“圆柱”特性,保证了南北(纬线)和东西(经线)都是平行直线,并且相互垂直。而且经线间隔是相同的,纬线间隔从标准纬线(此处是赤道,也可能是其他纬线)向两级逐渐增大。

但是,“等角”不可避免的带来的面积的巨大变形,特别是两极地区,明显的如格陵兰岛比实际面积扩大了N倍。不过要是去两极地区探险或科考的同志们,一般有更详细的资料,不会来查看网络地图的,这个不要紧。

为什么是圆形球体,而非椭球体?

这说来简单,仅仅是由于实现的方便,和计算上的简单,精度理论上差别0.33%之内,特别是比例尺越大,地物更详细的时候,差别基本可以忽略。

Web墨卡托投影坐标系

以整个世界范围,赤道作为标准纬线,本初子午线作为中央经线,两者交点为坐标原点,向东向北为正,向西向南为负。

X轴:由于赤道半径为6378137米,则赤道周长为2*PI*r = 2*20037508.3427892,因此X轴的取值范围:[-20037508.3427892,20037508.3427892]。

Y轴:由墨卡托投影的公式可知,同时上图也有示意,当纬度φ接近两极,即90°时,y值趋向于无穷。这是那些“懒惰的工程师”就把Y轴的取值范围也限定在[-20037508.3427892,20037508.3427892]之间,搞个正方形。

懒人的好处,众所周知,事先切好静态图片,提高访问效率云云。俺只是告诉你为什么会是这样子。因此在投影坐标系(米)下的范围是:最小(-20037508.3427892, -20037508.3427892 )到最大 (20037508.3427892, 20037508.3427892)。

对应的地理坐标系:

按道理,先讲地理坐标系才是,比如球体还是椭球体是地理坐标系的事情,和墨卡托投影本关联不大。简单来说,投影坐标系(PROJCS)是平面坐标系,以米为单位;而地理坐标系(GEOGCS)是椭球面坐标系,以经纬度为单位。具体可参考《坐标系、坐标参照系、坐标变换、投影变换》。

经度:这边没问题,可取全球范围:[-180,180]。

纬度:上面已知,纬度不可能到达90°,懒人们为了正方形而取的-20037508.3427892,经过反计算,可得到纬度85.05112877980659。因此纬度取值范围是[-85.05112877980659,85.05112877980659]。其余的地区怎么办?没事,企鹅们不在乎。

因此,地理坐标系(经纬度)对应的范围是:最小(-180,-85.05112877980659),最大(180, 85.05112877980659)。至于其中的Datum、坐标转换等就不再多言。

如果想知道坐标怎么计算的,请看全解析第2季《相关坐标计算》;更深入的和GIS相关的第3季《WKT形式表示》。

三、网络地图投影参数

Global Spherical Mercator —— Main parameters:

  Datum: WGS84
  Map projection: Spherical Mercator
  Ellipsoid: WGS84
  EPSG Code: EPSG: 4326 (for coordinates in latitude/longitude)
  EPSG Code: EPSG: 900913 (for coordinates in metres)

正因为采用了相同的地图投影才使得不同地图服务商的瓦片地图能够很好的叠加,尽管切片规则和算法不尽相同,但最终拼接的结果始终是一致的。

Web墨卡托投影(转)

时间: 2024-10-09 16:55:09

Web墨卡托投影(转)的相关文章

WGS-84经纬度转Web墨卡托投影(C#版)

/// <summary> /// WGS84经纬度转Web墨卡托投影 /// </summary> /// <param name="dLong">经度</param> /// <param name="dLat">纬度</param> /// <returns>返回包含坐标值的数组</returns> public static double[] WGS84ToMer

墨卡托投影

转自原文 墨卡托投影 一.墨卡托投影 墨卡托投影,又称正轴等角圆柱投影,由荷兰地图学家墨卡托(G.Mercator)于1569年创拟.假设地球被套在一个圆柱中,赤道与圆柱相切,然后在地球中心放一盏灯,把球面上的图形投影到圆柱体上,再把圆柱体展开,就形成以一幅墨卡托投影的世界地图(如下图).因其等角特性,广泛应用与航空.航海中. 从上图中可以看出,X轴的刻度是等距的,Y轴方向越靠近两极变形越大.假设墨卡托投影的坐标系原点为(0,) ,表示X轴为赤道,Y轴则在经度为处垂直于赤道. 墨卡托投影公式即为

ArcGIS Portal 10.4 本地坐标系的web 3d地形展示制作说明

原文:ArcGIS Portal 10.4 本地坐标系的web 3d地形展示制作说明 ArcGIS Portal 10.4 本地坐标系的web 3d地形展示制作说明 By 李远祥 ArcGIS Portal在10.4版本开始支持本地坐标系的三维展示,可以说是ArcGIS产品Web3D的又一进步.但实测发现,还是有一些地方需要注意,并不像直接使用Web墨卡托和网络服务那边顺利. ????这里测试的主要是地形数据展示.涉及到两方面,一是基础的DEM数据,用于整个地形的高低起伏,原则上是不展示,将底图

[转载]WGS84坐标与Web墨卡托坐标互转

1 //经纬度转Wev墨卡托 2 dvec3 CMathEngine::lonLat2WebMercator(dvec3 lonLat) 3 { 4 dvec3 mercator; 5 double x = lonLat.x *20037508.34/180; 6 double y = log(tan((90+lonLat.y)*PI/360))/(PI/180); 7 y = y *20037508.34/180; 8 mercator.x = x; 9 mercator.y = y; 10

快速搭建简单的LBS程序——地图服务

很多时候,我们的程序需要提供需要搭建基于位置的服务(LBS),本文这里简单的介绍一下其涉及的一些基本知识. 墨卡托投影 地图本身是一个三维图像,但在电脑上展示时,往往需要将其转换为二维的平面图形,需要通过投影的方式将三维空间中的点映射到二维空间中.地图投影需要建立地球表面点与投影平面点的一一对应关系. 我们经常使用的一种投影算法是墨卡托投影,大概做法就是先拿一个圆柱体使它的轴与地球自转轴重合,先把球面上的点投影到圆柱的侧面上,再把圆柱展开就得到长方形的地图了. 关于墨卡托投影可以更多信息可以参看

开源GIS软件 2

Android上的导航软件 AndNav AndNav 是一款 Android 手机上的 GPS导航软件(非开源).软件支持GPS定位信息,目的地查询,道路建议管理,导航提示等功能,十分强大的一款软件. 开源WebGIS项目 UMN MapServer MapServer,它是美国明尼苏达大学 (University of Minnesota, 简称 UMN)在二十世纪90 年代利用 C语言开发的开源 WebGIS项目. [MapServer简介] 它起源于 UMN和美国国家航空航天局的合作项目

Google Maps地图投影全解析(3):WKT形式表示

update20090601:EPSG对该投影的编号设定为EPSG:3857,对应的WKT也发生了变化,下文不再修改,相对来说格式都是那样,可以到http://www.epsg-registry.org 网站输入SRID进行查询.         Google Maps和Virtual Earth等的流行程度不用多讲,然而他们所使用的Web Mercator或Spherical Mercator在很长一段时间内并没有被EPSG的投影数据库所接纳.EPSG认为它不能算作科学意义上的投影,所以只是给

《ArcGIS Runtime SDK for Android开发笔记》——数据制作篇:紧凑型切片制作(Server缓存切片)

1.前言 在ArcGIS 10中出现了一种新的切片缓存文件格式:紧凑型存储(Compact).与之前的松散型存储(Exploded)相比,它有迁移方便.创建更快.减少存储空间等诸多优点,已经成为了现在创建切片缓存的默认格式. 紧凑型切片存储最主要的两种文件是bundle和bundlx文件,其中bundle文件用以存储切片数据,bundlx是bundle文件中切片数据的索引文件. 一个bundle文件中最多可以存储128×128(16384)个切片,但是创建切片缓存并不是一张张切片单独生成,而是以

openlayers对接百度地图新方法

上次给大家提供的openlayers对接百度地图有些问题,是因为没有进行分辨率设置,也没有进行相应的平面坐标转换,获取getURL的方法还是没有变化的 1 getURL: function (bounds) { 2 var tilez=this.map.zoom-1; 3 var res = this.map.getResolution(); 4 var bbox = this.map.getMaxExtent(); 5 var size = this.tileSize; 6 var bx =