确定给定地图中的投影

Posted

技术标签:

【中文标题】确定给定地图中的投影【英文标题】:Determining the projection in a given map 【发布时间】:2009-11-29 22:24:39 【问题描述】:

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

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

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

任何帮助都将不胜感激。

【问题讨论】:

【参考方案1】:

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

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

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

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

http://en.wikipedia.org/wiki/Geographic_coordinate_system http://en.wikipedia.org/wiki/Map_projection http://en.wikipedia.org/wiki/Spherical_coordinates

【讨论】:

情况并非总是如此 - 例如,任何地图都可能是墨卡托投影、罗宾逊投影或此处列出的任何一种:radicalcartography.net/?projectionref。我的问题是确定给定图像是这些投影中的哪个(显然你可以通过检查来做到这一点,但它非常费力且效率低下!)【参考方案2】:

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

我希望这对其他人有所帮助!

【讨论】:

以上是关于确定给定地图中的投影的主要内容,如果未能解决你的问题,请参考以下文章

北京54坐标如何转换WGS84坐标?

SuperMap地图系列:坐标系的那些事

中国地图大地理2000坐标系对应啥投影坐标系

我国基本比例尺地形图采用啥投影

嗯那个嗯地图上的坐标一般都画在地图的啥位置

Legacy UDF - 确定字典/地图中的最大值