首页  >  文章  >  Java  >  如何将墨卡托投影上的纬度/经度转换为像素?

如何将墨卡托投影上的纬度/经度转换为像素?

Susan Sarandon
Susan Sarandon原创
2024-11-07 12:11:03975浏览

How to Convert Latitude/Longitude to Pixels on a Mercator Projection?

将纬度/经度点转换为墨卡托投影上的像素 (x,y)

墨卡托投影通常用于导航海图,具有直线代表平行线和经线。要将纬度/经度点转换为墨卡托投影图像上的像素 (x,y) 坐标,可以应用以下公式:

推导:

墨卡托投影是兰伯特圆锥等角投影的极限情况,其中赤道是唯一的标准纬线。这会产生所有纬线和经线的直线。

公式:

E = FE + R (λ – λₒ)
N = FN + R ln[tan(π/4 + φ/2)]   

其中:

  • E 和 N 是东向和北向坐标
  • FE 和 FN 是假东向和假北向(球墨卡托中不使用)
  • λ 是经度
  • λo是原点经度
  • φ 是纬度

简化公式:

对于球面墨卡托,东假和北假是未使用,将公式简化为:

x = (longitude+180)*(mapWidth/360)
y = (mapHeight/2)-(mapWidth*ln(tan((PI/4)+(latitude*PI/180)))/(2*PI))

示例:

给定以下参数:

  • 纬度:41.145556
  • 经度:-73.995
  • 地图宽度:200 像素
  • 地图高度:100 像素

应用公式,我们得到:

x = 60.0083
y = 32.5903

这些像素坐标表示墨卡托投影图像上的点的 (x,y) 位置。

以上是如何将墨卡托投影上的纬度/经度转换为像素?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn