DE:Maperitive

From OpenStreetMap Wiki
Jump to: navigation, search
Verfügbare Sprachen
Deutsch English français italiano 日本語 polski русский
Maperitive
Mapertive 823 OSX .png
Autor: Igor Brejc
Website: http://maperitive.net
Version: 2.3.12 (2012-09-11)
Lizenz: proprietär (gratis)
platform: win ; linux ; mac

Desktop based

Deutsches Hochspannungnetzwerk gerendert mit Maperitive
Österreichisches Hochspannungnetzwerk gerendert mit Maperitive (Stand 2011)

Maperitive ist ein Programm, das Karten in Echtzeit aus OSM-Daten und anderen Quellen rendert. Es ist der Nachfolger von Kosmos.

Erläuterungen zur Umbenennung auf dem Blog des Autors (englisch)

Die englischsprachige Hauptwebseite über Maperitive findet man hier: http://maperitive.net/

Das Handbuch zu Maperitive befindet sich noch im Aufbau. Es ist unter http://maperitive.net/docs/ (englisch) zu finden. Die Anweisungen auf dieser Seite sind dazu gedacht, um schon einmal loszulegen, während die vollständige Dokumentation noch erstellt wird. Es basiert auf dem, was Nutzer herausgefunden haben und auf den hilfreichen E-Mails vom Autor des Programms.

Die neueste Version von Maperitive kann unter http://maperitive.net/download/ heruntergeladen werden. Das Programm bringt eine rudimentäre GUI mit und wird primär mit der Kommandozeile und den mitgelieferten Skriptbefehlen gesteuert. In jeder Version gibt es erkennbare Verbesserungen. Das Programm kann sowohl unter einer Windows- oder einer Linux-Umgebung betrieben werden. In den Befehlszeilen der Konsole ist auf die Verwendung von "\" bei Windows oder "/" bei Linux zu achten, jedoch erkennt das Programm unter Windows auch das "/" als Verzeichnisindikator.

Installation

Windows

Die neueste Version des Zip-Pakets Maperitive von http://maperitive.net/download/ herunterladen und in ein frei wählbares Verzeichnis entpacken. (Es kann sinnvoll sein, die Versionsnummer zu entfernen, damit Updates an die gleiche Stelle kommen.) Maperitive wird unter Windows nicht installiert, sondern direkt per Doppelklick auf Maperitive.exe gestartet. Folglich kann es auch wieder ohne Deinstallation einfach gelöscht werden. Verknüpfungen im Startmenü werden auch nicht automatisch angelegt und müssen daher - wenn gewünscht - von Hand angelegt werden.

Für Maperative wird Microsoft .NET Framework 4.0 benötigt. Eine Vollversion (48,1 MB) zum Download findet man zum Beispiel hier. Ein zusätzliches Update auf Version 4.0.3 (42,4 MB für 32Bit Systeme, 67,1 MB für 64Bit) kann dort ebenfalls heruntergeladen werden.

Ubuntu 10.04 - 12.04

Lade die neueste Version des Maperitive-Zip-Archivs von http://maperitive.net/download/ und entpacke sie in ein frei wählbares Verzeichnis. Danach müssen noch Mono-Bibliotheken installiert werden, falls diese nicht vorhanden sind:

sudo apt-get install libmono-winforms2.0-cil mono-devel
chmod +x ./Maperitive.sh
./Maperitive.sh

Ubuntu 10.04

Da Maperitive eine eigene Dateinamen-Erweiterung für seine Render-Regeldateien nutzt (.mrules), funktioniert eventuell das Kommando edit-rules zur Bearbeitung der mrules-Dateien nicht. Um das Problem zu beheben, kann man für diese Dateien einen eigenen MIME-Typ und einen passenden mailcap-Eintrag erstellen. Die folgenden Befehle generieren entsprechende benutzerspezifische Einträge und legen den Editor gedit als Voreinstellung für mrules-Dateien fest:

echo "text/vnd-maperitive-rules  mrules" >> ~/.mime.types
echo "text/vnd-maperitive-rules; gedit '%s'; description=\"Maperitive rules file\"; test=test -n \"\$DISPLAY\"" >> ~/.mailcap

Fedora 14

Lade die neueste Version des Maperitive-Zip-Archivs von http://maperitive.net/download/ und entpacke sie in ein frei wählbares Verzeichnis. (Es kann von Bedeutung sein, die Versionsnummer zu entfernen, damit Updates an die gleiche Stelle kommen)

Als Root auszuführen:

yum install mono-winforms

Dann geht man zum Verzeichnis wohin Maperitive entpackt wurde und macht es durch folgenden Befehl zur ausführbaren Datei

chmod +x ./Maperitive.sh

gestartet wird mit:

./Maperitive.sh

Mac OS X

Neueste Mono Installation laden und installieren (Achtung es muss X11 auf dem Mac installiert sein)

Maperitive laden, entpacken und den ganzen Ordner in den Programme Ordner verschieben (oder sonst wo hin)

Um Maperitive zu starten das Terminal öffnen und zum Maperitive Ordner wechseln

cd /applications/maperitive

Maperitive starten:

mono maperitive.exe

mit Eingabetaste bestätigen und etwas warten

Datenbeschaffung

Direkt über Maperitive

Über das Menü Map > Download OSM Data (XAPI oder Overpass API) lädt Maperitive die OSM-Daten zum aktuellen Ausschnitt aus dem Internet.

Über bereits separat gespeicherte Daten

Die Daten werden mit File > Open Map Sources.. geladen. Maperitive kann entweder OSM-XML-Dateien lesen oder das Binärformat PBF.

  • Der einfachste Weg (ohne zusätzlichem Programm) ist direkt über die Webseite openstreetmap.org. Dort in der Navigationsleiste unten links dem Link Daten exportieren folgen. Dort kann direkt über Koordinateneingabe oder grafisch ein Kartenbereich ausgewählt werden und als XML-Datei abgespeichert werden.
  • In JOSM kann man ebenfalls einen Bereich auswählen und ihn dann mit Datei>Speichern auf der Festplatte ablegen.
  • Oder man lädt eine Bz2-Datei oder eine pbf-Datei von Geofabrik herunter
  • Maperitive selbst bietet auch eine Möglichkeit, Daten herunterzuladen. Dafür muss zunächst ein Rahmen gesetzt werden (set-geo-bounds) und dann im Menü "Map" -> "Download OSM Data" angewählt werden. Die Daten werden heruntergeladen, können dann aber nicht gespeichert werden.

Es empfiehlt sich, nicht allzu große Ausmaße zu verwenden, da Maperitive die Daten vollständig in den Arbeitsspeicher lädt. Um die Daten im Arbeitsspeicher möglichst gering zu halten, empfiehlt es sich, die Daten vorher beispielsweise mit Osmosis zuzuschneiden.

Bedienhinweise zu den Grundfunktionalitäten

Es empfiehlt sich ein eigenes Arbeits-Verzeichnis z.B. mit Daten, Rules, Scripten und Ergebnis-Unterverzeichnissen anzulegen.

Die späteren Beispiele setzen voraus, dass die Daten im Verzeichnis c:\users\igor\documents\osm\maperitive\data\test.osm enthalten sind. Das Standardverzeichnis wird mit folgendem Kommando gesetzt:

change-directory c:\users\igor\documents\osm\maperitive\

Das Bild verschieben kann man indem man bei gedrückter linker Maustaste die Maus bewegt oder folgenden Befehl ausführt

move-pos x=-0.11 y=51.52

In der Grundeinstellung wird dann die Mapnik.Karte als Hintergrund angezeigt. Klicke auf die graue Leiste unten im Fenster (oder drücke einfach Return) - die Leiste färbt sich jetzt gelb - und setze den Befehl

clear-map

(dt. "lösche Karte") ab um den Mapnik-Hintergrund loszuwerden. Man kann aber mit Hintergrund arbeiten.

Beachte, dass die Eingabe von "clm" schon ausreicht, denn Maperitive benötigt nur eine ausreichende Anzahl Buchstaben, um den Befehl eindeutig zu bestimmen, der Rest des Befehls wird automatisch während der Eingabe ergänzt. So wird "cl" zu "clear-" und das "m" ergänzt dann "map".

Nehmen wir also an, du hast eine OSM-Datei namens test.osm im Unterverzeichnis MeineKarten des maperitive-Verzeichnisses (Derzeit ist es wichtig, dass die Datei auf ".osm" endet). Um diese Karte zu laden lautet der Befehl:

load-source MeineKarten/test.osm

Die Karte wird jetzt geladen und entsprechen der unter Maperitive\Rules\Default.mrules hinterlegten Standard(Default)-Regeln erstellt. Diese Standard-Regel erzeugen ein Kartenbild, das Mapnik entspricht. Um dieses Momentanergebnis zu speichern dient folgendes Kommando:

export-bitmap zoom=15 file=output/test.png width=3000 height=3000 scale=3

Damit ist die erste Karte berechnet (gerendert).

Änderung der Berechnungsregeln (rendering rules)

Möchte man eigene Regeln verwenden, so muss man eine neue Datei im Unterverzeichnis "Rules" anlegen. Man sollte nicht die Default-Regeln anpassen, denn sie werden mit jedem Programm-Update überschrieben.

Erster Versuch

Einfachster Weg zu eigenen Regeln ist, eine Kopie der Standardregeln abzuwandeln. Man öffnet die Standardregel mit:

edit-rules

und speichert sie mit File>Save As in rules/test.mrules

Bei der Bearbeitung orientiert man sich an seinen Vorstellungen. Man kann z.B. versuchen, einige Farben zu ändern (die meisten der üblichen Farben lassen sich mit Worten (englisch) eingeben). Nach dem Abspeichern der Änderungen werden sie angewendet:

use-ruleset location=rules/test.txt as-alias=test
apply-ruleset
Nach dem Abspeichern der Änderungen lädt man die neuen Regeln mit
reload-ruleset
neu ein und das Maperitive-Fenster zeigt wenige Sekunden später das neue Kartenbild an.

Zu der Standard-Regeln, nutzt man den alias:

use-ruleset alias=default
apply-ruleset

Maperitive erinnert sich an den Speicherort der eigen Regeln, daher braucht man sie nicht wieder zu laden. Die Wiedernutzung eines alias überschreibt die alte Position.

Beispiel

Nehmen wir an, du hast eine Regeldatei namens Wanderkarte.txt erstellt. Führe den folgenden Befehl aus, um diese Regeln zu laden:

use-ruleset location=Rules/Wanderkarte.txt as-alias=wanderkarte

Danach sind deine Regeln geladen und in den Einstellungen des Programms gespeichert, um sie später verwenden zu können. Um dies zu tun, nutze den folgenden Befehl:

apply-ruleset

Möchtest du diese Regeln später noch einmal (nach-)laden, so kann der folgende Befehl benutzt werden:

use-ruleset alias=wanderkarte

Den Befehl "apply-ruleset" braucht man auch nur, wenn die Karte schon mit "load-source" geladen ist. Denn er wird bei diesem Befehl automatisch mit ausgeführt.

Eine nützliche Funktion ist der "wirefame"-Regelsatz, der alle Linien anzeigt, egal welches Attribut sie haben. Dieser Regelsatz ist bereits vordefiniert unter dem alias (deutsch Kurznamen) "wirefame". Mit dem Befehl use-ruleset alias=wireframe gefolgt von apply-ruleset kann man ihn benutzen. Um zur Anzeige der Default-Karte zurückzuschalten, nutze use-ruleset alias=default und vergiss nicht diesen Default-Regelsatz mit apply-ruleset zu aktivieren.

Eigene Regeln

Man kann natürlich auch eigene Regeln erstellen. Wichtig beim Erstellen oder modifizieren von Regeln sind die Einrückungen!

Beispiele für benutzerdefinierte Regeln findet man auch hier im Wiki unter der Category Maperitive/Rules und einige Ergebnisse unter Maperitive/SampleRenderings.

Skripte

Man kann auch Skripte erstellen, um eine Karte mit Maperitive zu erstellen. Dafür speichert man die Befehle einfach in einer Datei.

Angenommen, du möchtest deine Karte mit Nutzung eigener Regeln laden. Die OSM-Datei liegt mit Namen mein_gebiet.osm im Unterverzeichnis MeineKarten und der selbst erstellte Regelsatz ist mit dem alias "wanderkarte" geladen. Um dieses auszuführen kann man auch eine Datei wanderkarte_skript.txt erstellen mit dem folgenden Inhalt:

clear-map
change-directory c:/Benutzer/XXX/Eigene Dokumente/osm/maperitive/
use-ruleset location=rules/wanderkarte.txt as-alias=wanderkarte
load-source MeineKarten/mein_gebiet.osm 
export-bitmap zoom=15 file=output/wanderkarte.png width=3000 height=3000 scale=3

Diese Datei kann man dann im selben Verzeichnis wie die ausführbare Datei ablegen. Das Skript wird dann auf der Kommandozeile gestartet mit:

run-script c:/Benutzer/XXX/Eigene Dokumente/osm/maperitive/scripts/wanderkarte_skript.txt

oder als Batch-Datei(.bat) in Windows mit dem Inhalt:

START Maperitive.exe wanderkarte_skript.txt

Diese Batch-Datei kann auf dem Desktop mit einer Verknüpfung abgelegt werden. Als Icon eignet sich der mitgelieferte von Maperitive. So können auch kompliziertere Karten gebaut werden, für die man alle benötigten Befehle aneinanderhängt, z.B. Datei laden - Regeln aktivieren - Standort setzen - Konturen hinzufügen und die fertige Karte als Bitmap exportieren.

Zum Verständnis der Regeldatei

Die Hauptstruktur besteht in folgendem:

features
       …
       areas
               …
       lines
               …
       points
               …
properties
       …
rules
       target  :  feature1
                  …
       target  :  feature2
                  …

Die features Sektion sagt Maperitive welche Daten genutzt werden sollen. Man kann Eigenschaften definieren die nur für areas (Flächen), lines (Linien oder Ways) oder points (Punkte) zutreffen oder man kann allgemeingültige aufstellen.

Die properties Sektion dient dem Überschreiben der Standards von Maperitive (speziell der benutzten Schriften).

Die rules Sektion teilt Maperitive mit, was für jede Eigenschaft eingezeichnet wird, wenn sie das Kritrerium erfüllt. Normalerweise definiert man ein paar Eigenschaften, dann lässt man sie zeichnen usw. Man kann die Darstellung in jeder Regel bei weiteren Tests ändern. Das macht das Programm wirklich sehr Anpassungsfähig.

Maperitive-Befehle

Eine komplette Liste aller Befehle erhält man durch die Eingabe von help-commands. Allerdings rauscht die Liste recht schnell in einem recht kleinem Fenster an einem vorbei, so dass hier eine Liste mit Stand der Version 809 (28 März 2010) dokumentiert werden:

Command Action
add-web-map background=<draw the map in background (true/false)> intensity=<intensity of the web map (from 0 to 1)> provider=<name of the web map provider (mapnik, osmarender, osm cyclemap> Verändert den web map provider für die Karte (mapnik, osmarender, osm cylemap)
apply-ruleset [sourceindex] aktiviert einen Regelsatz für die Kartendarstellung
change-directory <verzeichnis> Wechselt das aktuelle Verzeichnis
check-updates Prüft auf neue Updates von Maperitive
clear-cache webmap=<clear cached web map tiles> löscht den application cache (Anwendungs-Zwischenspeicher)
clear-command-history löscht die Befehlsgeschichte
clear-map löscht die Karte(entfernt alle Karten-Quellen)
clear-results löscht die Resultate der Suche
dump-bounds listet die map view bounds in die Komando-Logdatei
dump-entrails listet Mapertivie's entrails in die Komando-Logdatei (zur Fehlersuche)
dump-pos listet die gegenwärtige Kartenposition in die Komando-Logdatei
exit Beendet Maperitive
export-bitmap aspect=<preserve aspect ratio> scale=<scale> zoom=<zoom level> file=<bitmap file name> width=<bitmap width> height=<bitmap height> Exportiert die gegenwärtige Kartenansicht in eine Bitmap-Datei, erzeugt auch worldfile
export-command-history <outputfilename> exportiert die Befehlsgeschischte in eine Textdatei
export-osm <filename> [sourceindex] exportiert die gegenwärtige Kartenansicht in ein OSM file (nur die OSM Daten)
find <specificationtext> sucht nach Kartendaten mit Hilfe einer Abfragesprache
find-next geht zum nächsten Eintrag in den Suchergebnissen
find-prev geht zum vorangegangenem Suchergebnis
generate-contours [elevationinterval] generiert Reliefkonturen für die aktuelle Kartenansicht
get-info zeigt detaillierte Informatioen über das aktuell ausgesuchte Kartenobjekt an
help zeigt Help Bedinungs-Informationen an
help-commands zeigt eine Liste aller Maperitive Kommandos an
help-keyboard zeigt eine Liste aller Maperitive Tastaturbefehle an
help-properties zeigt eine Liste aller Maperitive rendering rules properties
list-results listet Suchergebnisse ins Befehls-Log
list-rulesets zeigt eine Liste aller angemeldeten Regeldatein an
list-sources zeigt eine Liste aller Karten-Quellen in der Karte
list-viewpoints zeigt eine Liste aller hervorgehobener Punkte
load-source <filename> lädt eine Karten-Quelle aus einer Datei (OSM, GPX or IBF file)
move-pos <x> <y> [zoom] zentriert die Karte auf eine andere Position
prompt aktiviert die Kommandozeile
remove-ruleset index=<ruleset index> alias=<ruleset alias> location=<ruleset location> entfernt (deregisters) eine Regeldatei
remove-source [sourceindex] entfernt eine spezielle Karten-Quelle von der Karte
run-script <scriptfilename> startet einen Maperitive script mit der angegebene Datei
save-map-script <scriptfilename> speichert die aktuelle Karte als einen Script
save-source <sourceindex> <destfilename> speichert eine spezielle Karten-Quelle in die angegebene Datei
send-feedback öffnet den Nutzereigenen E-Mail-Client und bereite eine Mail an den Author voin Maperitive vor
use-ruleset index=<ruleset index> as-alias=<new alias> location=<ruleset location> alias=<ruleset alias> aktiviert die angegebene Regeldatei
zoom <zoomfactor> stellt den zoom level der Kartenansicht ein
zoom-all zoomt auf die Grenzen der Karte
zoom-bounds <minx> <miny> <maxx> <maxy> zoomt auf die angegebenen Kartengrenzen
zoom-in vergrößert
zoom-out verkleinert
zoom-selection zoomt auf das gerade ausgewählte Element

Tastaturbefehle

Die vollständige Liste der Tastaturbefehle sieht man durch Eingabe von help-keyboard. Sie rollen sehr schnell über den relativ kleinen Bildschirm, daher werden sie hier noch mal in Version 2.3.10 aufgelistet (Stand 26. August 2012)

> help-keyboard
   F1 (global): toggle-setting name=gui.layout.assistant.visible
   F3 (global): find-next
   Shift+F3 (global): find-prev
   F4 (global): toggle-setting name=gui.layout.properties.visible
   F11 (global): toggle-setting name=gui.fullscreen
   Ctrl+A (map): zoom-all
   Ctrl+Shift+C (global): generate-contours
   Ctrl+Shift+D (global): download-osm
   Ctrl+E (global): export-bitmap
   Ctrl+H (global): go-home
   Ctrl+M (global): focus-map
   Ctrl+N (global): clear-map
   Ctrl+O (global): open-sources
   Ctrl+Q (global): exit
   Ctrl+R (global): reload-ruleset
   Ctrl+Shift+R (global): open-script
   + (map): zoom-in
   = (map): zoom-in
   - (map): zoom-out
   Left (map): move-screen-pos x=-0.1
   Right (map): move-screen-pos x=0.1
   Up (map): move-screen-pos y=-0.1
   Down (map): move-screen-pos y=0.1
   Ctrl+Enter (global): prompt

Icons

Icons (Kartensymbole) sind z.B. hier erhältlich (Die Lizenz sollte allerdings ggf. beachtet werden!):

Maperitive kopiert die Icons in das Verzeichnis cache\images\ und verlinkt einfach auf den Dateinamen. Sobald die Regeln einmal verwendet worden sind, muss keine Internetverbindung mehr bestehen.

Links (alle englisch)

How to

Wie man mit Maperitive ohne Internetzugang arbeiten kann und verschiedene Optionen einfach dem Endnutzer zur Verfügung stellen kann :

Wie benutzt man den find-Befehl (Suchen) von Maperitive

Bereits bearbeitete Beispiele für angepasste Rules findet man unter

Tipps

  • Bei der Bereitstellung von Kacheln über den eigenen Webserver kann es zu Fehlauslieferungen kommen. In diesem Falle werden statt Leerkacheln andere ausgeliefert. Eine ausführliche Problembeschreibung findet sich im selfhtml-Forum. Die Lösung liegt im .htaccess-Parameter CheckSpelling Off oder das Deaktivieren des mod_speling Moduls aus auf dem Kachel-Server.