User:Ajoessen/JOSM
Filterfunktion
Seit einiger Zeit hat Josm eine Filterfuntion (Symbol mit dem Trichter) Da kann man Regeln definieren, was vom runtergeladenen Datenbestand angezeigt werden soll und was nicht.
Beispiel: boundary=* graut alle Grenzlinien aus. ist nur blöd, wenn jemand eine Straße zusätzlich als Grenze definiert hat.
In dem Filtereditor gibts zwei Häkchenfelder vor und eines hinter der Filterbedingung. Das erste aktiviert oder deaktiviert diese Bedingung. Wenn das zweite gesetzt ist, wird nicht nur ausgegraut, sondern gleich ganz ausgeblendet. Der Haken hinter der Bedingung invertiert die Bedingung, also werden nur noch die Grenzen editierbar. Alle Haken gesetzt, sieht man mit obiger Bedingung nur noch die Grenzen. Natürlich kann man mehrere Bedingungen definieren, und die bleiben im Editor auch dauerhaft gespeichert. Alle Bedingungen deaktiviert man am schnellsten, wenn man wieder links die Trichterschaltfläche klickt.
Hier noch ein paar Beispiele:
child ref=057 mit allen Häkchen zeigt nur Elemente der Busrelationen für die Linie 057 an.
child name="Bus 052 Moers" nur die Relation Richtung Moers. Wegen der Leerzeichen müssen hier Anführungszeichen gesetzt werden.
(highway=bus_stop)|(amenity=bus_station) mit allen Haken zeigt nur noch Bushaltestellen und Busbahnhöfe an. In Kombination mit dem vorigen erhält man nur noch die Haltestellen Richtung Moers.
(child route=bus)|(child line=bus) mit allen Haken zeigt nur noch Buslinien an. Ohne Haken dahinter und in Kombination mit dem vorigen bleiben alle Bushaltestellen übrig, die keiner Linie zugeordnet sind.
child network:VRR blendet alle Linien aus, die das network-tag haben In Kombination mit vorigem bleiben nur Buslinien über, denen das tag fehlt.
-name=*
highway=residential
jeweils mit allen Häkchen davor und dahinter zeigt nur noch Wohnstraßen ohne Straßenname an.
"addr:" blendet alle Hausnummern aus. Hier muß man Anführungszeichen
setzen, weil der Doppelpunkt sonst als Teil der Bedingung interpretiert
wird.
area=yes und building=yes blenden Flächen und Gebäude aus.
power=* blendet Hochspannungsleitungen aus (damit du nicht aus Versehen Hochspannung und Wege miteinander verbindest).
leisure=* natural=* und landuse=* blenden die entsprechenden Flächenelemente aus.
type:node blendet alle Knoten aus. Damit kann man einfacher Wege zu Relationen hinzufügen, ohne bei jedem Klick aufpassen zu müssen, ob man nicht aus Versehen nur einen Knoten des Weges erwischt hat.
modified mit Häkchen davor und dahinter zeigt nur noch die Elemente an, die man gerade bearbeitet hat. Damit kann man über Auswahl im Rechteck und Auswahl hochladen Teile der Bearbeitung hochladen. Bei mehr als 100 geänderten Objekten kommt es nämlich öfters vor, dass der OSM-Server nicht innerhalb von einer Stunde antwortet. Dann wird der Änderungsdatensatz automatisch geschlossen, ohne dass man weiß, ob die Änderungen angenommen oder verworfen wurden. Dieses Hochladen im Rechteck funktioniert aber nur mit Knoten und Wegen, nicht bei Relationen. Die muß man zuletzt noch mit dem normalen Hochladebefehl hinterherschieben. Aber dann weiß man bei auftretenden Konflikten wenigstens, dass die Knoten und Wege schon mal "durch" sind.
Symbole für Haltestellen
Haltestellen, die nach dem Oxomoa-Schema mit public_transport=* getaggt sind, werden in den Standardeinstellungen von josm nur als weiße Quadrate dargestellt. Das lässt sich wie folgt ändern:
Verzeichnis D:\Karten\OpenStreetMap\josm anlegen
Darin folgendes in Datei bus.xml ablegen:
<rules name="standard" author="Andre Joost" version="1.0" shortdescription="Bushaltesymbole" description="Gelbes Schild mit grünem H"> <rule> <condition k="highway" v="bus_stop"/> <icon annotate="true" src="bus_stop.png" priority="10000" /> <scale_min>1</scale_min> <scale_max>40000</scale_max> </rule> <rule> <condition k="public_transport" v="platform"/> <icon annotate="true" src="bus_stop.png" priority="10000" /> <scale_min>1</scale_min> <scale_max>40000</scale_max> </rule> <rule> <condition k="public_transport" v="stop_position"/> <icon annotate="true" src="busbahnhof.png" priority="10000" /> <scale_min>1</scale_min> <scale_max>40000</scale_max> </rule> <rule> <condition k="railway" v="tram_stop"/> <icon annotate="true" src="tram.png" priority="10000" /> <scale_min>1</scale_min> <scale_max>40000</scale_max> </rule> <rule> <condition k="railway" v="halt"/> <icon annotate="true" src="train_station.png" priority="10000" /> <scale_min>1</scale_min> <scale_max>40000</scale_max> </rule> <rule> <condition k="railway" v="level_crossing"/> <icon annotate="true" src="bahnuebergang.png" priority="10000" /> <scale_min>1</scale_min> <scale_max>40000</scale_max> </rule> </rules>
Die zugehörigen Icons können vom osmc-style übernommen werden. Nach erstmaligem Durchlauf des Composers sind sie unter D:\Karten\OpenStreetMap\Kosmos\Kosmos\Cache\ImageCache zu finden. Sie werden in das gleiche Verzechnis kopiert wie obige bus.xml.
Lediglich tram.png muß noch mit GIMP nachbearbeitet werden, weil es einen transparenten Hintergrund hat. Also fügt man in Gimp eine weisse Ebene als Hintergrund hinzu und vereint die Ebenen.
Wer kein Kosmos nutzt, kann sich die Icons und xml-Datei auch mit dieser zip-Datei besorgen.
In josm muss der neue Stil noch bekannt gemacht werden:
Bearbeiten/Enstellungen
Symbol mit dem Kartengitter -> Reiter MapPaint-Stile
Das obere + Neu, dann auf die drei Punkte am Ende der neuen Zeile
Pfad zur Bus.xml und diese Datei auswählen
Unteres + Neu, dann den Pfad D:\Karten\OpenStreetMap\josm wählen
ok
Zur Kontrolle:
Bearbeiten/Einstellungen
unteres Symbol
Suche: mappaint
mappaint.icon.sources : D:\Karten\OpenStreetMap\josm
mappaint.style.sources: D:\Karten\OpenStreetMap\josm\Bus.xml
ok
Josm beenden und neu starten
Vorlage für Meilensteine
http://bahnradwandern.bplaced.net/milestone.zip stellt Meilensteine in JOSM mit einem eindeutigen Symbol an. Ausserdem wird statt Name die Beschriftung inscription=* bzw position=* gerendert.
meta { title: "Milestone"; description: "Visualization of some milestone=* tags"; version: "0.1_2012-02-07"; author: "ajoessen"; watch-modified: true; } node[historic=milestone] { icon-image: "milestone.png"; text: "inscription"; } node[railway=milestone] { icon-image: "railway-milestone.png"; text: "position"; }
Gelöschte Relationen wieder herstellen
Das Wiederherstellen gelöschter Relationen ist wie folgt möglich:
- Zunächst muss die ID der gelöschten Relation bekannt sein.
- Aktuelle Version der Relation aus der Ansichtsseite auslesen. Man findet diese unter http://www.openstreetmap.org/browse/relation/<Relations-ID> Auf dieser Seite kann man sich auch die Chronik (history) der Relation anzeigen lassen. Wenn die aktuelle Versionsnummer über hundert liegt, kann die Anzeige der history sehr lange dauern. Dann ist es sinnvoller, gleich mit dem 4. Schritt und der Versionsnummer-1 weiterzumachen.
- Als nächstes gilt es die letzte brauchbare Version der Relation zu finden. Diese wird in den nächsten Schritten wieder hergestellt. Die Versionen lassen sich auf der unter dem 2. Schritt genannten Seite anzeigen. In der angezeigten History-Liste solange zurück gehen, bis man eine Version findet, die den gewünschten ursprünglichen Zustand wieder gibt (Versionsnummer merken).
- Die im Schritt 3. gefundene Versionsnummer ruft man nun in einem beliebigen Browser über http://api.openstreetmap.org/api/0.6/relation/<Relations-ID>/<Versionsnummer> auf und speichert die Seite als OSM- oder xml-Datei ab.
- Mit dem Texteditor die im 4. Schritt gespeicherte Datei öffnen. In das Element <relation> ein action="modify" hinzufügen und die Versionsnummer auf die der letzten auf dem Server befindlichen anpassen (das sollte dann die Versionsnummer des Löschvorgangs sein).
- Die im 5. Schritt erzeugte Datei in JOSM laden und hochladen - fertig
- Wenn Konflikte auftretet dann in JOSM die Relation aktualisieren lassen (File -> Update Data bzw. Datei -> Daten aktualisieren). Danach sollten Konflikte auftreten. Die Konflikte lösen bis keine mehr gemeldet werden. Das heißt fehlende Mitglieder hinzufügen und gelöschte Ways aus der Relation entfernen.
- Die Änderungen wie gewohnt zum Server hochladen.
- Falls Elemente bereits gelöscht wurden, bricht der Server das Hochladen mit der Fehlermeldung ab, dass Element xy bereits serverseitig gelöscht ist. Dann muß man JOSM verlassen, im Texteditor die Element-ID suchen und von Hand aus der Relation entfernen.
- Sollte die Anzahl der serverseitig gelöschten Elemete groß sein, empfiehlt sich folgende Vorgehensweise: Mit Filter "type:node" alle Knoten verstecken. Dann alle Elemente aus der alten Relation löschen. "Alles markieren", und diese einem Duplikat der alten Relation hinzufügen. Anschliessend die alte Relation löschen und hochladen.