leider habe ich die im Wiki angegebenen Beispiele zum Herunterladen bestimmter Daten offenbar nicht ganz verstanden. Sind dir die nacheinander anzugebenden Kriterien per UND oder ODER verknüpft? Selektiert das nachfolgende Beispiel aus dem Wiki also alle Teile der Südstraße, die gleichzeitig eine Brücke sind (logisches UND)? Oder die Südstraße und alle Brücken (logisches ODER)?
Wenn es ein UND ist, wie lässt sich dann ein ODER realisieren? Wie kann ich bspw. alle Straßen und alle Bahnstrecken in einem Gebiet auf diese Weise herunterladen? (railway=* ODER highway=*)
Es gibt zwei Verfahren die API abzufragen, einmal mit der XAPI Variante und einmal mit dem XML Konstrukt. Dort gibt es auch die Möglichkeit eines UNION Blockes.
Für die Möglichkeiten auf der Clientseite die Ergebnisse zusammenzuführen müsstest Du uns schon etwas mehr von Deiner Umgebung und Deine Kenntnissen sagen.
Vielen Dank für eure Hinweise. Ich habe nun testweise über zwei separate API-Aufrufe zwei Dateien heruntergeladen: Landuse und Rail. Diese habe dann gemäß der verlinkten Anleitung mit osmconvert zusammengeführt. Im so erzeugten Output sind mir jedoch zwei kleinere Fehler aufgefallen:
osmconvert erzeugt zu Anfang ein Objekt mit der Id=0, das man manuell entfernen muss, um die Daten in Osmarender verarbeiten zu können.
osmconvert entfernt offenbar die zuvor mühsam heruntergeladenen Metainformationen. Beim Versuch, den Output in JOSM zu öffnen, kam die Fehlermeldung, dass er das Attribut “version” vermisst.
Kann man diesen Fehlerchen noch irgendwie beikommen?
Ich habs bisher immer so gemacht: von download.geofabrik.de die betreffende Region runtergeladen und danach auf meinem PC gefiltert.
Trotzdem müsste dein Weg natürlich auch gehen.
Sollte natürlich nicht passieren. Hast du die genauen Aufrufe, so dass ich den Fall einmal nachstellen kann?
Kann normalerweise nur dann sein, wenn du die Option --drop-version verwendest. Das solltest du nicht machen, wenn du die Daten später mit JOSM öffnen willst. Falls du die Datei nun trotzdem noch verwenden willst, kannst du den Version-Tag mit --fake-version wieder hinzufügen. Hochladen in die OSM-Datenbank mit JOSM geht dann natürlich nicht, aber das war ja auch nicht dein Ziel, wenn ich das richtig verstanden habe.
Ui, auch ein guter Trick - wieder was Neues für mich.
Zu dem Knoten mit ID 0:
Die Overpass-API nutzt einen XML-Tag, der in OSM-Dateien nicht vorgesehen ist: The data included in this document is from www.openstreetmap.org. It has there been collected by a large group of contributors. For individual attribution of each item please refer to http://www.openstreetmap.org/api/0.6/[node|way|relation]/id/history
Natürlich ist dieser Tag als XML-Tag zulässig, einzelne Programme werden ihn aber nicht erwarten und möglicherweise damit Probleme haben. osmconvert ist geschwindigkeitsoptimiert und spart dadurch Zeit, dass es den Syntax der .osm-Dateien nicht komplett prüft, sondern davon ausgeht, dass er stimmt:
Nach “<no” denkt sich das Programm “Das muss ein Node sein!” und rechnet nicht damit, dass es danach mit “te>” und nicht mit “de>” weitergeht.
Ich hab das eben geändert: die Version 0.5W fragt auch den dritten Buchstaben ab und sollte nicht mehr damit auf die Nase fallen.
Meine Erfahrung mit der Vervollständigung bei JOSM lehrte mich, dass zwei oft genug nicht reicht (noexit/note) aber auch drei zu wenig sein können (landuse/lanes).
Von daher würde ich sage, immer einen mehr als man denkt, dass es reicht.
Naja, das ist entweder schlampiges Programmieren oder der Versuch, das Programm bis zum letzten Bit auf Geschwindigkeit hin zu optimieren. Du kannst es so oder so sehen - und beide Sichtweisen sind irgendwie richtig.
Muss inzwischen ohne diese Option klappen. Die Option wird nach wie vor akzeptiert, aber ignoriert:
if(strcmp(a,"--in-josm")==0) {
// deprecated;
// this option is still accepted for compatibility reasons;
continue; // take next parameter
}
Grund für diese Änderung waren konkrete Ergänzungsvorschläge für den Quellcode, weil die FOSM-Dateien Hochkommas an Stelle von Anführungszeichen verwendeten. Die Programme sollen ja grundsätzlich für beide Lizenzarten verwendet werden können.