2024年6月6日发(作者:)
Web墨卡托坐标与WGS84坐标互转
在WebGIS的开发中经常用到的地图投影为Web墨卡托和WGS84,故歌地图,bingmaps,百
度地图,mapabc,mapbar,以及ArcGIS online上的大部分地图为Web墨卡托地图,ArcGIS
online上最开始发布的地图投影为WGS84。
在开发过程中很多时候会遇到不同坐标系之间互转的问题,特别是底图使用Web墨卡托,定位
(GPS,wifi等)信号坐标为WGS84坐标的时候,那么通用解决方案就是写一个坐标参考系的转
换库,类似于proj4,但一般情况下很少用到那么多的参考系之间的互转,并且在客户端实现或者
调用proj4都是一件很困难或者麻烦的事情,大多数情况下我们实现Web墨卡托坐标与WGS84
坐标互转就可以了。
下面是使用objective-c实现的Web墨卡托坐标与WGS84坐标互转程序,当然也可以使用其
他语言来实现,使用起来比较简单和方便。
1.
2.
3.
4.
5.
6.
7.
8.
9.
//经纬度转墨卡托
-(CGPoint )lonLat2Mercator:(CGPoint ) lonLat
{
CGPoint mercator;
double x = lonLat.x *20037508.34/180;
double y = log(tan((90+lonLat.y)*M_PI/360))/(M_PI/180);
y = y *20037508.34/180;
mercator.x = x;
mercator.y = y;
10. return mercator ;
11. }
12. //墨卡托转经纬度
13. -(CGPoint )Mercator2lonLat:(CGPoint ) mercator
14. {
15. CGPoint lonLat;
16. double x = mercator.x/20037508.34*180;
17. double y = mercator.y/20037508.34*180;
18. y= 180/M_PI*(2*atan(exp(y*M_PI/180))-M_PI/2);
19. lonLat.x = x;
20. lonLat.y = y;
21. return lonLat;
22. }
复制代码
Google Maps
地图投影全解析
原文出处:
/LionGG/archive/2009/04/20/
Google Maps
、
Virtual Earth
等网络地理所使用的地图投影,常被称作
Web Mercator
或
Spherical Mercator
,它与常规墨卡托投影的主要区别就是把地球模拟为球体而非椭球体。
建议先对地图投影知识做一个基本的了解,《地图投影为什么》。
什么是墨卡托投影?
墨卡托
(Mercator)
投影,又名
"
等角正轴圆柱投影
"
,荷兰地图学家墨卡托(
Mercator
)在
1569
年拟定,假设地球被围在一个中空的圆柱里,其赤道与圆柱相接触,然后再假想地球中心有
一盏灯,把球面上的图形投影到圆柱体上,再把圆柱体展开,这就是一幅标准纬线为零度(即
赤道)的
"
墨卡托投影
"
绘制出的世界地图。从球到平面,肯定有个转换公式,这里就不再罗
列。
们为什么选择墨卡托投影?
墨卡托投影的
"
等角
"
特性,保证了对象的形状的不变行,正方形的物体投影后不会变为长方
形。
"
等角
"
也保证了方向和相互位置的正确性,因此在航海和航空中常常应用,而
们在计算人们查询地物的方向时不会出错。
墨卡托投影的
"
圆柱
"
特性,保证了南北(纬线)和东西(经线)都是平行直线,并且相互垂
直。而且经线间隔是相同的,纬线间隔从标准纬线(此处是赤道,也可能是其他纬线)向两
级逐渐增大。
但是,
"
等角
"
不可避免的带来的面积的巨大变形,特别是两极地区,明显的如格陵兰岛比实
际面积扩大了
N
倍。不过要是去两极地区探险或可靠的同志们,一般有更详细的资料,不
会来查看网络地图的,这个不要紧。
发布评论