【问题标题】:Convert/distort image to match Mercator projection转换/扭曲图像以匹配墨卡托投影
【发布时间】:2013-09-16 14:22:12
【问题描述】:

我有一张图片,它基本上只是谷歌地图的截图。 (http://i.stack.imgur.com/Iufcw.jpg)

我还有另一张图片,我想在我的地图上显示。

我知道地图所有四个角的坐标(纬度/经度),它们与我的叠加图像的四个角相匹配。

我的问题:地图是墨卡托投影(这意味着从赤道到极点的比例增加),而我的叠加图像不是。因此,我的叠加图像在地图的顶部和底部是准确的,但在中心有点偏离。

我的问题:如何转换/扭曲我的叠加图像,使其与我的地图的墨卡托投影相匹配?我希望能够在 PHP 中做到这一点。

如果需要任何其他信息,请告诉我。

任何帮助将不胜感激。

【问题讨论】:

    标签: php image map overlay mercator


    【解决方案1】:

    下面是我将生成的图像叠加到 Google 或 Bing 地图上的方法。 就我而言,我正在创建一个将作为叠加层的多边形的 GD 图像。在 GD 库中处理多边形比地图提供程序 API 快得多。

    首先,设置从标准纬度经度到 WGS84 投影的缩放比例。度数以米为单位的墨卡托 x-y 坐标。

    http://gisgeography.com/wgs84-world-geodetic-system/

    // $minlat = 最小图像纬度

    // $minlon = 最小图像经度

    // $maxlat = 最大图像纬度

    // $maxlon = 最大图像经度

    // $latbounds = 图像高度(以像素为单位)

    // $lonbounds = 图像宽度(以像素为单位)

    $lonrange = abs($maxlon - $minlon);
    
    $WGS84min = log(tan((90.+$minlat)*M_PI/360.))/(M_PI/180.);
    $WGS84min = (int) ($WGS84min * 2037598.34/180);
    $WGS84max = log(tan((90.+$maxlat)*M_PI/360.))/(M_PI/180.);
    $WGS84max = (int) ($WGS84max * 2037598.34/180);
    $WGS84diff = $WGS84max - $WGS84min;
    $WGS84factor = $latbounds/$WGS84diff;
    

    然后对于每个纬度/经度,我想计算图像上的实际 X-Y 坐标。

    // $lon1 = 要转换为图像坐标的点的经度

    // $lat1 = 要转换为图像坐标点的纬度

    X 很简单

    $x = (int) ((abs($lon1-$minlon)/$lonrange)*$lonbounds);
    

    Y有点难,先计算到WGS84,然后映射到图像。最后一步,倒置 Y 坐标,因为显示顺序是倒置的。

    $y1 = log(tan((90.+$lat1)*M_PI/360.))/(M_PI/180.);
    $y1 = $y1 * 2037598.34/180;
    $y1 = (int) (($y1- $WGS84min)*$WGS84factor);
    $y  = $latbounds - $y1;
    

    图像文件完成后,使用 GD 保存图像,然后使用 API 库中的示例显示您的叠加层。

    在您的情况下,这可能会相当慢,因为您必须计算每个图像像素坐标的纬度/经度,然后将像素值映射到新坐标处的新图像中。但是,在这种情况下,您不必在每次计算结束时翻转 Y,但您可能会看到一些奇怪的混叠,其中两个像素映射到同一坐标,而另一个像素从未获得数据值。

    https://developers.google.com/maps/documentation/javascript/examples/overlay-simple

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-10-03
      • 1970-01-01
      • 2011-03-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多