2 Stimmen

Erzeugen von MapTiles aus BSB/KAP-Dateien mit GDAL2Tiles

Zum Beispiel habe ich eine BSB-Datei von NOAA, die eine Navigationskarte ist. Die Karte hat ein SRS von WGS84 und eine Mercator-Projektion.

Zuerst übersetze ich die Datei vom BSB-Format ins GTiff-Format mit folgendem Befehl:

gdal_translate -of GTiff 18554_1.kap noaa.tif

Ich kann diese GTiff-Datei mit Paint Shop Pro problemlos ansehen. Dann übersetze ich die Datei vom GTiff-Format ins VRT-Format mit folgendem Befehl:

gdal_translate -of vrt –expand rgba noaa.tif noaa.vrt

Dann versuche ich, einen Kachelmatrix-Satz mit folgendem Befehl zu erstellen:

gdal2tiles.py noaa.vrt tiles_folder

Wo sich die Kartenkacheln im Ordner "tiles_folder" befinden. Wenn ich versuche, die openmaps.html oder google.html zu öffnen, sieht das Hinein- und Herauszoomen der Karte gut aus. Auf Kachelgeneratoren wie MBTiles sehe ich jedoch, dass die Kacheln vertauscht werden. Siehe das unten stehende Bild. Ich bin am Verzweifeln, um die Kacheln in eine Reihe zu bringen. Ich vermute, es handelt sich um einen Projektionsfehler. Ich verstehe diese Arten von Projektionen nicht. Es wäre großartig, wenn jemand es erklären könnte, während er den Fehler findet. Ich plane, es in einer Karten-/Charts-App wie dieser zu verwenden. Übrigens, wie spezifiziere ich in GDAL die BSB (Referenz)-Datei, die mit der KAP (Daten)-Datei verbunden ist? Ich habe Fälle gesehen, in denen nur eine BSB-Datei von mehreren KAP-Dateien verwiesen wird.

Gdal2tiles vertauschte Kacheln

4voto

MapTiler Punkte 1764

Es gibt kein Problem mit der Kartenprojektion, aber die Kacheln sind gemäß der TMS-Notation (mit Kachel [0,0] unten links) in GDAL2Tiles zugeschnitten. Einige Werkzeuge erwarten die Google XYZ-Notation (mit Kachel [0,0] oben links). Die Kacheln sind ansonsten gleich, sie haben nur die Y-Koordinate im Dateinamen umgekehrt.

Schau dir das an:

Google XYZ vs TMS - die umgekehrten Y-Koordinaten in Kartenkacheln

Ich habe eine Website vorbereitet, die den Unterschied visuell zeigt und das Problem erklärt. Schau mal hier:

http://www.maptiler.org/google-maps-coordinates-tile-bounds-projection/

Es gibt auch einen Quellcode, wie die Kacheln und alle Koordinaten berechnet werden. Es gehört zu GDAL2Tiles, das du oben erwähnt hast - das ist ein Code, den ich vor einigen Jahren erstellt habe.

Deine zweite Frage betrifft MBTiles. Das mbutil-Dienstprogramm hat einen Parameter "--scheme tms", mit dem die MBTiles-Datei aus mit gdal2tiles.py gerenderten Kacheln erstellt werden kann.

GDAL liest nur die KAP-Datei, wobei jede eine Karte im Blatt darstellt (falls es Einblendungen gibt).

Übrigens, wusstest du, dass es http://www.maptiler.com/ gibt, das die oben genannten Probleme direkt löst? Du kannst einfach die KAP-Datei in die grafische Benutzeroberfläche ziehen und ablegen oder sie direkt über die Befehlszeile übergeben und auswählen, ob du Kacheln im Verzeichnis oder MBTiles möchtest, und es wird die Ausgabe direkt rendern. Die Kacheln sind direkt optimiert, es gibt Unterstützung für das Rendering mehrerer Eingabedateien in einer einzigen Ebene und das Rendering ist um Größenordnungen schneller als mit GDAL2Tiles.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X