Christian's Blog

Openstreetmap lokal als PNG speichern

OpenStreetMap ExportWenn man Landkarten für ein Grafikprojekt benötigt, kann man bei Openstreetmap gute Karten finden. Und wenn man diese lokal speichern will, geht das auch. Unter der URL http://www.openstreetmap.org/export kannst du recht einfach kleine Abschnitte lokal speichern.

Aber was machst du, wenn du einen größeren Abschnitt benötigst? Hierfür gibt es dien Dienst Bigmap / Bigmap2. Hier kannst du größere Karten herunterladen. Wenn du deine Karte sortiert hast, bekommst du ein Perlscript, mitdem du einfach die Daten herrunterladen lassen kannst. Das Script erstellt dir eine PNG Datei, mit der Karte, die du haben willst.

 

Jedoch sind dem Script Grenzen gesetzt. Sobald die Ausschnittkoordinaten über größer 2000 sind, gibt es nur eine Rückmeldung, das der INT_MAX Memory erreicht ist und das Script bricht ab. Was nun?

Wenn du ein Unix System hast, kannst du ganz einfach mit ein paar Zeilen Code ein Bash Script erstellen, was dir die Daten herrunterläd. und aus einem Wert über 4000 einen wert von 100 Macht. Aber schau es dir einfach selbst an.

#!/bin/bash
#Weltkarte Download
xmin=4200
xmax=4443
ymin=2400
ymax=2971
zoom=13
for ((i=xmin;i<=xmax;i++))
do
ordner=$((i-4000))
mkdir $ordner
for ((s=ymin;s<=ymax;s++))
do
datei=$((s-2000))
wget http://tile.openstreetmap.org/$zoom/$i/$s.png -O $ordner/$datei.png
done
done

Im Anschluss kannst du die Daten in einen Ordner auf einen Apache legen und das Perl Script anpassen und laufen lassen. Nun solltest du eine Große Landkarte haben. Ohne das irgendwas abbricht.

Die mobile Version verlassen