DE:Maperitive
Maperitive | |
---|---|
Autor: | Igor Brejc |
Lizenz: | proprietär (kostenlos) |
Plattformen: | Windows, Linux und macOS |
Version: | 2.4.3 (2018-02-27[1]) |
Sprache: | Englisch |
Webseite: | http://maperitive.net |
Programmiersprache: | C# |
Desktop based |
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!):
- http://svn.openstreetmap.org/applications/share/map-icons/
- http://svn.openstreetmap.org/applications/rendering/mapnik/symbols
- http://josm.openstreetmap.de/svn/trunk/images/presets/
- http://mapicons.nicolasmollet.com/
- http://www.sjjb.co.uk/mapicons/
- http://thenounproject.com/
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)
- Maperitive website: http://maperitive.net/
- Download: http://maperitive.net/download/
- Dokumentation: http://maperitive.net/docs/
- Der Blog des Autors: http://igorbrejc.net/category/openstreetmap/maperitive
- Tutorial: http://www.britishideas.com/2011/01/16/so-you-want-to-be-a-cartographer
- Walking Papers mit Maperitive erstellen
- BBBike.org extract service bietet SVG Kartenauschnitte deiner Wahl, wöchentlice Aktualisierung
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.