在Matlab中从Popular Visualization Pseudo Mercator转换为球形(WGS84)坐标

时间:2014-07-14 08:05:58

标签: matlab coordinate-transformation

我有一组x& y在Popular Visualization Pseudo Mercator投影(EPSG 3857)中的坐标,并希望在Matlab中将其转换为普通的纬/长球面投影系统(EPSG:4326)。 在Open Earth Toolbox中有一个用于转换坐标的例程,但是尚不支持与Popular Visualization Pseudo Mercator的转换。

有没有人有关于转换的任何信息?引导的公式也很有帮助,我可以将其集成到Matlab中。

谢谢!

2 个答案:

答案 0 :(得分:1)

GIYF? http://georepository.com/projection_3856/Popular-Visualisation-Pseudo-Mercator.html

  

注意:这些公式已从EPSG Guidance Note转录   #7-2。由于转录的限制,鼓励用户使用该文档而不是随后的文本作为参考   将被避免。

     

这种方法被一些流行的网络映射和可视化所利用   应用。它适用标准墨卡托(球形)公式   (方法代码1026)为椭圆坐标,球半径为   被认为是椭圆体的半长轴。这种方法而已   近似于椭球公式的更严格应用   到椭圆坐标(如EPSG数据集坐标中所示)   操作方法代码9804和9805)。不同于球形或   椭球墨卡托投影方法,这种方法不保形:   比例因子随方位角的变化而变化,从而产生角度   失真。尽管角度失真,但没有收敛   子午线。

     

从中导出投影东向和北向坐标的公式   椭球纬度(lat)和经度(lon)首先导出半径   球体(R)来自:R = a

     

然后应用球形墨卡托公式:

     <= E = FE + R(离子 - 离子)N = FN + R ln [tan(pi / 4 +)   lat / 2)]其中FE和FN是错误的东方和假   投影原点没有任何内容,其他符号如上所列   和对数是自然的。

     

如果纬度lat =90º,则N为无穷大。 N的上述公式将   在极点附近失效,不应在88º的极向上使用。

     

用于导出球体上的纬度和经度的反向公式   来自E和N的值是:D = - (N-FN)/ R =(FN-N)/ R lat = pi / 2 - 2   atan(e ^ D)其中e =自然对数的基数,2.7182818 ... lon = [(E    - FE)/ R] + lonO

     

如果q_alpha是给定方位角α的比例因子,则它是a   R'的函数,该方位角的曲率半径来自:     R'= rho nu /(nu cos ^ 2alpha + rho sin ^ 2alpha)q_alpha = R /(R'cos   lat)其中rho和nu是椭圆体的曲率半径   纬度纬度在经络平面上垂直于   经络分别; rho = a(1 - e ^ 2)/(1 - e ^ 2 sin ^ 2(lat))^ 3/2 nu =   a /(1 - e ^ 2 sin ^ 2(lat))^ 1/2

     

然后当方位角为0º,180º,90º或270º时,比例因子为   子午线(h)和平行线(k)是:q_0 = q_180 = h = R /   (rho cos(lat))q_90 = q_270 = k = R /(nu cos(lat))其中   证明了伪墨卡托方法的非一致性。

     

最大角度失真omega是纬度的函数   发现自:omega = 2 asin {[ABS(h - k)] /(h + k)}

答案 1 :(得分:0)

在尝试获取模型在R中生成的某些空间点的坐标时,我遇到了同样的问题,这花了我几个小时才能找到解决方案。

毕竟,我所做的就是将地图导入QGIS(非常容易安装),然后将地图(右键单击->另存为)保存为实际的WGS84,而不是psedo Merc。

我希望这也会对其他人有所帮助。