Overpass-API - Subways an der Autobahn suchen

Kennt sich jemand gut mit der Overpass-API aus? Kann ich damit alle Subways auflisten, die in der Nähe von Autobahnen sind und ggf. Servays-WCs haben (Wegen der Gutscheine)? Hat jemand Beispiel-Querrys?

Ich habs mal damit probiert:

way["highway"="motorway"](47,6,54,14);
node
  (around:100)
  ["operator"="Subway"];
out body;

Bzw. damit:

way["highway"="motorway"](47,6,54,14);
node
  (around:100)
  ["name"="Subway"];
out body;

Das sollte alle Subways in der Nähe (Umkreis 100m) einer Autobahn im Raum Deutschland liefern. (Tatsächlich bekomme ich nur bei der ersten der beiden Anfragen einen Treffer…) Für andere Gegenden / Umkreisradien müsstest du die Zahlenwerte natürlich etwas anpassen.

way["highway"="motorway"](47,6,54,14)->.autobahn;(node[name="Subway"](around.autobahn:500);node[operator="Subway"](around.autobahn:500););out skel;

zeigt alle Subways, die in der Nähe von Autobahnabfahrten liegen. Genauer, die name=Subway oder operator=Subway haben und in der Nähe einer Autobah liegen. Pastet man das in
http://overpass-api.de/convert_form.html
und wählt “to OpenLayers overlay”, so erhält man eine passende Karte.

Der Aufruf dauert einige Minuten. Sollte er nach drei Minuten scheitern, hilft ein vorangestelltes “timeout” und mehr Geduld (hier bis zu 900 Sekunden)

[timeout:900];way["highway"="motorway"](47,6,54,14)->.autobahn;(node[name="Subway"](around.autobahn:500);node[operator="Subway"](around.autobahn:500););out skel;

Die Karte habe ich erhalten, allerdings nur Subways an Autobahn-Abfahrten gefunden …

Hm. Alle 4 Querrys ergeben mit dem Link von Roland nur eine Karte ohne einen einzigen Marker. grübel

Mit dem obigen Link bekomme ich auch nur blaues Meer… Ich hatte diesen benutzt, damit ergab zumindest meine zweite Suche einen Treffer:

http://www.overpass-api.de/query_form.html

Mit den Querys von Roland gibt es dagegen schon mehr Treffer (größerer Suchradius von 500m statt 100m).

Versuche es mal bitte mit einer kleineren Bounding Box:

[timeout:900];way["highway"="motorway"](51,6,52,7)->.autobahn;(node[name="Subway"](around.autobahn:500);node[operator="Subway"](around.autobahn:500););out skel;

Die hat jetzt unter 30 Sekunden gebraucht und in zwei Versionen des Firefox funktioniert. Es gibt leider noch keinen Fortschrittsbalken, die Anzeige fängt immer mit einem blauen Meer an.

Die Overpass API verarbeitet reguläre Ausdrücke:

[timeout:900];way["highway"="motorway"](51,6,52,7)->.autobahn;(node[name~"[sS]ubway"](around.autobahn:500);node[operator~"[sS]ubway"](around.autobahn:500););out skel;

Man beachte die Tilde nach “name” und “operator” statt des Gleichheitszeichens. Dann wird der nachfolgende Ausdruck als regulärer Ausdruck ausgewertet. In unserem Fall heißt dass, das alle Nodes gefunden werden, die “subway” oder “Subway” als Teilstring im Namen haben.

Ähnlichkeitssuche würde ich einbauen, wenn es einen allgemein akzeptierten Algorithmus dafür gibt. Ich kenne aktuell aber keinen, und möchte nur ungern einen von Hand erfinden.

Google findet da Bitap von agrep bzw. http://ntz-develop.blogspot.de/2011/03/fuzzy-string-search.html. Vielleicht hilft’s dir ja.