【问题标题】:OpenLayers.Image positionning difference between kml vs openlayersOpenLayers.kml和openlayers的图像定位区别
【发布时间】:2016-02-04 08:51:41
【问题描述】:

我在使用 OpenLayers 正确定位图像时遇到问题。我有一个网络软件,如何在网页上创建 KML 文件或显示地图。

这里是 Google 地球上地图显示的屏幕截图,以及与 openlayers 相同的显示,(Google 地球是很好的可视化)。 地图在北方有点拉长

什么是假的? epsg转换?我需要用 gdalwarp 重建图像吗?

这是我的代码示例

function ConvertLonLatFromESPG4326ToESPG900913(LonLat) {
var lonlatTransforme = LonLat.clone();
if (map == null) {
    lonlatTransforme.transform(new OpenLayers.Projection("EPSG:4326"), new OpenLayers.Projection("EPSG:900913"));
}
else {
    lonlatTransforme.transform(new OpenLayers.Projection("EPSG:4326"), new OpenLayers.Projection(map.getProjectionObject().projCode));
}
return lonlatTransforme;

}

var bounds = new OpenLayers.Bounds();
bounds.extend(ConvertLonLatFromESPG4326ToESPG900913(new OpenLayers.LonLat(y1, x1)));
bounds.extend(ConvertLonLatFromESPG4326ToESPG900913(new OpenLayers.LonLat(y2, x2)));

var graphic = new OpenLayers.Layer.Image(
            nomImage,
            url,
            bounds,
            new OpenLayers.Size($("#map").width(), $("#map").height()),
            {
                //http://www.forumsig.org/showthread.php?t=26393
                maxResolution: map.layers[0].resolutions[0],
                resolutions: map.layers[0].resolutions,                    
                isBaseLayer: false,
                displayInLayerSwitcher: true
            }
        );
map.addLayer(graphic);

感谢您的帮助

【问题讨论】:

  • 图像边界错误。 OpenLayers.Layer.Image 边界或图像文件边界。如果你没有使用 OpenLayers 变换函数,那么 ConvertLonLatFromESPG4326ToESPG900913 也可能是错误的!
  • 因为图像没有边框,所以在捕获时很难看到,但在这个小提琴上你可以获得更多信息:jsfiddle.net/seb49/cdmsud7m

标签: openlayers kml


【解决方案1】:

我终于得到了解决方案,因为我认为它必须使用 gdalwarp。

这是我重建图像的代码

//step1 create a GeoTIFF
gdal_translate.exe  -of Gtiff -co tfw=yes -a_ullr -5.25555900000001 52.739645 10.334585 41.047037 -a_srs EPSG:4326 "D:\imageSource.png" "D:\imageEtape1.tiff"
//step2 redraw GeoTIFF
gdalwarp.exe  -co COMPRESS=LZW -r bilinear -s_srs EPSG:4326 -t_srs EPSG:900913 "D:\imageEtape1.tiff" "D:\imageEtape2.tiff" 
//step3 transform the geoTiff to PNG
gdal_translate.exe  -of PNG -a_ullr -5.25555900000001 52.739645 10.334585 41.047037 -a_srs EPSG:4326 "D:\imageEtape2.tiff" "D:\imageFinale.png"[/code]

我希望这可以帮助某人。 (我现在明白为什么 OpenLayers,虽然它知道解析 kml,但不管理 groundoverlay,因为结果将与我遇到的问题相同

【讨论】:

    猜你喜欢
    • 2017-05-16
    • 2019-11-17
    • 2011-11-16
    • 1970-01-01
    • 2016-05-18
    • 2011-06-28
    • 1970-01-01
    • 2021-12-21
    • 1970-01-01
    相关资源
    最近更新 更多