Mal wieder eine Anfrage von mir. Ich habe zwar kaum Hoffnung, dass dies vollumfänglich möglich ist, aber das werdet ihr mir schon sagen können. Und zwar, ist es möglich:
a.) mir anzeigen zu lassen, wo es ein Gebäude gibt (wahlweise mehrere, zwei, drei, vier) und im Umkreis von 5km kein weiteres
b.) und als Zusatz dazu, wo das landuse=residential oder landuse=farm auf dem das Gebäude steht, komplett innerhalb eines Radiuses von maximal 100m um das Gebäude liegt?
Bzw. etwas ähnlich: ein landuse=residential oder landuse=farm, welches nicht größer als 2000m² ist und in dessem Umfeld mind. 2km kein weiteres liegt?
Das geht nicht oder? (Sollte ich dafür lieber ein QGIS für Dummies-Thread eröffnen? ;))
Ich würde für alle genannten Fragen ausnahmslos auf PostGIS (vielleicht auch QGIS) zurückgreifen wollen.
Die Argumente:
a) Zählen (im Rahmen von Vergleichen) wird nicht unterstützt; das mit dem Umkreis von 5km kein weiteres wäre noch irgendwie mit foreach machbar, allerdings extrem langsam
b) Um herauszufinden, ob ein Gebäude in einem landuse=residential oder landuse=farm steht, müssten diese ein “name”-Tag tragen, sonst funktioniert is_in nicht. Damit würde es nicht möglich sein, zunächst überhaupt alle relevanten Gebäude zu ermitteln.
c) Größen von Flächen messen bzw. Beziehungen mit kleiner/größer gleich geht ebenfalls nicht.
Was ich mir vorstellen könnte, was geht: ich suche in einem Gebiet nach einem Wert der größer, gleich oder kleiner ist als ein anderer. Wie suche ich also bspw. Parkplätze mit einer Kapazität von gleich oder mehr als 100 Stellplätzen?
Hintergrund: ich lade eine (Wander)Relation (Rennsteig) mit den Wegen und färbe surface entsprechend per mapcss ein.
PS: Wenns dann gut aussieht würde ich das natürlich noch in die Overpass Beispielsammlung aufnehmen.
Also ich habe, nachdem ich das aktiviert habe, durchaus einen Unterschied gesehen. Leider liefert das recurse down aber auch Nodes der Ways zurück, z.B. Ortseingangsschilder und diese werden dann sehr wohl wieder als Kreis (POI) dargestellt
Ach ja, hier noch der Link zur Overpass-turbo Query … habe ich auch mal ins deutsche Surface-Tag und in die deutsche Overpass-Turbo Beispielsammlung mit aufgenommen.
Apropos surface in einer Relation. Ich suche gerade alle Wege innerhalb einer Relation die (k)ein surface haben. Das sollte mit ner geringfügigen Umschreibung der aktuelle (Ab)Frage zu machen sein? Ich seh nur grad den Wald vor lauter Bäumen nicht.
Nachtrag: sehr hybsche Abfrage übrigens um Radrouten zu verbessern. Nachtrag 2: Auf nen schönen Bug gestossen, oder ich hab schon wieder ein Brett vorm Kopf: wenn ich die Abfrage in Josm lade, holt josm die Relation nicht mit. oO
Kann das jemand bestätigen anhand: http://overpass-turbo.eu/s/aVP ?
Die Relations-angaben holt Josm für (alle geladenen) Abschnitte nach, wenn ich an einem einzelnen Teilstuck via Strg+Alt+↓ daten neu/zusätzlich hole. Wo ist da der Fehler verborgen? Overpass(/-Turbo), Josm oder Brett vorm Kopf?
Also ich hab zwischen relation und way einfach noch ein ;out meta; eingefügt und dann kommt die relation mit … aber irgendwie muss ich mich glaube ich mal näher/genauer mit overpass beschäftigen … aktuell ist das bei mir mehr try and error
Geht mehr oder weniger umständlich mit Trick: Man kann Werte auf reguläre Ausdrücke testen. Unter der Annahme, dass niemand führende Nullen hinschreibt, wäre beispielsweise >= 100 eine Zahl, die aus mindestens drei Ziffern besteht. Demzufolge wäre dort die Abfrage (Beispiel):
["capacity"~"^[0-9]{3,}$"]
Schwieriger wird es, wenn man nicht gerade die Dezimalgrenze als Unterscheidungsmerkmal hat. Beispielsweise die gleiche Abfrage mit >= 350 - der vorher noch angezeigte Parkplatz südlich der Reeperbahn mit 310 Plätzen ist dann nicht mehr in der Treffermenge (Beispiel):
Der erste Teil deckt hier alle ein- und zweistelligen Zahlen ab, der zweite Teil alle Zahlen von 100 bis 299, der dritte Teil alle Zahlen von 300 bis 349.
Derartige Vergleiche mit Fließkommazahlen sei als Übung dem geneigten Leser überlassen.