2009-11-29 78 views
2

我意识到这可能不是一个编程问题,但它的问题,我一直碰到作为程序员,所以我认为这里的其他人可能有用的知识分享。我应该如何确定在地图中使用的投影,然后我应该如何以编程方式将纬度和经度坐标转换为地图上的像素位置(例如,图片。确定在给定的地图投影

此刻我有matlab代码来打开图像并绘制结果(x,y)坐标,但我无法弄清楚如何将纬度/长度转换为x,y!

任何帮助都将不胜感激。

回答

0

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

我希望这可以帮助别人!

0

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

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

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

这些链接可能帮助:

+0

情况并非总是如此 - 例如,任何地图都可能是墨卡托投影,罗宾逊投影或这里列出的任何一种:http://www.radicalcartography.net/?projectionref。我的问题是确定*给定图像的这些投影中的哪一个(显然你可以通过检查来做到这一点,但它非常费力且效率低下!) – 2009-11-29 23:28:54