spezielle overpass-Abfrage

Hi !

um die Datenmenge bei einer overpass-Apo-Abfrage zu minimieren möchte ich eine spezielle Abfrage definieren.Kann mir einer dabei behilflich sein ? Gesucht werden

highway=primary & oneway=yes ohne junction=roundabout und wenn dann noch möglich einer Max. Länge und wenn dann noch möglich ein in sich geschlossener way - letzteres muss ich wohl später prüfen.

Gruß Jan

Versuche mal dies:

perl opaQuery.pl ‘way [highway = primary] [oneway = yes] [junction !~ “roundabout”] (47.2, 5.8, 55.1, 15.1); out meta;’

Gruß Klaus

Hi !

danke - an das Tool hatte ich aktuell nicht gedacht.

Werde ich heiter gleich mal ausprobiere.

Gruß Jan

na dann mal viel Spass :wink:

Mal leicht offtopic: Ich habe immer noch nicht verstanden, was opqQuery.pl eigentlich macht? An welcher Stelle erleichtert es mir das Leben?

wget http://www.overpass-api.de/api/interpreter?data=way["highway"="primary"]["oneway"="yes"]["junction"!~"roundabout"](47.2,5.8,55.1,15.1);out meta;

Erledigt doch das Gleiche.

Christian

Man muss sich die URL nicht merken. :wink:

Ebenfalls offtopic: Bei den immer mal wieder thematisierten Sammelrelationen (von denen ich absolut kein Anhänger bin) wird immer mal wieder darauf verwiesen, dass man “alle Theater in Hamburg” oder die Badeseen eines bestimmten Landkreises etc. doch über die Overpass-API abfragen könnte, aber wenn ich das richtig verstehe, geht das bisher nur unscharf, also mit (rechteckiger) Bbox bzw. mit (vermutlich kreisförmiger) Suche um einen Mittelpunkt, oder hab ich da was übersehen?

Richtig.

Gruß Klaus

PS: M.E. wäre auch die Angabe eines Polygons wünschenswert.

Das geht schon alles, allerdings noch ohne gute Doku:

http://wiki.openstreetmap.org/wiki/Talk:Overpass_API#Documentation_of_parameter_.3Carea-query_ref.3D.22XXXXXX.22.2F.3E

Sehr interessant und sehr gut versteckt …
Kannst du mal ein Beispiel für die Benutzung von “area-query” posten ?
Vielleicht mit der Grenze (admin_level 6) für Münster: rel 62591

Gruß Klaus

Im indirekt verlinkten Hilfe-Eintrag war ein Bsp.:




Das liefert auch etwas zurück, allerdings finde ich weder Relation noch Weg mit dieser ID.

Doku wird schon noch kommen, auf overpass-api.de ist ja immerhin schon ein Punkt “Areas” angelegt.

Das sollte dann diese Relation (‘Bucuresti’) sein (id - 3600000000): http://www.openstreetmap.org/browse/relation/377733

Erstmal danke … das Beispiel bringt mich aber leider nicht (direkt) weiter … ich suche die Syntax für Overpass-QL.

Gruß Klaus

Habe mal die Abfrage mit url wie Brogo in #5 geschrieben hat, dann kann ich bei einer Fensterauswahl sehen das Elemente da sind - aber sichtbar sind keine.

Kann das einer erklären und weiß Abhilfe.

Jan

<union>
  <area-query ref="3600062591"/>
  <recurse type="up"/>
</union>
<print/>

liefert komplett Münster, in den Grenzen, die in Relation 62591 abgelegt sind. Man muss jeweils 3.6 Mrd auf die Relationen ID draufaddieren.

Weil es nun wirklich umständlich ist, auf diesem Weg einen Download zu tätigen, überarbeite ich gerade die Schnittstelle. Mit

area[name="Münster"];out;

oder äquivalent

<query type="area">
  <has-kv k="name" v="Münster"/>
</query>
<print/>

kann man immerhin jetzt schon direkter alle vorhandenen Areas finden. Bald sollte dann auch eine Abfrage im Stil von

area[name="Münster"];>;out meta;

einen kompletten Extrakt liefern, aber das ist noch nicht implementiert und wird wahrscheinlich auch nicht genau die Syntax bekommen. Die Erweiterungen werden wahrscheinlich Ende Oktober bis Mitte November fertig sein. Dann schreibe ich auch eine korrespondierende Dokumentation. Die alte Syntax wird aber weiterhin funktionieren.

Viele Grüße,

Roland

Roland, danke für die Arbeit! Das ist noch mal wieder eine sehr nützliche Erweiterung. Auf die 3.6 Mrd muss man allerdings auch erstmal kommen, aber irgendeinen Grund wird’s schon haben.

Dann können wir uns ja im Spätherbst mal die Collection-Relationen vornehmen, Ersteller anschreiben etc.

Hallo Roland,

wo es mir (und einigen anderen) drum geht, wäre die Möglichkeit alternativ zu einer Bounding-Box ein Polygon angeben zu können.
Also irgendwie so etwas:

Bounding-Box:
“node [name = Roxel] (51.8, 7.4, 52.1, 7.8); out meta;”

Hypothetische Area-Abfrage:
“node [name = Roxel] (relation 62591); out meta;”

Frage: Deckt deine geplante Erweiterung dies ab ?

Gruß Klaus

PS: @Jan - Sorry für das Kappern des Threads.

Hallo Roland, Klaus

Münster ist ein gutes Beispiel, da es mehrere Orte mit dem Namen Münster gibt (siehe den EIntrag bei Wikipedia) und Münster sowohl eine kreisfreie Stadt als auch ein Regierungsbezirk ist. Name wird also kaum zur Identifizierung ausreichen.

Edbert (EvanE)

Ja, das wird sie abdecken. Das geht aber auch schon heute:

<query type="node">
  <area-query ref="3600062591"/>
  <has-kv k="name" v="Roxel"/>
</query>
<print/>

Innerhalb des Query-Statements können alle Kriterien (Keys, Values, Bounding-Boxen, Way-/Relation-Mitgliedschaften etc., und eben auch, in einer Area zu liegen) frei kombiniert werden.

Die 3.6 Mrd sind ein historisches Artefakt: irgendwie wollte ich die IDs kanonisch von den Element-IDs ableiten, aber alle Elementarten zulassen. Je nach Art des Basiselements werden entweder 0 (für Nodes), 2.4 Mrd (für Ways) oder 3.6 Mrd (für Relations) zur Id dazuaddiert. Areas, die sich von Nodes ableiten, hat es bisher nicht gegeben, Areas, die sich von Ways ableiten, teilweise schon. Die Größenordnungen beruhen auf Schätzungen, wie weit der Nummernraum ausgenutzt wird, und nutzen den Nummernraum von 0 bis 2 hoch 32 = etwa 4.2 Mrd recht gut aus.

Bei den Node-Ids werden wir sicherlich im Laufe von 2013 an die Grenze von 2.4 Mrd kommen, so dass ich umnummieren müsste und daher auch jetzt von einem expliziten Id-Zusammenhang herunter will. Daher auch die zurückhaltende Dokumentation und bessere Suchtools.