2

我意识到这可能不是一个编程问题,但它是我作为程序员一直遇到的一个问题,所以我认为这里的其他人可能有有用的知识可以分享。

我有一张地球区域的地图(可以是任何区域,但这里有一个例子)我应该如何确定地图中使用的投影,然后我应该如何以编程方式将纬度和经度坐标转换为图像上的像素位置。

目前我有 matlab 代码来打开图像并绘制结果 (x,y) 坐标,但我不知道如何将纬度/经度转换为 x,y!

任何帮助都将不胜感激。

4

2 回答 2

0

事实证明,以编程方式计算地图的投影是一项复杂的图像处理任务。我设法解决这个问题的方法是简单地使用具有明确投影的地图 - 例如谷歌地图使用墨卡托投影,英国的大多数地图也是如此(因为我们的英国参考网格基于通用横轴墨卡托)。

我希望这可以帮助别人!

于 2009-12-06T12:18:00.790 回答
0

地理坐标是球坐标的变体。您可以将它们转换为法线坐标:

x = r * sin(90 - lat) * cos(lon)
y = r * sin(90 - lat) * sin(lon)
z = r * cos(90 - lat)

这并不准确,因为地球并不完全是一个球体。根据地图的类型,有几种方法可以从中获取 2D 坐标。图像可以从球体投影到圆柱体或两个平面。

这些链接可能会有所帮助:

于 2009-11-29T23:01:29.907 回答