Um für mich darzustellen wo ich schon überall war wollte ich mir schon immer eine riesige Landkarte drucken lassen. Da ich nicht herausfinden konnte wo ich eine entsprechende Druckvorlage herbekommen kann und die Google Maps Karte sehr schön gestalltet ist suchte ich einen Weg die Karte herunterzuladen.
Die Karte selbst besteht aus 16384 Kacheln die je 512 * 512 Pixel groß sind.
(8388608 Pixel breit und genauso hoch, das sind 70 Terapixel)
1.) Verzeichnisse Anlegen
tiles=$(mktemp -d) mkdir -p $tiles/0x0 mkdir $tiles/1x0 mkdir $tiles/1x1 mkdir $tiles/0x1
2.) Kacheln herunterladen
cd $tiles/0x0 curl -O -k "https://mt0.google.com/vt?lyrs=p&scale=2&z=7&hl=loc&y=[0000-0063]&x=[0000-0063]"
Die Variable lyrs gibt die Art der Kacheln an, „s“ für Satellitenbild, „y“ für Satellit mit Städtenamen, „p“ ist die alte Standardansicht von Google Maps. (Weiterhin gibt es noch r, t, h)
Bei der gewählten URL, ist die Reihenfolge der x und y Variable wichtig, zuerst das y, damit montage von Imagemagic die Kacheln richtig anordnet.
Nachdem download via curl müssen in jedem Verzeichnis genau 4096 Kacheln liegen.
cd $tiles/0x1 curl -O -k "https://mt0.google.com/vt?lyrs=p&scale=2&z=7&hl=loc&y=[0000-0063]&x=[0064-0127]" cd $tiles/1x0 curl -O -k "https://mt0.google.com/vt?lyrs=p&scale=2&z=7&hl=loc&y=[0064-0127]&x=[0000-0063]" cd $tiles/1x1 curl -O -k "https://mt0.google.com/vt?lyrs=p&scale=2&z=7&hl=loc&y=[0064-0127]&x=[0064-0127]"
3.) Kacheln mit ImageMagick zusammenfügen
montage $tiles/0x0/* -tile 64x64 -geometry +0+0 $tiles/0x0.png montage $tiles/0x1/* -tile 64x64 -geometry +0+0 $tiles/0x1.png montage $tiles/1x0/* -tile 64x64 -geometry +0+0 $tiles/1x0.png montage $tiles/1x1/* -tile 64x64 -geometry +0+0 $tiles/1x1.png montage $tiles/*.png -tile 2x2 -geometry +0+0 ~/weltkarte.png cd ~ rm -r $tiles
Mit der Option –tile werden bei montage die Kachelanordnungen, 64 Zeilen und 64 Reihen, übergeben. Die Option -geometry +0+0 gibt an, das keine Abstände zwichen den Kacheln eingefügt werden sollen.
Die entstehende weltkarte.png ist ca. 1,1GB groß.
Update:
Dank Don (Siehe Kommentare) am 2017-01-21 korrigiert
Die Option -k erlaubt unsichere SSL-Verbindungen… was eigentlich keine Einschränkung sein darf, aber offensichtlich zum Ziel, einer ganzen Weltkarte, führt…
3 Antworten auf „Karte aus Google Maps Tiles erstellen…“
Das Problem liegt an der fehlenden Variablen -k bei curl
curl -O „https://mt0.google.com/vt?lyrs=p&scale=2&z=7&hl=loc&y=[000-063]&x=[000-063]“
habe ich jetzt in
curl -O -k „https://mt0.google.com/vt?lyrs=p&scale=2&z=7&hl=loc&y=[0000-0063]&x=[0000-0063]“
geändert.
Die vorstehenden 0er habe ich auch noch hinzugefügt, da es letzten Endes ja 4-stellige Stückzahlen sind.
Dann funktioniert es. curl, stitch, stitch … fertig.
Vielen Dank für die Korrektur don.
so sieht es gleich richtig aus
Hallo,
ich habe das nun mehrfach probiert, aber nach dem ersten Stitch sieht man bereits deutliche Fehler in der Karte.
Diese habe ich bei allen 4 Teilelementen.
Die Summer der Thumbnails ist aber exakt 4096 je Ordner.
Zoomt man näher, dann erkennt man, dass die Fehlstellen nicht durch fehlende Elemente kommen, sondern durch einen hinzugefügten Abstand.
Der Wert ist bei mir aber auch 0. Ich habe den code 1:1 verwendet.
Auch in der Grafik an sich scheinen viele Fehler aufzutreten.
Any Ideas?
Benerkung: Die Links zu deinen Beispielen habe ich gelöscht um uns beiden „Kartenschnipsel“-Abmahnungen zu ersparen.