墨卡托投影

本文深入探讨了墨卡托投影的概念及其数学原理,包括正轴等角圆柱投影的特点与应用,特别是其在航空与航海领域的关键作用。文章详细介绍了WGS84坐标系下的墨卡托投影正反解公式,并提供了实用的坐标转换算法,帮助读者理解如何在不同坐标系统间进行精确转换。

转载自:墨卡托投影实现墨卡托投影WGS84坐标与web墨卡托投影坐标转换

1.墨卡托投影:

又称正轴等角圆柱投影,由荷兰地图学家墨卡托(G.Mercator)于1569年创拟。假设地球被套在一个圆柱中,赤道与圆柱相切,然后在地球中心放一盏灯,把球面上的图形投影到圆柱体上,再把圆柱体展开,就形成以一幅墨卡托投影的世界地图(如下图)。因其等角特性,广泛应用与航空、航海中。
1337511-20190805144514704-1171864361.png
公式参数:

  • a——椭球体长半轴
  • b——椭球体短半轴
  • f——扁率 \((a-b)/a\)
  • e——第一偏心率 \(e=\sqrt{1-(b/a)^2}\)
  • e'——第二偏心率 \(e=\sqrt{(a/b)^2-1}\)
  • N——卯酉圈曲率半径 \(\frac{a^2/b}{\sqrt{1+e'^2*cos^2B}}\)
  • R——子午圈曲率半径 \(\frac{a(1-e^2)}{(1-e^2*sin^2B)^{3/2}}\)
  • B——纬度
  • L——经度(单位rad)
  • \(X_N\)——纵直角坐标
  • \(Y_E\)——横直角坐标,单位米(M)

2.椭球体参数:

WGS84参数:长半轴:6378137;短半轴:6356752.3142

3.墨卡托投影正反解公式

墨卡托投影正解公式:(B,L)→(X,Y),标准纬度\(B_0\),原点纬度 0,原点经度\(L_0\)

\[X_N = Kln[tg(\frac{\pi}{4}+\frac{B}{2})*(\frac{1-esinB}{1+esinB})^{e/2}]\]

\[Y_E = K(L-L_0)\]

\[K=N_{B_0}*cos(B_0)=\frac{a^2/b}{\sqrt{1+e'^2*cos^2{B_0}}}*cos{B_0}\]

墨卡托投影反解公式:(X,Y) →(B,L),标准纬度\(B_0\),原点纬度 0,原点经度\(L_0\)

\[B=\frac{\pi}{2}-2arctg(EXP(-\frac{X_N}{K})*EXP^{(\frac{e}{2})ln(\frac{1-esinB}{1+esinB})})\]

\[L=\frac{Y_E}{K}+L_0\]

P.S.公式中EXP 为自然对数底,纬度B 通过迭代计算很快就收敛了。

4.WGS84坐标与web墨卡托投影坐标转换

//把地球视为球体实现经纬度和墨卡托投影的函数
typedef struct Point
{
    double x;
    double y;
}WayPoint;

//经纬度转墨卡托
WayPoint lonLat2Mercator(WayPoint lonLat)
{
    WayPoint 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;
}

//墨卡托转经纬度
WayPoint Mercator2lonLat(WayPoint mercator)
{
    WayPoint 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;
}

转载于:https://www.cnblogs.com/xym4869/p/11302931.html

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值