Umfeldparamter aus osm via overpass api abfragen

Hallo an alle,

ich habe einige fragen zum aufbau der osm-karte bis hin zu den metadaten und zu den abfragen von metadaten.

  1. ist das richtig, dass die osm-karte in sogenannte kacheln aufgeteilt ist`? mit kacheln meine ich jetzt sowas wie quadrate gleicher größe.
  2. falls Ja (zu frage 1) , beinhalten ja dann jede kachel metadaten. welche informationen wären das? sind das nodes, ways, relation und tags?
  3. welche gibt es überhaupt? gibt es eine art liste, wo alle metadaten aufgelistet sind?
  4. wenn ich z.b. herausfinden möchte, dass ich mich in einem stadtgebiet aufhalte, müsste ich dann abfragen nach den nodes oder ways führen?
  5. welche informationen oder elemente bei den metadaten, geben auskunft über den umfeld (wie z.B. waldgebiet, stadt, autobahn, Land, andere gebiete… etc) ?
  6. ist es effizienter (schneller und leichter) solche abfragen mit der overpass-api zu machen, mit overpass turbo oder mit anderen api’s (von den ich noch nichts weiß)?

das sind momentan meine offenen fragen. ich weiß es sind nicht wenige, daher wäre ich wirklich sehr dankbar, wenn jmd. mir die fragen schlicht und präzise beantworten würde. aus meinen recherchierten quellen habe ich die fragen nicht beantworten können. dafür fehlen mir glaube ich die grundkenntnisse. danke im voraus für eure hilfen und mühen.

viele grüße :slight_smile:

Zu 1. und 2.:
Die Karten sind in Kacheln à 256x256 Pixel aufgeteilt. Die Kacheln werden nach Zoomstufe, horizontaler und vertikaler Nummer aufgeteilt. Nähere Informationen findest du in http://wiki.openstreetmap.org/wiki/Tile und ggfs. den Folgeseiten.

Zu 6.:
Der Overpass-Turbo ist ein graphisches Frontend zur Overpass-API. Der Turbo erleichtert die Entwicklung von Overpass-Anfragen. Schneller wird das nur, indem man herausfindet, welche Abfragen und welche Reihenfolgen schneller Ergebnisse über die Overpass-API liefern.

Deine Fragen sind für mich eher verwirrend. Es wäre wahrscheinlich einfacher dir zu helfen, wenn du uns sagen würdest, was du eigentlich erreichen willst, welche Anwendung du planst.

Die Frage “bin ich in einer bestimmten Stadt” lässt sich noch einigermaßen leicht beantworten. Die Frage “bin ich in einem Stadtgebiet gemäß StVO” ist dagegen keineswegs einfach zu beantworten.

Edbert (EvanE)

OSM ist im Prinzip nur die Datenbank. Darin sind Nodes, Ways und Relations gespeichert. Ein Node enthält Koordinaten, Ein Way enthält Nodes und eine Relation kann Nodes, Ways oder Relations enthalten.

Zusätzlich können den Nodes, Ways und Relations auch Tags zugeordnet werden. Dadurch wird dann erst ersichtlich ob es sich um eine Straße oder Fußweg handelt, oder ein Haus oder Waldgebiet. Die meisten Tags sind hier aufgelistet: http://wiki.openstreetmap.org/wiki/DE:Map_Features

Kacheln gibt es erst, wenn die Daten für die Onlinedarstellung gerendert werden. Die Kacheln sind dann nur quadratische Bilder ohne weitere Informationen.

Nahmd,

nur zu 1-3:

Die “Slippy maps”, also die pan- und zoombaren Karten der verschiedensten Art werden in Kacheln bereitgestellt, die Weltkarte aus glaube ich vier, die nächste Zoomstufe aus 16, die nächste aus 64 und so weiter jeweils mal vier. Das sind aber alles nur Graphiken, die keinerlei Rückschlüsse mehr zulassen auf die verwendeten Daten. Ich denke, darum geht es dir nicht.

Die zugrunde liegenden OSM-Daten sind nicht in Kacheln aufgeteilt.
Die bestehen aus Nodes, Ways und Relations, die jeweils durchnummeriert sind, Attribute haben können (z.B. einen Namen) und mit Querverweisen untereinander verbunden sind (die Changesets lassen wir mal weg, um die geht es Dir nicht).

Metadaten tragen nur die Objekte aus der OSM-Datenbank.
Manche Kachelserver können das Datum der Kachelerzeugung einblenden, aber das interessiert Dich wahrscheinlich nicht.

Das sind aber nicht sehr viele: wie oft geändert, und letzte Änderung wann und vom wem. Diese Daten interessieren Dich auch nicht.

Wirklich spannend wird es bei den nächsten Fragen. Da können andere aber mehr zu sagen.

Gruß Wolf

hallo an alle :wink:

danke für die zahlreichen antworten. der link von TEL0000 ist doch schon mal sehr gut. sowas habe ich z.b. gesucht, danke TEL0000 :wink:

@EvanE:
“Deine Fragen sind für mich eher verwirrend. Es wäre wahrscheinlich einfacher dir zu helfen, wenn du uns sagen würdest, was du eigentlich erreichen willst, welche Anwendung du planst.”

hmm… wieso findest du die fragen verwirrend??? sind doch präzise gestellte fragen oder nicht?! :slight_smile:
also ich plane eine app zu entwicklen, der mir vom aktuellen standort die metadaten von der osm-datenbank als information am bildschirm ausgeben soll. mit metadaten meine ich z.b. urbanes gebiet wie land, stadt, wald etc. und pois. daher kommen meine fragen und ich hoffe, dass es nun etwas verständlicher ist, was ich bezwecken möchte.

*“bin ich in einer bestimmten Stadt” lässt sich noch einigermaßen leicht beantworten. Die Frage “bin ich in einem Stadtgebiet gemäß StVO” ist dagegen keineswegs einfach zu beantworten. *
könntest du mir das bitte erklären, warum das so ist?

@Netzwolf
genau, mich interessieren nur die objekte.

Nahmd,

Die Verwirrung wurde wahrscheinlich durch den Begriff “Metadaten” verursacht. Der hat bei OSM eine feste Bedeutung und bezeichnet nicht das, was Du meinst.

Du interessierst Dich für die “Attribute” von Objekten.

Bitte nicht böse sein, es entwickelt sich einfach eine Art Fachsprache, und dann muss man erst einmal überlegen, was es bedeutet, wenn ein Begriff aus dieser Fachsprache für etwas anderes benutzt wird. Das aber passiert zwangsläufig, wenn jemand sich gerade erst einarbeitet.

Gruß Wolf

aaach soo, okey. :slight_smile:

bin keineswegs böse, finde gut das du mich damit aufklärst. genau, ich meinte damit die attribute von objekten. mein fehler, sry :confused:

Nahmd,

gerade eine Erleuchtung :sunglasses: gehabt:

Geh auf http://www.openstreetmap.org in eine Region, die Dich interessiert und geh ganz nah ran (zoom→max). Bitte nicht die Kölner Innenstadt oder etwas ähnlich dicht bebautes. Es sollte Wald drauf sein, eine Straße, ein Haus, vielleicht ein Bach; such es Dir aus.

Jetzt die Layerauswahl (der Papierstapel oben rechts) öffnen und da das untere Kästchen “Kartendaten durchsuchen” ankreuzen. Die Karte wird jetzt zu einem modernen Gemälde und zeigt die Rohdaten an. Links daneben öffnet sich eine Textbox, und wenn Du in der Karte einen Punkt oder eine Linie anklickst, siehst Du in der Textbox, welche Attribute dieses Objekt hat.

So kannst Dich etwas spielerisch mit den Daten vertraut machen.

Nachtrag:

die Attribute bestehen aus “key” und “value” und werden informell als zum Beispiel “landuse=forest” angesprochen (sind aber nicht so gespeichert). Viele sind selbsterklärend (“natural=tree”); bei Unklarheiten kannst Du nachschauen. Diese Liste ist aber keineswegs vollständig. Bitte eher zu oft als zu selten nachschauen; die Keys und die Values haben sich über die Jahre entwickelt und können auch irreführend sein: so steht “highway=” nicht direkt für Autobahn, sondern für jede Art der boden-, aber nicht gleisgebundenen Fortbewegung; die Autobahn ist “highway=motorway”, und ein schmaler Pfad im Wald ein “highway=path”.

Das soll erst mal reichen; muss ja verdaut werden. Viel Erfolg dabei!

Nachtrag²: Hmpf! Ich hatte verpennt, dass der Link schon empfohlen wurde. Heute ist nicht mein Tag. :frowning:

Gruß Wolf

wow, coole sache. :smiley:

danke netzwolf. das wird mir auf jedenfall helfen. :wink:

der link von TEL0000 : dort sind ja , ich weiß jetzt nicht ob es alle sind, ziemlich viele attribute aufgelistet. d.h. ich müsste nach den schlüsselwerten wie z.b. landuse (landnutzung) suchen und mit dem value (wert) es halt etwas spezialisieren.
wenn ich mit der karte auf max. heranzoome und dann auf eine waldfläche klicke, dann steht links landuse: forest. ich denke mal das ich dann nach diesen werten abfragen stellen müsste. :wink:

NACHTRAG:

Hab deinen nachtrag gerade gelesen :wink:

Gern geschehen. Dann könnte dich auch http://wiki.openstreetmap.org/wiki/DE:How_to_map_a interessieren.

Dann dürfte die overpass-api das richtige für dich sein.

Hier kann man die Overpass-API in einer ähnlichen Anwendung sehen. Schwerpunkte sind Admin-Grenzen, Straßen und POI.

Mir scheint die Overpass-API im Moment noch etwas zu schwierig, mittelfristig jedoch ein guter Ansatz für naruto25 zu sein. Zum Ausprobieren empfiehlt sich der Overpass turbo. Wenn es soweit ist, hier nochmal nachfragen.

Edbert (EvanE)

Nabend nochmal,

@TEL0000: suuper. danke dir vielmals für die links und ratschläge. die sind echt gut und werden mir sicherlich viel weiterhelfen :wink:

@EvanE: ja du hast schon recht. leicht finde ich es auch nicht gerade, ich bin da noch relativ neu drin in der materie und habe noch keine richtige erfahrung. anfangen werde ich erstmal mit der overpass-api. mal sehen wie sich das so entwickelt. gibt es anleitungen oder beispiele für overpass-turbo? ich habe davon nur kurz was gelesen. viel weiß ich darüber nicht bescheid.

danke :wink:

Ich hab auch schon versucht mich in die Overpass API reinzulesen. Ich schmeiß dazu nochmal ein paar Links hier rein:
http://wiki.openstreetmap.org/wiki/Overpass_API
http://wiki.openstreetmap.org/wiki/Overpass_API/Language_Guide
http://wiki.openstreetmap.org/wiki/DE:Overpass_API/Beispielsammlung

Overpass-Turbo ist ja nur eine Art GUI für die Overpass API. Da scheibst du links die Abfrage rein, und bekommst rechts das Ergebnis angezeigt. Eignet sich also super zum Rumexperimentieren um die Abfragen zu testen.

klasse. danke dir TEL0000. bin gerade in der uni-bibliothek und arbeite mich mal rein :wink:

sollte ich fragen haben, weiß ich ja wo ich mich melden kann :wink:

Zu 4. und 5.: Wahrscheinlich sind da Areas die richtige Datenstruktur. Über die Overpass API bekommst Du die mit einer Abfrage der Art

http://overpass-api.de/api/interpreter?data=is_in(50.7,7.1);out;

wobei 50.7 ein Breiten- und 7.1 ein Längengrad ist und das irgendwo in Bonn landet. Was davon was ist, kannst Du am Admin-Level erkennen (z.B. 2 ist ein Staat, 6 ist eine kreisfreie Stadt oder Kreis). Siehe auch die Dokumentation zum Tag admin_level. Für die übrigen Rückgabewerte lohnt es sich am besten, mit ein paar Orten zu experimentieren, und ein Gespür für die wesentlichen Kategorien zu bekommen, das hat eine subjektive Komponente.

Generell haben Areas eine komplexe Vorgeschichte: diese sind eigentlich nicht in OSM enthalten, sondern die Overpass API baut diese aus Wegen und Relationen zusammen. Die Liste der berücksichtigten Objektklassen steht in https://github.com/drolbr/Overpass-API/blob/master/rules/areas.osm3s und ist eine Zusammenstellung auf Wunsch/Rückmeldung aus der OSM-Community und könnte sich später ändern, d.h. vermutlich länger werden. Mit einem eigenen Server ließe sich hier aber auch jede andere beliebige Liste verwenden, wobei es nur Sinn ergibt, wenn die damit gewählten Objekte überhaupt als Flächen interpretiert werden können.

Es gibt Bestrebungen, Areas als nativen Datentyp einzuführen, und ich unterstütze diese auch. Aber so etwas wird wohl eher 2-3 Jahre als ein paar Monate dauern.

Hallo Roland,

danke für deinen Beitrag und Ratschläge :wink:

wie ich gestern angedeutet hatte, habe ich heute angefangen mich in die materie einzuarbeiten. dazu habe ich erstmal die links, die mir von EvanE, Netzwolf und TEL0000 bereitgestellt wurden, angeschaut. ich weiß nun, dass es grundelemente bei osm gibt (node, way, relation) welche attribute (tags) enthalten können. die tags wiederum bestehen aus einem schlüssel und einem wert. welche für mich in frage kommen, habe ich mir ein paar rausgeschrieben (der 1. link von EvanE). da mich flächen (areas) interessieren, also wie du bereits geschrieben hast, habe ich mir folgende notiert:
landuse - residential
landuse - retail
landuse - farmland
landuse - forest
natural - beach
natural - wood

ich bin dann der erleuchtung vom freundlichen netzwolf gefolgt und habe ein paar screenshots gemacht.
screenshot 1: http://s1.directupload.net/file/d/3166/9ywxdgm9_jpg.htm
screenshot 2: http://s1.directupload.net/file/d/3166/ieyj6ygi_jpg.htm
screenshot 3: http://s1.directupload.net/file/d/3166/mtk4hdvg_jpg.htm
screenshot 4: http://s14.directupload.net/file/d/3166/8wcsvjbp_jpg.htm
screenshot 5: http://s1.directupload.net/file/d/3166/n4rwffpv_jpg.htm
screenshot 6: http://s14.directupload.net/file/d/3166/vd6pt8y9_jpg.htm
screenshot 7: http://s1.directupload.net/file/d/3166/ut8ig6ja_jpg.htm
screenshot 8: http://s1.directupload.net/file/d/3166/pbjkq4wg_jpg.htm

ich habe noch ein paar mehr gemacht, was ich aber jetzt nicht hier alles reinpacken möchte. was ich damit zeigen möchte ist, das stadtgebiete landuse:retail bzw. landuse:residential gekennzeichnet sind, waldgebiete mit landuse:forest. und drumherum, also außerhalb von städten und dörfen sind es meistens farmländer, also landuse:farmland bzw. landuse:farm. daher denke ich das nur diese informationen mir genügen (vorerst). die frage ist, wie ich diese bekomme. dann habe ich weiter recherchiert und wie roland schon beschrieben hat, geht das mittels
http://www.overpass-api.de/api/xapi?*[key=value][bbox=min Lat., min Long., max Lat. , max Long.]

wenn ich diesen link in den browser eingebe und ausführe, bekomme ich eine xml datei ausgegeben, welche sämtliche tags und nodes etc. für die angegebe bbox enthält.

@roland: dein link sieht etwas anders aus: da steht interpreter. wozu ist der?? ( ich habe es damit noch nicht probiert)

außerdem habe ich ja bereits erwähnt das ich diese abfragen in eine app einbringen möchte. mal abgesehen davon, dass ich noch nicht weiß, wie man http-anfragen mittels android macht (keine sorge, das finde ich noch heraus :slight_smile: ) , müsste ich ja dann auch xml.datein downloaden und in einen bestimmten ordner packen, welche dann nach den gesuchten parameter ausgewertet werden müsste. meine frage: gehen solche anfragen nicht gleich online im hintergrund ohne was downzuloaden? ich habe mir mal eine xml.ausgabe von der overpass-api angesehen, da stehen so viele sachen, wobei ich die meisten ja gar nicht benötige. bzw. sind manche datein nicht klein was die performance bei apps runterziehen würde (theoretisch gesehen).

besten grüße
:slight_smile:

NACHTRAG:

@roland: ach ja, das mit dem admin-level habe ich auch noch nicht so ganz verstanden und habe es auch davon nicht in meinen jetzigen qullen gelesen. haste eine quelle, wo das beschrieben wird? das wäre cool. danke :wink:

Mit der Overpass-API kannst du direkt nach Tags filtern, das brauchst du nicht mit der App machen. Ich denke sowas ist in der Art ist etwa das was du brauchst:
http://overpass-turbo.eu/?q=PCEtLQp0aGlzIHF1ZXJ5IGxvb2vEiGZvciBub2Rlcywgd2F5xIhhbmQgcmVsYXRpb27EiAp3acSFIMSFZSBnaXZlbiBrZXkuCsSCPgp7e8S_eT3EqsSldXNlfX3FhsWIxYAyPW7Eq3VyYWzFkQo8b3NtLXNjcmlwdCBvdXRwxa09ImpzxK4ixYUgIDx1bsStbsW3xbjFucSKxIzEjnR5cGXFscSgecW2CsaAxoA8aGFzLWt2xL7FscWHxYnFkSIvxb_GjjxiYm94LcaCxI0gxYfGocajxZHGncaNxo8vxqZ5xp7GgcSLxqfGhcaHxbHEqMSqxKzFtcazxbjGkMaSxpTGlmvGmMWUecabxq3Gjsa_xqrGpMaxxqh7x4zGrMazPMawxrXGssauxr_Hjsa3xogixorGjMeKxbnGkcaTxpXGlyLGmcWVx4jGvsW5x4zGpceWx4_HkX3HicavxrHHk8eaxobHnMa6xKvFvcefx4rHgMejx4PHhcWJMsepx5jGj8esx47GqcaieMeSyIXHlMe0xq7HlMW7xb3FvzxwxaduxaptxJrHnMaiZMaLx7I8xKhjxZrFj8S1x7fFsWRvd27GnMiUyJZpyJggyJrEm8Wxc8S_bGV0xbXGrceUxaHFo8WlxafFqT4&c=BMk_ABT36Q
Einfach mal auf “Ausführen” klicken. Rechts siehst du dann die Daten auf der Karte. Und wenn du dann oben rechts auf “Daten” klickst, dann siehst du die Daten die die API zurückgeschickt hat.

Wegen admin-level guck mal unter http://wiki.openstreetmap.org/wiki/DE:Grenze

ah ok. danke. ich werde es mal versuchen :wink: