Comprensione delle proprietà di creazione delle tessere mappa


10

Sto cercando di creare una mappa di base delle tessere. Ho un'immagine da cui voglio creare il riquadro e sto usando GDAL.

Sono riuscito a creare i riquadri ma quando visualizzo il risultato sembra che la mappa piastrellata sia:

  1. È capovolto
  2. Le proporzioni non sono giuste

Questa è l'immagine della mappa sovrapposta: immagine della mappa

Questo è il risultato della piastrellatura:

risultato della piastrella

Ho verificato molte volte che le coordinate fossero buone confrontando gli angoli dell'immagine su un ortofoto.

Un'altra cosa è che in Google Earth con le stesse coordinate l'immagine della mappa si adatta esattamente alla mappa di Google.

sovrapposizione di Google Earth

MODIFICATO

gdalinfo map_overlay.png

con questo output:

Driver: PNG / File grafici di rete portatili: map_overlay.png Dimensioni 3535, 2494 Il sistema di coordinate è `` Metadati struttura immagine:
INTERLEAVE = PIXEL Coordinate angolo: In alto a sinistra (0,0, 0,0) In basso a sinistra (0,0, 2494,0) In alto a destra (3527,0 , 0.0) In basso a destra (3527.0, 2494.0) Centro (1763.5, 1247.0) Blocco banda 1 = 3527x1 Tipo = byte, ColorInterp = bandiere maschera rossa: PER_DATASET ALPHA Blocco banda 2 = 3527x1 tipo = byte, ColorInterp = bandiere maschera verde: PER_DATASET ALPHA Blocco banda 3 = 3527x1 Tipo = byte, ColorInterp =
Flag maschera blu : PER_DATASET ALPHA Blocco banda 4 = 3527x1 tipo = Byte, ColorInterp = Alpha

Quindi tradurre:

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 04394 3543_43

con questo output:

La dimensione del file di input è 3527, 2494

e infine:

gdal2tiles.py -z 14-21 map_overlay.vrt

L'overlay è una semplice immagine .png senza dati speciali.

Apprezzerò qualsiasi aiuto.

Shani


2
Sembra esserci un'incoerenza nei gdal_translateparametri che hai pubblicato qui: stai associando (lat, lon) = (31.7431761644, 35.1680410195) con due punti distinti in (0,0) e (0,2494). È davvero questo il comando che hai emesso o è un errore di copia e incolla?
whuber

Risposte:


5

Prova a utilizzare un'immagine coordinata metrica prima di affiancarla come:

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

AGGIORNARE

Nota: anche se specifichiamo gcp, gdal_translatenon specificheremo le coordinate d'angolo di tiff.

Inoltre, non è necessario creare un set di dati virtuale (.vrt) a causa della presenza di un solo file ...

usa il seguente codice:

  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

poi

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

e ora prova a usare gdalinfo ... se non vedi alcun problema, esegui questo comando:

  gdal2tiles.py -z 14-21 warped_map_overlay.tif

se le tue piastrelle non si adattano, esegui sopra il codice prima dell'aggiornamento, ho dato.

Puoi ottenere maggiori informazioni qui

spero che ti aiuti ....


Grazie. Quando dovrei farlo? per ora sto facendo 1.gdalinfo map.png 2.gdal_translate -of VRT -a_srs EPSG: 4326 -gcp .... 3. gdal2tiles.py -z 10-16 map.vrt. Devo farlo dopo la traduzione? dovrei cambiare l'EPSG nel metodo translate?
Shannoga,

se la tua mappa non è coordinata, cercare di prendere informazioni con gdalinfo è vano.
Aragona,

Quindi devo usare gdalwarp invece?
Shannoga,

la tua mappa è coordinata con qualche proiezione o no? se sì, prova a usare gdalwarp per riproiettarlo, altrimenti rendilo coordinato con gdal_transform ...
Aragon,

Ehi, grazie per il tuo paziente. Se capisci bene non lo è. questa è una semplice immagine quadrata disegnata sulla base di una mappa senza dati speciali su di essa. Ho aggiornato la domanda con i miei comandi usati. Grazie ancora per i tuoi tentativi di aiuto.
Shannoga,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.