Re: [Talk-de] Weg zur Nutzung von OSM-Daten
Hi. Am 12.12.2010 00:02, schrieb Rainer Kluge: Mit diesem Tool http://mr-unseld.de/?q=de/node/170 kann man aus einer heruntergeladenen OSM-Datei den XML-Code von Relationen, inklusiver zugehöriger Wege und Punkte extrahieren. Falls es das ist, was du suchst... Klingt interessant, ist bereits in Betrachtung. :-) Danke. Mit besten Grüßen Marten ___ Talk-de mailing list Talk-de@openstreetmap.org http://lists.openstreetmap.org/listinfo/talk-de
Re: [Talk-de] Weg zur Nutzung von OSM-Daten
Hi. Am 11.12.2010 23:10, schrieb Frederik Ramm: Beim Suchen nach einem passenden Tool für einen entsprechenden nichtinteraktiven Extrakt habe ich aber leider nichts gefunden. Muss ich wirklich einen eigenen XML-Parser schreiben um meine gewünschten Relationen aus dem OSM-File zu erhalten oder habe ich da etwas übersehen? Einen XML-Parser bestimmt nicht, da nimmst Du im Zweifel das, was die Programmiersprache Deiner Wahl schon im Gepaeck hat. Ich nehme an, Du hast Dir das --tag-filter bei Osmosis schon angeguckt, und es ist fuer Deine Anwendung ungeeignet, weil ein zu --used-node analoges --used-way fehlt, das dafuer sorgen wuerde, dass nur diejenigen Ways, die von den von Dir ausgewaehlten Relationen gebraucht werden, auch in die Ausgabe gelangen. Nein, habe ich mir noch nicht, allerdings versuche ich, infolge meiner Versuche eine regelkonforme Nutzung der OSM-Daten zu finden, mich auch mit diesem Werkzeug auseinander zu setzen. Wenn Du Java kannst, waere es vermutlich der kuerzeste (und fuer uns alle nuetzlichste) Weg, wenn Du einfach Osmosis entsprechend erweitern wuerdest. Nun, ausschliessen möchte ich es nicht, dass ich auf diesem Gedanken verfallen könnte, aber einfach mal abwarten, noch habe ich Osmosis uch keiner meiner Maschinen am Laufen und eine entsprechende Entscheidung verlangt als erstes einen Blick in den Sourcecode. :-) Ansonsten ist das Problem mit Deiner Anfrage eines, das man im Usenet (Gott habe es selig) haeufig antraf: Jemand stellt eine laengliche und komplizierte Anfrage, in der er mit viel Muehe um den heissen Brei herumredet, und anstatt klipp und klar zu sagen ich will die Laenge des Fernradwegenetzes von Zentraleuropa bestimmen (oder so) kommt eine verschwurbelt-verallgemeinerte Frage heraus, die in dieser Allgemeinheit niemand beantworten kann. Nunja, gerade im Usenet habe ich eben gelernt, dass eine allgemein gültige Formulierung die Bereitschaft für antworten deutlich erhöht. Aber keine Angst, meine Art mich auszudrücken entstammt weder dem Usenet, noch der Teilnahme an etlichen Mailinglisten in Laufe der Zeit, sondern ist ein Problem, mit welchem ich auch den Rest der Welt beglücke. Wenn Du auf einem Unix-System bist, dann hilft Dir eventuell das hier weiter: http://svn.openstreetmap.org/applications/utils/osm-extract/planetosm-excerpt-tags.pl Werde ich mir angucken (vermutlich vor Osmosis). Vielen Dank für die Tipps Mit besten Grüßen Marten ___ Talk-de mailing list Talk-de@openstreetmap.org http://lists.openstreetmap.org/listinfo/talk-de
Re: [Talk-de] Weg zur Nutzung von OSM-Daten
Hallole. Am 12.12.2010 00:53, schrieb Wolfgang: Es kommt natürlich auf die Programmiersprache an. Wenn du C++ nutzt, kann ich nur das QT-Toolkit empfehlen. Da ist ein xml-Parser bereits eingebaut. Du musst ihm fast nur noch sagen, was du suchst. Einfach und stressfrei. Nun, meinen Kleinkram schreibe ich zumeist mit Python, da stehen mir auch entsprechende Tools direkt zur Verfügung. Allerdings habe ich hier bisher sehr erfolgreich das ElementTree-Modell verwendet. Das lädt aber den ganzen Baum in den Speicher. Im Falle einer einzelnen extrahierten Relation ist das möglich, aber eine Kiste bei der das mit europe.osm funktioniert steht mir leider nicht zur Verfügung. Ich werde mal die genannten Tools angucken und hoffen, dass ich mit deren Hilfe bei ElementTree bleiben kann. :-) Mit besten Grüßen Marten ___ Talk-de mailing list Talk-de@openstreetmap.org http://lists.openstreetmap.org/listinfo/talk-de
Re: [Talk-de] Weg zur Nutzung von OSM-Daten
Hallo Marten, On Sonntag, 12. Dezember 2010, Marten Karl wrote: Nun, meinen Kleinkram schreibe ich zumeist mit Python, da stehen mir auch entsprechende Tools direkt zur Verfügung. Allerdings habe ich hier bisher sehr erfolgreich das ElementTree-Modell verwendet. Das lädt aber den ganzen Baum in den Speicher. Im Falle einer einzelnen extrahierten Relation ist das möglich, aber eine Kiste bei der das mit europe.osm funktioniert steht mir leider nicht zur Verfügung. Da du python verwendest, dann kannst du dir auch mal meine tools auf github ansehen: https://github.com/werner2101/python-osm Mit dem skript src/osmdb.py kannst du über eine API auf Objekte in einer osm-Datei zugreifen. Die Größe der OSM-Datei ist egal, da die Objekte über eine binäre Suche lokalisiert werden. Beispiel: Server mit einer (unkomprimierten) osm-Datei starten: src/osmdb.py --server=1234 osm_files/bw.osm Relation vom server localhost abfragen: wget -OLK_RV.sm http://localhost:1234/relations?relations=62570\mode=recursive Die Abfrage von localhost kannst du auch mit python (urllib,...) oder aus dem Browser machen. Mit dem skript tool/relation2gpx.py kannst du aus einer Relation eine gpx-Datei erzeugen. Die Way-Elemente werden allerdings als einzelne gpx track-Segmente abgespeichert. Grüße Werner ___ Talk-de mailing list Talk-de@openstreetmap.org http://lists.openstreetmap.org/listinfo/talk-de
Re: [Talk-de] Weg zur Nutzung von OSM-Daten
Hallole. Am 12.12.2010 11:58, schrieb Werner Hoch: Nun, meinen Kleinkram schreibe ich zumeist mit Python, da stehen mir Da du python verwendest, dann kannst du dir auch mal meine tools auf github ansehen: https://github.com/werner2101/python-osm Hei. Das arbeitet gut. :-) Super Danke!!! Ich glaube da kann ich jetzt mein Progrämmle über's Netz anflanschen. :-) Mal sehen, was sich daraus entwickelt. Mit besten Grüßen Marten ___ Talk-de mailing list Talk-de@openstreetmap.org http://lists.openstreetmap.org/listinfo/talk-de
Re: [Talk-de] Weg zur Nutzung von OSM-Daten
Hallole. Leider bin ich mit meiner Problemstellung nicht wirklich weiter gekommen, sprich die korrekte Art des Zugriffs auf OSM-Daten bei wiederholter Notwendigkeit größere Relationsbestände zu holen ist mir leider immer noch nicht klar. Allerdings scheint es es mir, als wäre ich auf der sicheren Seite, wenn ich mir nun von den Mirrors ein OSM-File besorge, welches hinreichend groß ist um alle meine gewünschten Relationen zu enthalten (vermutlich sowas wie Europa). Danach sehe ich mich dann nur noch der Notwendigkeit gegenüber aus diesem (doch recht großen File) meine Relationen heraus zu holen. Beim Suchen nach einem passenden Tool für einen entsprechenden nichtinteraktiven Extrakt habe ich aber leider nichts gefunden. Muss ich wirklich einen eigenen XML-Parser schreiben um meine gewünschten Relationen aus dem OSM-File zu erhalten oder habe ich da etwas übersehen? Interessant fand ich allerdings auf der deutsche Webseite, dass unter Anwender eigentlich nur Karten (und ein wenig Routen) als Anwendungen auftauchen. Ich würde mich freuen, wenn mich in diesen Zusammenhängen jemand einnorden könnte. :-) Mit hoffnungsvollen Grüßen Marten ___ Talk-de mailing list Talk-de@openstreetmap.org http://lists.openstreetmap.org/listinfo/talk-de
Re: [Talk-de] Weg zur Nutzung von OSM-Daten
Hallo, Marten Karl wrote: Beim Suchen nach einem passenden Tool für einen entsprechenden nichtinteraktiven Extrakt habe ich aber leider nichts gefunden. Muss ich wirklich einen eigenen XML-Parser schreiben um meine gewünschten Relationen aus dem OSM-File zu erhalten oder habe ich da etwas übersehen? Einen XML-Parser bestimmt nicht, da nimmst Du im Zweifel das, was die Programmiersprache Deiner Wahl schon im Gepaeck hat. Ich nehme an, Du hast Dir das --tag-filter bei Osmosis schon angeguckt, und es ist fuer Deine Anwendung ungeeignet, weil ein zu --used-node analoges --used-way fehlt, das dafuer sorgen wuerde, dass nur diejenigen Ways, die von den von Dir ausgewaehlten Relationen gebraucht werden, auch in die Ausgabe gelangen. Wenn Du Java kannst, waere es vermutlich der kuerzeste (und fuer uns alle nuetzlichste) Weg, wenn Du einfach Osmosis entsprechend erweitern wuerdest. Ansonsten ist das Problem mit Deiner Anfrage eines, das man im Usenet (Gott habe es selig) haeufig antraf: Jemand stellt eine laengliche und komplizierte Anfrage, in der er mit viel Muehe um den heissen Brei herumredet, und anstatt klipp und klar zu sagen ich will die Laenge des Fernradwegenetzes von Zentraleuropa bestimmen (oder so) kommt eine verschwurbelt-verallgemeinerte Frage heraus, die in dieser Allgemeinheit niemand beantworten kann. Meistens machen die Leute das nicht aus Geheimniskraemerei, sondern weil sie annehmen, dass sich fuer das *konkrete* Problem ja niemand interessiert, sondern man muesse fuer die oeffentliche Praesentation alles abstrahieren. Stimmt aber gar nicht - schreib einfach konkret, was Du vorhast, und frage in die Runde: wie wuerdet ihr das loesen? - dann kriegst Du vielleicht auch bessere Antworten. Wenn Du auf einem Unix-System bist, dann hilft Dir eventuell das hier weiter: http://svn.openstreetmap.org/applications/utils/osm-extract/planetosm-excerpt-tags.pl Das braucht noch das Bit::Vector-Paket und ein paar andere Kleinigkeiten (und eine Klasse aus applications/utils/perl_lib im SVN). Da kannst Du Relationstags angeben, und er liefert Dir eine Ausgabedatei mit nur den Nodes/Ways aus den selektierten Relationen. Bye Frederik -- Frederik Ramm ## eMail frede...@remote.org ## N49°00'09 E008°23'33 ___ Talk-de mailing list Talk-de@openstreetmap.org http://lists.openstreetmap.org/listinfo/talk-de
Re: [Talk-de] Weg zur Nutzung von OSM-Daten
Am 11.12.2010 19:40, schrieb Marten Karl: Allerdings scheint es es mir, als wäre ich auf der sicheren Seite, wenn ich mir nun von den Mirrors ein OSM-File besorge, welches hinreichend groß ist um alle meine gewünschten Relationen zu enthalten (vermutlich sowas wie Europa). Danach sehe ich mich dann nur noch der Notwendigkeit gegenüber aus diesem (doch recht großen File) meine Relationen heraus zu holen. Mit diesem Tool http://mr-unseld.de/?q=de/node/170 kann man aus einer heruntergeladenen OSM-Datei den XML-Code von Relationen, inklusiver zugehöriger Wege und Punkte extrahieren. Falls es das ist, was du suchst... Gruß Rainer ___ Talk-de mailing list Talk-de@openstreetmap.org http://lists.openstreetmap.org/listinfo/talk-de
Re: [Talk-de] Weg zur Nutzung von OSM-Daten
Hallo, Am Samstag 11 Dezember 2010 19:40:48 schrieb Marten Karl: Hallole. Beim Suchen nach einem passenden Tool für einen entsprechenden nichtinteraktiven Extrakt habe ich aber leider nichts gefunden. Muss ich wirklich einen eigenen XML-Parser schreiben um meine gewünschten Relationen aus dem OSM-File zu erhalten oder habe ich da etwas übersehen? Es kommt natürlich auf die Programmiersprache an. Wenn du C++ nutzt, kann ich nur das QT-Toolkit empfehlen. Da ist ein xml-Parser bereits eingebaut. Du musst ihm fast nur noch sagen, was du suchst. Einfach und stressfrei. Gruß, Wolfgang ___ Talk-de mailing list Talk-de@openstreetmap.org http://lists.openstreetmap.org/listinfo/talk-de
Re: [Talk-de] Weg zur Nutzung von OSM-Daten
André Joost wrote: Sowas mache ich auch nicht auf dem Server, sondern lokal. Auf den Webspace wandern dann nur die Ergebnisse: Dennoch ist das unter'm Strich weitaus mehr Aufwand, als wenn man einmal täglich die offizielle API triggert, um mal eben eine einzige Relation zu holen. Auf unserer Vereinsseite ist die Karte nettes Beiwerk und nicht primärer Bestandteil. Da würde ich den Aufwand doch gerne möglichst klein halten. Mit meiner jetzigen Lösung hält sich die Karte ganz alleine aktuell. Aufwand für mich ziemlich genau Null. Sollten irgendwann die paar Webseiten, die geringe Datenmengen via API holen, ein Problem werden, dann ändere ich einfach meine Updatehäufigkeit auf zwei, drei oder vier Tage. So aktuell brauche ich die Daten nicht. Entscheidend ist, dass das ganze keine Arbeit machen darf. Ich pflege die Vereinsseite ehrenamtlich und wenn die Karte irgendwann aus irgendeinem Grund anfängt, Arbeit zu machen, dann fliegt sie eben raus. Gruß Manuel ___ Talk-de mailing list Talk-de@openstreetmap.org http://lists.openstreetmap.org/listinfo/talk-de
Re: [Talk-de] Weg zur Nutzung von OSM-Daten
Andre Joost wrote: Oder ein entsprechendes Feature in osmosis, das eine Relation per ID *komplett* aus einem Extrakt oder einer Postgresql-Datenbank auslesen kann. Wenn man das einmal täglich lokal durchlaufen lässt, belastet man die Server rein gar nicht. Sorry, aber für eine kleine Vereinskarte will ich weder Extrakt noch Postgresql. Alleine schon deshalb, weil der Extrakt vermutlich größer ist, als unser Webspace. Gruß Manuel ___ Talk-de mailing list Talk-de@openstreetmap.org http://lists.openstreetmap.org/listinfo/talk-de
Re: [Talk-de] Weg zur Nutzung von OSM-Daten
Am 11.11.10 17:15, schrieb Manuel Reimer: Sorry, aber für eine kleine Vereinskarte will ich weder Extrakt noch Postgresql. Alleine schon deshalb, weil der Extrakt vermutlich größer ist, als unser Webspace. Sowas mache ich auch nicht auf dem Server, sondern lokal. Auf den Webspace wandern dann nur die Ergebnisse: http://bahnradwandern.bplaced.net/wander-nrw.htm http://bahnradwandern.bplaced.net/LokaleWanderwege.htm oder als transparentes Overlay im OSMviewer: http://bahnradwandern.bplaced.net/osmviewer.htm Gruß, André Joost ___ Talk-de mailing list Talk-de@openstreetmap.org http://lists.openstreetmap.org/listinfo/talk-de
Re: [Talk-de] Weg zur Nutzung von OSM-Daten
Am 10.11.2010 12:36, schrieb Marten Karl: Da mich die Gesamtheit der aktuellen Nodes interessiert wäre und ich in der API und der XAPI keinen direkten Zugriffsweg gefunden habe, sehe ich mich nun in der Notwendigkeit, die Relation zu holen, danach die zugehörigen Wege und dann die dazu jeweils zugehörigen Nodes. Es gibt einen API-Aufruf GET /api/0.6/[way|relation]/#id/full der sollte dir zur Relation alle enthaltenen Daten liefern, z.B. hier für die Postleitzahlen-Relation meines Wohnortes: Relation als Objekt: http://www.openstreetmap.org/api/0.6/relation/1239637 Relation mit enthaltenen Elementen: http://www.openstreetmap.org/api/0.6/relation/1239637/full Nun ist aber ja das Abfragen der OSM-Daten über ein Skript etwas ganz Böses (so ich die Liste und das Wiki korrekt verstanden habe). Also stecke ich in einem Problem. Nein, das stimmt nicht ganz. Die API ist ein Werkzeug zum bearbeiten der Daten -- JOSM ist ja auch ein Script. Aber auch die Nutzung als Datenquelle ist nicht unbedingt verboten (z.B. nutzt die Browser-Seite auf osm.org ja auch direkt die API) http://www.openstreetmap.org/browse/relation/1239637 Es ist nur so, dass die massenhafte (!) Nutzung der API als Datenquelle, diese für die Mapper, die darüber Daten eintragen wollen im Wege steht. Als Datennutzer hast du auch noch andere Möglichkeiten an die Daten zu kommen (Planet, Planet Extracts, XAPI etc), wohingegen editierende Mapper auf die API angewiesen sind. Daher verbieten wir eine Nutzung der API in einer Weise, die den Regelbetrieb für Mapper beeinträchtigt. Lg, Peter ___ Talk-de mailing list Talk-de@openstreetmap.org http://lists.openstreetmap.org/listinfo/talk-de
[Talk-de] Weg zur Nutzung von OSM-Daten
Hallo. Auf der einen Seite versuche ich die Daten in OSM zu ergänzen, an denen ich in meinen Aufenthaltsbereichen fehlende Informationen entdecke, bzw. vorhandene Daten zu korrigieren. Auf der anderen Seite versuche ich natürlich auch die OSM-Daten entsprechend meinen Interessen zu nutzen. An dieser Stelle bin ich nun aber an einem Punkt, an dem mir die akzeptable Nutzung der OSM-Daten nicht klar ist. Leider habe ich bisher in im Wiki keine entsprechende Antwort gefunden und wende mich daher mit meiner Problemstellung an die Liste. Ich würde gerne bestimmte Daten aus dem OSM-Datenbestand für mich verwenden. Nun rufe ich die entsprechende Relation ab. In dieser Relation sind nun wiederum Way-Anteile drin, die wiederum auf Nodes basieren. Da mich die Gesamtheit der aktuellen Nodes interessiert wäre und ich in der API und der XAPI keinen direkten Zugriffsweg gefunden habe, sehe ich mich nun in der Notwendigkeit, die Relation zu holen, danach die zugehörigen Wege und dann die dazu jeweils zugehörigen Nodes. Da ich nun aber eher dem faulen Anteil der Menschheit zuzurechnen bin, scheue ich davor zurück diese Ways und die Nodes einzeln über interaktive WebBrowser-Requests zu laden, sondern tendiere zu einem Skript, welches mir diese Arbeit abnimmt. Nun ist aber ja das Abfragen der OSM-Daten über ein Skript etwas ganz Böses (so ich die Liste und das Wiki korrekt verstanden habe). Also stecke ich in einem Problem. Gibt es vielleicht einen (X)API-Weg, wie ich an die Nodedetails der jeweils interessierenden Relation kommen kann? Der Weg bei jeder Relation den gesamten OSM-Datenbestand zu holen und dann mein Skript darauf loszulassen scheint mir nicht unbedingt der Weisheit letzter Schluss. Mit besten Grüßen Marten ___ Talk-de mailing list Talk-de@openstreetmap.org http://lists.openstreetmap.org/listinfo/talk-de
Re: [Talk-de] Weg zur Nutzung von OSM-Daten
Am 10.11.10 12:52, schrieb Peter Körner: Am 10.11.2010 12:36, schrieb Marten Karl: Da mich die Gesamtheit der aktuellen Nodes interessiert wäre und ich in der API und der XAPI keinen direkten Zugriffsweg gefunden habe, sehe ich mich nun in der Notwendigkeit, die Relation zu holen, danach die zugehörigen Wege und dann die dazu jeweils zugehörigen Nodes. Es gibt einen API-Aufruf GET /api/0.6/[way|relation]/#id/full der sollte dir zur Relation alle enthaltenen Daten liefern, z.B. hier für die Postleitzahlen-Relation meines Wohnortes: Relation mit enthaltenen Elementen: http://www.openstreetmap.org/api/0.6/relation/1239637/full Das kann allerdings etwas umfangreich sein, und beisst sich dann mit: Es ist nur so, dass die massenhafte (!) Nutzung der API als Datenquelle, diese für die Mapper, die darüber Daten eintragen wollen im Wege steht. Leider gibt es nämlich keine Möglichkeit, die kompletten Relationsdaten genauso einfach per ID aus der XAPI zu bekommen. Und in den Extrakten sind die Relationen auch schon mal gerne verstümmelt, wenn eine Relation aus anderen Relationen besteht. Gruß, André Joost ___ Talk-de mailing list Talk-de@openstreetmap.org http://lists.openstreetmap.org/listinfo/talk-de
Re: [Talk-de] Weg zur Nutzung von OSM-Daten
Peter Körner wrote: der sollte dir zur Relation alle enthaltenen Daten liefern, z.B. hier für die Postleitzahlen-Relation meines Wohnortes: Relation als Objekt: http://www.openstreetmap.org/api/0.6/relation/1239637 Genau so mache ich das auch. Leider ist das nicht XAPI. Also streng genommen nicht für die Verwendung in Fremden Karten gedacht. Es ist nur so, dass die massenhafte (!) Nutzung der API als Datenquelle, diese für die Mapper, die darüber Daten eintragen wollen im Wege steht. So halte ich das auch. Ich habe das für mich so gelöst: Ich habe auf meinem Webserver ein CGI-Script, welches letztlich von Openlayers getriggert wird, um die Relation (in meinem Fall ein Wanderweg) zu holen und zu visualisieren. Dieses CGI tut nun folgendes: - Prüfen, ob eine lokale Cache-Datei älter als ein Tag ist. - Wenn älter, dann versuchen vom OSM-Server via API die Relation zu holen. Ist das innerhalb eines definierten Zeitraums (Timeout) möglich, dann wird das Cache überschrieben. - Letztlich wird in jedem Fall die Cache-Datei an den anfragenden ausgeliefert. Durch diese Lösung ist sichergestellt, dass meine Karte maximal einmal täglich die API nutzt. Die große Masse an Aufrufen wird komplett aus meinem eigenen Cache bedient. Noch einfacher wäre ein Cron-Job, der einfach täglich das Ergebnis der API-Abfrage lokal speichert. Gruß Manuel ___ Talk-de mailing list Talk-de@openstreetmap.org http://lists.openstreetmap.org/listinfo/talk-de
Re: [Talk-de] Weg zur Nutzung von OSM-Daten
Manuel Reimer schrieb: Noch einfacher wäre ein Cron-Job, der einfach täglich das Ergebnis der API-Abfrage lokal speichert. Oder ein entsprechendes Feature in osmosis, das eine Relation per ID *komplett* aus einem Extrakt oder einer Postgresql-Datenbank auslesen kann. Wenn man das einmal täglich lokal durchlaufen lässt, belastet man die Server rein gar nicht. -- Gruß, André Joost ___ Talk-de mailing list Talk-de@openstreetmap.org http://lists.openstreetmap.org/listinfo/talk-de
Re: [Talk-de] Weg zur Nutzung von OSM-Daten
Am 11.11.10 07:21, schrieb Florian Gross: Am Mittwoch 10 November 2010, 13:27:27 glaubte André Joost zu wissen: Am 10.11.10 12:52, schrieb Peter Körner: Am 10.11.2010 12:36, schrieb Marten Karl: Relation mit enthaltenen Elementen: http://www.openstreetmap.org/api/0.6/relation/1239637/full [...] Leider gibt es nämlich keine Möglichkeit, die kompletten Relationsdaten genauso einfach per ID aus der XAPI zu bekommen. Würdest du darauf wetten? http://www.informationfreeway.org/api/0.6/relation/1239637 http://www.informationfreeway.org/api/0.6/relation/1239637/full Ich würde darauf wetten, dass diese Möglichkeit auf der Wiki-Seite zur XAPI bislang undokumentiert ist. Gruß, André Joost ___ Talk-de mailing list Talk-de@openstreetmap.org http://lists.openstreetmap.org/listinfo/talk-de