Landkarte

Aus Alexander's Wiki

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!