Sto cercando di generare tessere con gdal2tiles.py e le tessere risultanti sono memorizzate come 18/132639/164219. Se faccio la stessa cosa con MapTiler (la variante GUI di gdal2tiles) il risultato del riquadro è 18/132639/97923. Voglio i risultati di MapTiler (97923 ), ma solo con gdal2tiles, poiché voglio farlo in un processo batch e non con una GUI.

Ho già provato un sacco di cose, deformando, traducendo, qualunque cosa, e sta diventando molto fastidioso, soprattutto perché dice che MapTiler è solo uninterfaccia grafica per gdal2tiles e fa fondamentalmente lo stesso.

gdal2tiles.py -z 17-19 -s EPSG:900913 -p raster overlay-level1.png gdal2tiles.py -z 17-20 -s EPSG:3785 overlay-level1.png gdal2tiles.py -p geodetic -s EPSG:4326 -z 18-21 -w none overlay-level1.png 

La maggior parte di questi risultati in un ERROR 5 Access window out of range in RasterIO() o ERROR 5: Illegal values for buffer size.

Questo funziona, ma restituisce valori Y errati:

gdal2tiles.py -s EPSG:4326 -z 16-19 -w none overlay-level1.png 

Qualche idea su cosa cè che non va?

Commenti

  • Ho provato a produrre tessere da pubblicare la mia mappa online. Vuoi ottenere la stessa struttura prodotta dallultima versione 0.5.2 di maptiler ma vuoi farlo usando lo script gdal. Ho testato – lultimo maptiler per confrontare come dovrebbe apparire – vecchia versione di maptiler – gdal2tiles.py 25611 2013-02-07 10: 24: 56Z bishop $ (dal pacchetto qgis valmiera) – gdal2tiles.py 19288 2010-04- 02 18:36: 17Z rouault $ + la tua modifica (Andre Joost) http://gis.stackexchange.com/questions/63024/gdal2tiles-maptiles-from-bsb-kap-are-switched

Risposta

La soluzione è molto più semplice del previsto. È sufficiente impostare le impostazioni TMS su true in Leaflet.

L.tileLayer("http://{s}.somedomain.com/{foo}/{z}/{x}/{y}.png", {tms: true}); 

Commenti

  • Tieni presente che gdal2 gdal2tiles.py (GDAL 2.1.3, released 2017/20/01) utilizza " corretto " o la convenzione Google / OSM per x e y, quindi i riquadri generati potrebbero non richiedere tali correzioni.
  • @AhmedFasih, ancora non funziona. testato da GDAL 2.3.1

Risposta

gdal2tiles utilizza la specifica TMS per la denominazione dei riquadri (dal basso verso lalto) , mentre Maptiler ti consente di utilizzare il sistema di denominazione delle tessere Google / Openstreetmap (dallalto verso il basso).

Vedi la mia risposta a questo argomento su come modificare gdal2tiles.py per la denominazione delle tessere Google / OSM:

GDAL2Tiles: i MapTiles da BSB / KAP vengono cambiati

Commenti

  • ho apportato le modifiche, ma i numeri Y rimangono gli stessi? ' sto lavorando con CRC EPSG: 4326, che probabilmente è anche un problema, poiché lopuscolo richiede EPSG: 3857.
  • Avresti dovuto sostituire ty e y con ty2 e y2 anche nelle righe esistenti quotate. La mia sorgente e le mie tessere erano tutte in EPSG: 3857.
  • Oh ok. Bene, dal momento che non ' voglio cambiare gdal2tiles.py su tutte le macchine coinvolte, la variante tms: true è la soluzione migliore. Grazie!

Risposta

Un contributo in ritardo, ma forse aiuta …

In alternativa alla modifica del codice in gdal2tiles.py o allaggiunta del flag speciale al leaflet, è possibile modificare i nomi dei file delle tessere. Questa è stata una soluzione semplice per la creazione di riquadri da utilizzare con ArcGIS online. Ecco uno script bash approssimativo che alternerà la convenzione z / x / y avanti e indietro tra OSM / Google-Maps (gdal2tiles predefinito) e TMS (utilizzato in ArcGIS Online)

 # Each time it runs it will toggle the convention between OSM/Google-Maps and TMS tiledir=$1 for x in $(find $tiledir -name "*.png") do #echo $x # isolate where tile folders begin tiles="${x#$tiledir/}" #echo $tiles # separate each z,x,y value zdir=$(echo $tiles | cut -d"/" -f1-1) xdir=$(echo $tiles | cut -d"/" -f2-2) ypng=$(echo $tiles | cut -d"/" -f3-3) # remove extension from y.png files y="${ypng%.*}" # calculate new y using formula referenced here: # http://osgeo-org.1560.x6.nabble.com/gdal2tiles-tiles-in-wrong-hemisphere-and-or-Openlayers-problem-td3742809.html (( newy=(2**zdir - 1)-y )) #echo $zdir,$xdir,$y $newy is newy # rename the files mv -v $x $tiledir/$zdir/$xdir/$newy.png done 

Risposta

Puoi scaricare il gdal2tiles.py per Google / OSM tessere per link

http://gisfile.com/user/admin/gdal2tiles.py

Commenti

  • Benvenuto in GIS @SE, grazie per la tua risposta, tuttavia dovresti spiegare nella tua risposta qual è la differenza nel tuo link di download consigliato rispetto alla domanda originale, in modo che anche i futuri utenti capiranno. i migliori saluti

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *