【问题标题】:mapping latitude and longitude values onto an image将纬度和经度值映射到图像上
【发布时间】:2011-01-17 22:57:21
【问题描述】:

我正在尝试对值进行地理编码并将它们映射到城市的卫星图像(准确地说是纽约市)。在使用世界的地理空间图像之前,我已经成功地做到了这一点,然后从最大纬度/经度范围(-90,90 和 -180,180)映射/缩放经度和纬度值到图像的最大宽度和高度( 0,width & 0,height) 效果很好。我有点困惑如何仅对城市地图执行此操作。

目前,我有一张纽约市的高分辨率卫星图像,并已对其进行定位,使其与谷歌地图上的纽约市地图完美对齐(我正在使用他们的 API 对我的位置进行地理编码)。我试图获取我正在使用的卫星图像的上/下纬度值和左/右经度值,并尝试缩放需要映射到此范围内的图像上的任何经度/纬度值。但是,这似乎不起作用。我可以使用另一种方法,以便可以将纬度/经度坐标动态映射到纽约市的卫星图像上吗?

这本质上是我想要映射到的图像:

谢谢。

【问题讨论】:

    标签: geolocation gis geocoding geography


    【解决方案1】:

    如果您知道图像大小及其地理范围(纬度/经度值),您可以使用以下内容:

    x = imageWidth * ( pointLon - ImageExtentLeft ) / (ImageExtentRight - ImageExtentLeft);
    y = imageHeight * ( 1 - ( pointLat - ImageExtentBottom) / (ImageExtentTop - mImageExtentBottom));
    

    顺便说一句,如果您使用 Google Maps API 对您的位置进行地理编码,为什么不使用它的功能将标记直接添加到您的地图? (也许我没有完全理解你的情况)

    var latlng = new GLatLng(pointLat, pointLon);
    map.addOverlay(new GMarker(latlng));
    

    希望对你有帮助

    【讨论】:

      【解决方案2】:

      您正在进行一个称为图像配准或地图校正的过程。有一整套遥感专门用于执行此操作的方程式。

      也许你可以从这个网站开始——它基本上应该能满足你的需要 http://labs.metacarta.com/rectifier/ (死链接)

      如果没有,那么可以看看 QGIS 或 GRASS 之类的工具。如果您有金钱和时间,您还可以使用 ESRI ArcGIS Desktop 或 ERDAS Imagine 或 IDRISI。

      【讨论】:

      • 谢谢! metacarta 工具很棒,正是我所需要的!
      • 该站点已不存在。 Mapwarper.net 是一个地图 recitifier,虽然我没有看到任何使用它提供的数据构建图像地图的方法
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-04
      • 2010-09-05
      • 1970-01-01
      • 2011-05-13
      • 2016-02-16
      • 1970-01-01
      相关资源
      最近更新 更多