2016-10-13 3 views
0

Ich mache Aufrufe an eine lokale Instanz der Overpass-API, um alle "Straßen" in einer bestimmten Bounding-Box zu erhalten. Seltsamerweise scheinen alle Straßen/Wege/Gleise unter dem "Autobahn" -Schlüssel zu klassifizieren (ist das nicht wirklich ein schlechter Name?). Ich interessiere mich nur für Straßen, auf denen Autos/Busse fahren können, also habe ich einige (ungefähr 17) verschiedene Autobahnwerte identifiziert und sie alle als Filter in meine Abfragekette eingefügt. Das sieht etwa so aus:API-Reaktionszeit linear in der Anzahl der Filter

"way[highway = motorway]; way[highway = trunk]; way[highway = primary]; way[highway = secondary]; way[highway = tertiary]; way[highway = unclassified]; way[highway = residential]; way[highway = service]; way[highway = motorway_link];
way[highway = trunk_link]; way[highway = primary_link]; way[highway = secondary_link]; way[highway = tertiary_link]; way[highway = living_street]; way[highway = bus_guideway]; way[highway = road]; way[highway = track]; "

Das Problem ist, soweit ich das beurteilen kann, die Antwortzeit linear mit jedem hinzugefügten Tag zu erhöhen scheint. Gibt es eine intelligentere Abfrage, die ich ausführen kann, um die Antwort zu beschleunigen? Es fühlt sich so an, als müsste es einen Tag geben, der diese Art von Weg definiert (ich hätte es "Straße" genannt), was nur einen Filter bedeuten würde.

Antwort

2

Nur einen einzigen regulären Ausdruck verwendet statt:

way[highway~"^(motorway|trunk|primary|secondary|tertiary)$"];

Und natürlich: die aktuelle Version 0.7.53 wird von schreibe dies für die beste Leistung zu der Zeit empfohlen.

+0

Perfekt. Sehr geschätzt – mchristos

Verwandte Themen