Liebe Mitmapper,
eine neue Version der Overpass API, Version 0.7.4 steht auf
http://overpass-api.de
zur Verfügung. Auf der Rambler-Instanz folgt das Update in den nächsten Tagen.
Neben zahlreichen behobenen Bugs ist vor allem die Abfrage nach Ways und damit
auch Relationen in kleinen Bounding-Boxen effizienter geworden. Damit sollte
sich mit dem POI-Overlay-Prototyp
http://overpass.apis.dev.openstreetmap.org/
jetzt zügig arbeiten lassen.
An Erweiterungen der Syntax gibt es zwei: Zum einen “global deklarierte
Bounding-Boxen”; diese werde ich morgen genauer erläutern, wenn das
korrespondierende JOSM-Plugin mirrored_download sich aktualisiert hat.
Zum anderen der Differenz-Operator. Er dient dazu, Suchen der Art “alle
Objekte die X haben/sind, aber nicht Y haben/sind” zu finden. Zum Beispiel
hier alle Nodes, die einen Wert für “maxheight” gesetzt haben, aber nicht Teil
einer Straße (d.h. eines ways mit Tag “highway”) sind:
// Neu in Overpass 0.7.4: Der Differenz-Operator
[bbox:50.6,7.0,50.8,7.3];
(
node[maxheight]; // Alle Nodes mit irgendeinem Wert für “maxheight”
(way[highway];>;); // die nicht auf irgendeiner Form von Straße liegen
);
out;
Für den besonders häufigen Fall, dass es um “hat Tag X, aber nicht Tag Y”
geht, empfehle ich weiterhin die bekannte Syntax mit “[…!~…]”. Diese
arbeitet effizienter als der Differenzoperator es kann.
// Neu in Overpass 0.7.4: Der Differenz-Operator
//
// Wenn es bloß um nicht gesetzte Tags geht, sollten diese lieber
// als Bedingung aufgelistet werden und nicht als Differenz-Operator.
// Das funktioniert schneller
[bbox:50.7,7.0,50.75,7.1];
( way[highway=residential][name!~‘.’]; // Ways mit Tag “highway”, aber ohne
Tag “name”.
;
);
out;
Alle Details zur neuen Version gibt es im Wiki:
http://wiki.openstreetmap.org/wiki/Overpass_API/versions
Viele Grüße,
Roland