圆柱面投影
- 坐标变换
正轴墨卡托投影(正球模型)
横坐标
在纬度处,经线实际周长为
在图上的周长为
在纬度处,变换因子
为了保证等角投影,要求y方向上有同样的变换因子:
最后坐标变换
当 时解得85.0511287798066°
正轴墨卡托投影(椭球模型)
参数定义
- 长轴 a,地球赤道半径为 6377563.396 m
- 短轴 b,地球两级半径为 6356256.910 m
- 离心率
坐标变换
- 数学太差,放弃治疗,以下来自维基百科
Web 墨卡托
-
定义
Web Mercator 坐标系使用的投影方法不是严格意义的墨卡托投影,而是一个被 EPSG(European Petroleum Survey Group)称为伪墨卡托的投影方法,这个伪墨卡托投影方法的大名是 Popular Visualization Pseudo Mercator,PVPM。因为这个坐标系统是 Google Map 最先使用的,或者更确切地说,是Google 最先发明的。在投影过程中,将表示地球的参考椭球体近似的作为正球体处理(正球体半径 R = 椭球体半长轴 a)。后来,Web Mercator 在 Web 地图领域被广泛使用,这个坐标系就名声大噪。尽管这个坐标系由于精度问题一度不被GIS专业人士接受,但最终 EPSG 还是给了 WKID:3857。
以整个世界范围,赤道作为标准纬线,本初子午线作为中央经线,两者交点为坐标原点,向东向北为正,向西向南为负。
X轴:由于赤道半径为6378137米,则赤道周长为2PIr = 20037508.3427892,因此X轴的取值范围:[-20037508.3427892,20037508.3427892]。
Y轴:由墨卡托投影的公式可知,当纬度φ接近90°时,y值趋向于无穷。
为了方便实现一级地图在长度上一分为二,也就是在高一级精度上用4张切片地图显示,最好将xy轴显示的取值范围统一,为此Y轴的取值范围也限定在[-20037508.3427892,20037508.3427892]之间。
通过计算纬度最大值就是85.0511287798066°
另外值得一提的是,现在网上大部分地图瓦片瓦片都是基于Web墨卡托的,就是第0层1一张图片,第1层2*2张图片...,如果使用OpenLayers可以很好的调用公共服务器
-
编号
EPSG:3857
EPSG:102100
EPSG:900913 (谷歌自己起的,没有被EPSG接受,900913=google) -
转换方法
//经纬度转web墨卡托 coord lonLat2WebMercator(coord 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墨卡托转经纬度 coord webMercator2lonLat( coord 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; }