Landkarte: Unterschied zwischen den Versionen
Aus Alexander's Wiki
Admin (Diskussion | Beiträge) |
Admin (Diskussion | Beiträge) |
||
(10 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 17: | Zeile 17: | ||
</source> | </source> | ||
Eine Kachel hat eine Größe von 512 x 512 Pixel. | Eine Kachel hat eine Größe von 512 x 512 Pixel. | ||
== Auflösung == | |||
Gedruckt werden soll auf einem Drucker, der mit 300 dpi auflöst. Die Breite der Wand beträgt 54 cm (etwa 21,26 Inch bzw. Zoll). | |||
== Das Lade-Skript == | == Das Lade-Skript == | ||
Zeile 22: | Zeile 25: | ||
<source lang="bash"> | <source lang="bash"> | ||
#!/bin/bash | #!/bin/bash | ||
part_count=5 | |||
result_filename=germany.jpg | |||
maptype=m #p | |||
get_tiles() | |||
{ | |||
for (( j=1; j <= $j_end; j++ )) | |||
do | |||
y=$(($j + $column_offset)) | |||
trailing_j | |||
for (( i=1; i <= $i_end; i++ )) | |||
do | |||
x=$(($i + $row_offset)) | |||
trailing_i | |||
wget "https://mt0.google.com/vt?lyrs=p&scale=2&x=${x}&y=${y}&z=${scale}&hl=loc" -O ${jlong}${j}x${ilong}${i}.jpg | |||
done | |||
done | done | ||
done | |||
echo "Now run: montage 'tiles/*.jpg' -tile ${i_end}x${j_end} -geometry +0+0 germany.jpg" | |||
} | |||
trailing_i() | |||
{ | |||
ilong= | |||
zeros=$(($part_count - `expr length ${i}`)) | |||
for (( k=1; k <= $zeros; k++ )) | |||
do | |||
ilong=0$ilong | |||
done | |||
} | |||
trailing_j() | |||
{ | |||
jlong= | |||
zeros=$(($part_count - `expr length ${j}`)) | |||
for (( k=1; k <= $zeros; k++ )) | |||
do | |||
jlong=0$jlong | |||
done | |||
} | |||
run_montage() | |||
{ | |||
montage '*.jpg' -tile ${i_end}x${j_end} -geometry +0+0 $result_filename | |||
} | |||
scale_seven() | |||
{ | |||
scale=7 | |||
row_offset=65 | |||
column_offset=39 | |||
j_end=5 | |||
i_end=4 | |||
} | |||
scale_eight() | |||
{ | |||
scale=8 | |||
row_offset=131 | |||
column_offset=80 | |||
j_end=9 | |||
i_end=7 | |||
} | |||
####### MAIN ########## | |||
#rm -f *.jpg | |||
#scale_seven | |||
scale_eight | |||
get_tiles | |||
#run_montage | |||
</source> | </source> | ||
Zeile 47: | Zeile 107: | ||
Dann das zugehörige Programm ''montage'' mit folgendem Befehl bemühen: | Dann das zugehörige Programm ''montage'' mit folgendem Befehl bemühen: | ||
<source lang="bash"> | <source lang="bash"> | ||
montage 'tiles/*.png' -tile | montage 'tiles/*.png' -tile 4x5 -geometry +0+0 germany.png | ||
</source> | </source> | ||
Das kann sehr viel Arbeitsspeicher kosten! | Das kann sehr viel Arbeitsspeicher kosten! |
Aktuelle Version vom 3. Oktober 2015, 18:45 Uhr
Google Maps
Kacheln von Google Maps lassen sich mit folgender URL herunterladen:
https://mt0.google.com/vt?lyrs=p&scale=2&x=67&y=42&z=7&hl=loc
Die Parameter haben dabei die folgende Bedeutung:
lyrs: Kartenlayer
p: Terrain mit Beschriftungen (Ländergrenzen, Ländernamen etc.)
m: Straßenkarten (Standard)
t: nur Terrain ohne Beschriftung
scale: Skalierung; 2 für Retinadisplays, doppelte Auflösung
x, y: Nummer der gewünschten Kachel
z: Zoomstufe (0 - 20)
hl: Sprache der Beschriftung
loc: Namen in Landessprache und Englisch (zweibuchstabig ISO-Ländercodes)
Eine Kachel hat eine Größe von 512 x 512 Pixel.
Auflösung
Gedruckt werden soll auf einem Drucker, der mit 300 dpi auflöst. Die Breite der Wand beträgt 54 cm (etwa 21,26 Inch bzw. Zoll).
Das Lade-Skript
Das folgende Skript lädt die Karte für Deutschland herunter. Es startet bei Kachel 66/40 und endet bei Kachel 69/44.
#!/bin/bash
part_count=5
result_filename=germany.jpg
maptype=m #p
get_tiles()
{
for (( j=1; j <= $j_end; j++ ))
do
y=$(($j + $column_offset))
trailing_j
for (( i=1; i <= $i_end; i++ ))
do
x=$(($i + $row_offset))
trailing_i
wget "https://mt0.google.com/vt?lyrs=p&scale=2&x=${x}&y=${y}&z=${scale}&hl=loc" -O ${jlong}${j}x${ilong}${i}.jpg
done
done
echo "Now run: montage 'tiles/*.jpg' -tile ${i_end}x${j_end} -geometry +0+0 germany.jpg"
}
trailing_i()
{
ilong=
zeros=$(($part_count - `expr length ${i}`))
for (( k=1; k <= $zeros; k++ ))
do
ilong=0$ilong
done
}
trailing_j()
{
jlong=
zeros=$(($part_count - `expr length ${j}`))
for (( k=1; k <= $zeros; k++ ))
do
jlong=0$jlong
done
}
run_montage()
{
montage '*.jpg' -tile ${i_end}x${j_end} -geometry +0+0 $result_filename
}
scale_seven()
{
scale=7
row_offset=65
column_offset=39
j_end=5
i_end=4
}
scale_eight()
{
scale=8
row_offset=131
column_offset=80
j_end=9
i_end=7
}
####### MAIN ##########
#rm -f *.jpg
#scale_seven
scale_eight
get_tiles
#run_montage
Zusammenführen der Kacheln
Falls noch nicht geschehen ImageMagick installieren:
apt-get install imagemagick libmagickcore5-extra ghostscript netpbm ufraw-batch gsfonts
Dann das zugehörige Programm montage mit folgendem Befehl bemühen:
montage 'tiles/*.png' -tile 4x5 -geometry +0+0 germany.png
Das kann sehr viel Arbeitsspeicher kosten!