Mehr

So stellen Sie Transformationsinformationen für Openlayer auf der Image-Ebene bereit

So stellen Sie Transformationsinformationen für Openlayer auf der Image-Ebene bereit


Ich möchte einen Overlay-Raster-Layer in meine OpenLayers-Karte einbinden. Ich habe das Bild in die richtige Projektion (EPSG:900913) vortransformiert und als PNG mit demgdal_translateBefehl:

gdal_translate -a_srs "EPSG:900913" -of "PNG" $RASTERFILEDIR/$x… /data/$x.png">http://www.stanford.edu/~rpsharp/map-overlay-annotation-test/inseam_explorer .html

Danke für jede Hilfe!


Wenn Sie einem Bild nur eine Projektion zuweisen, wird es nicht funktionieren, da Sie sehen, dass Sie sich 700 km östlich des Nullmeridians befinden. Sie müssen entweder wissen:

  • Die obere linke Ecke und die Meter pro Pixel des Bildes in der EPSG:900913-Projektion (heute sollten Sie das äquivalente EPSG:3857 verwenden).
  • Wenn sich das Bild ursprünglich in einer anderen Projektion befindet, die Grenzen des Bildes in dieser Projektion.

Ich gehe davon aus, dass Sie das erste nicht kennen (sonst würden Sie die Frage nicht stellen!), und wenn es das letztere ist, müssen Sie die Projektion und die Grenzen in Ihrer Quellprojektion zuweisen, bevor Sie sie verzerren.

Wenn sich Ihr Bild beispielsweise im unprojizierten WGS84-Koordinatensystem (EPSG:4326) befindet, würden Sie Folgendes verwenden:

gdal_translate -von "PNG" -a_srs EPSG:4326 -a_ullr  src_file file_out_a

Dadurch wird eine XML-Datei mit den Georeferenzkoordinaten ähnlich der von Ihnen geposteten erstellt, jedoch in Grad und nicht in Metern. Nächste Verwendunggdal_warp:

gdalwarp -t_srs EPSG:3857 -of "PNG" file_out_a file_out_b

Es ist wahrscheinlich, dass Sie schwarze Ränder um Ihr neues Bild herum bekommen, weil ein Quadrat auf einem Sphäroid nicht einem Quadrat auf einer Ebene zugeordnet ist. Sie müssen also über Maskenebenen oder nodata-Werte nachdenken.


Schau das Video: Openlayers 6 # - Debugging Techniques