Grundlegendes zu den Eigenschaften der Kartenkachelerstellung

10

Ich versuche eine Kachel-Basiskarte zu erstellen. Ich habe ein Bild, aus dem ich die Kachel erstellen möchte, und ich verwende GDAL.

Ich habe es geschafft, die Kacheln zu erstellen, aber wenn ich das Ergebnis ansehe, scheint die gekachelte Karte:

  1. Es ist umgedreht
  2. Die Proportionen stimmen nicht

Dies ist das Karten-Overlay-Bild: Kartenbild

Dies ist das Ergebnis der Kacheln:

Fliesen Ergebnis

Ich habe viele Male überprüft, ob die Koordinaten gut sind, indem ich die Bildecken auf einem Orthofoto verglichen habe.

Eine andere Sache ist, dass in Google Earth mit den gleichen Koordinaten das Kartenbild genau zu Google Map passt.

Google Earth Overlay

BEARBEITET

gdalinfo map_overlay.png

mit dieser Ausgabe:

Treiber: PNG / Portable Network Graphics-Dateien: map_overlay.png Größe ist 3527, 2494 Koordinatensystem ist ''
Bildstruktur Metadaten: INTERLEAVE = PIXEL Eckkoordinaten : Oben links (0,0, 0,0) Unten links (0,0, 2494,0) Oben rechts (3527,0) , 0.0) Unten rechts (3527.0, 2494.0) Mitte (1763.5, 1247.0) Band 1 Block = 3527x1 Typ = Byte, ColorInterp = Rote Maskenflags: PER_DATASET ALPHA Band 2 Block = 3527x1 Typ = Byte, ColorInterp = Grüne Maskenflags: PER_DATASET ALPHA Band 3 Block = 3527x1 Typ = Byte, ColorInterp = Blaue
Maskenflags: PER_DATASET ALPHA Band 4 Block = 3527x1 Typ = Byte, ColorInterp = Alpha

Dann übersetzen:

gdal_translate -of VRT -a_srs EPSG: 4326 -gcp 0 0 31.7431761644 35.1680410195 -gcp 3527 0 31.7493769674 35.1784535489 -gcp 3527 2492 31.7431011291 35.1784951643 -gcp 0 2494 31.74317610

mit dieser Ausgabe:

Die Größe der Eingabedatei beträgt 3527, 2494

und zuletzt:

gdal2tiles.py -z 14-21 map_overlay.vrt

Das Overlay ist ein einfaches PNG-Bild ohne spezielle Daten.

Ich werde jede Hilfe schätzen.

Shani

Shannoga
quelle
2
Die gdal_translatehier veröffentlichten Parameter scheinen inkonsistent zu sein : Sie verknüpfen (lat, lon) = (31.7431761644, 35.1680410195) mit zwei unterschiedlichen Punkten bei (0,0) und (0,2494). Ist dies wirklich der Befehl, den Sie ausgegeben haben, oder handelt es sich um einen Fehler beim Kopieren und Einfügen?
whuber

Antworten:

5

Versuchen Sie, ein metrisch koordiniertes Bild zu verwenden, bevor Sie es wie folgt kacheln:

   gdalwarp -of GTiff -t_srs EPSG:3857 input.tif output.tif 

AKTUALISIEREN

Hinweis: Selbst wenn wir die GCPs angeben, werden die Eckkoordinaten des Tiffs gdal_translatenicht angegeben.

Außerdem müssen Sie kein virtuelles Dataset (.vrt) erstellen, da nur eine Datei vorhanden ist ...

Verwenden Sie den folgenden Code:

  gdal_translate -of  GTiff  -gcp 0 0 31.7431761644 35.1680410195 -gcp 3527 0 
       31.7493769674 35.1784535489 -gcp 3527 2492 31.7431011291 35.1784951643
      -gcp 0 2494 31.7431761644 35.1680410195 map_overlay.png map_overlay.tif

dann

  gdalwarp -s_srs epsg:4326 -t_srs epsg:4326  map_overlay.tif warped_map_overlay.tif

und jetzt versuchen Sie, gdalinfo zu verwenden ... Wenn Sie kein Problem sehen, führen Sie diesen Befehl aus:

  gdal2tiles.py -z 14-21 warped_map_overlay.tif

Wenn Ihre Kacheln nicht passen, führen Sie den obigen Code vor dem Update aus, den ich angegeben habe.

Weitere Informationen erhalten Sie hier

ich hoffe es hilft dir ....

Aragon
quelle
Vielen Dank. Wann soll ich das machen Im Moment mache ich 1.gdalinfo map.png 2.gdal_translate -of VRT -a_srs EPSG: 4326 -gcp .... 3. gdal2tiles.py -z 10-16 map.vrt. Muss ich es nach der Übersetzung tun? sollte ich die EPSG in der Übersetzungsmethode ändern?
Shannoga
Wenn Ihre Karte nicht koordiniert ist, ist es vergeblich, Informationen mit gdalinfo aufzunehmen.
Aragon
Also muss ich stattdessen gdalwarp verwenden?
Shannoga
Ist Ihre Karte auf eine Projektion abgestimmt oder nicht? Wenn ja, versuchen Sie, gdalwarp zu verwenden, um es neu zu projizieren, andernfalls machen Sie es mit gdal_transform koordiniert ...
Aragon
Hey, danke für deinen Patienten. Wenn Sie richtig verstehen, ist es nicht. Dies ist ein einfaches quadratisches Bild, das auf der Grundlage einer Karte ohne spezielle Daten gezeichnet wurde. Ich habe die Frage mit meinen verwendeten Befehlen aktualisiert. Nochmals vielen Dank für Ihre Versuche zu helfen.
Shannoga