ich bin gerade dabei, eine Abfrage mit Overpass zu konstruieren, die mir sämtliche Haltestellen (sowohl Straßenbahn- als auch Bushaltestellen)
innerhalb einer bestimmten Stadt bzw. im Umkreis dieser Stadt anzeigt.
Einen ersten Ansatz habe ich bereits. Dieser sieht wie folgt aus:
node
[“railway” = “station”]
(48.5956,8.2359,49.1,8.8);
out body;
node
[“railway” = “tram_stop”]
(48.5956,8.2359,49.1,8.8);
out body;
node
[“highway” = “bus_stop”]
(48.5956,8.2359,49.1,8.8);
out body;
node
[“railway” = “stop”]
(48.5956,8.2359,49.1,8.8);
out body;
Die Frage ist jetzt die, ob es eine andere Möglichkeit gibt, um eine bestimmte Region mittels Koordinaten einzuschränken ?
ja, das sollte gehen. Man kann die Administrativen Grenzen (z.b. Stadtgrenzen) oder auch PLZ-Grenzen als Area angeben.
Da ich kein “Overpassisch spreche”, kann ich dir die Syntax nicht sagen. suche mal nach “area”.
Das Ergebnis ist ganz erfreulich aus. Nur ist das Problem, dass unter Umständen manche Straßenbahnhaltestellen nicht unter “railway = tram_stop” gepflegt sind, sondern unter “railway = stop”. Deswegen habe ich das nachträglich noch hinzugefügt. Ich hoffe, dass ich damit 90 % der Haltestellen abdecke.
Vielen Dank nochmals für den Tipp!
Dazu kommen noch Nodes mit “public_transport=stop_position” und Nodes, Ways und Relations (MPs) mit “public_transport=platform”.
(Wenn Du auf der Suche nach Fehlern bist, dann kannst Du auch noch alle als Haltestellen benutzte Objekte aus den Relationen friemeln. Die dann noch dazu kommen sind bestimmt falsch gemappt.)
auch bei Ihnen bedanke ich mich für den Tipp. Ich bin noch relativ neu in der Thematik von OpenStreetMap und habe bisher
nur mit der "Overpass-API “gespielt”. Ich kenne zwar die Grundelemente Node, Way und Relation, allerdings waren
meine bisherigen Abfragen nur auf Nodes gewesen.
Da ich nur einzelne Punkte gebraucht habe, habe ich Node verwendet und Relation nicht berücksichtigt.
Sie haben Recht was public_transport = stop_position angeht. Das sollte ich definitiv in meiner ABfrage ergänzen.
Was ich aber nicht ganz kapiert habe ist, wie ich alle als Haltestellen benutze Objekte aus den Relationen ermittle.
Sicherheitshalber würde ich das aber nicht auf Nodes beschränken. Und mach das doch einfach im Wizard mit:
railway=tram_stop or highway=bus_stop or railway=stop or public_transport=stop_position in Karlsruhe
Ob damit alle angezeigt werden hängt davon ab ob alle eingetragen sind und dann auch noch ob mit diesem Schema. Auf jeden Fall aber wirst du mehrfach Angaben erhalten. Pro “normaler” Haltestelle können so wohl schon mal drei Nodes zusammen kommen.
Wenn Du in einer Gemeinschaft geduzt wirst, heisst das nicht, dass die Leute Dich geringschätzen, sondern das Gegenteil: Du bist ein Teil der Gemeinschaft.
Man wird damit fast alle Halte finden. Aber es ist möglich, dass irgendwo nur der Steig gemappt wurde und dass der als Fläche oder Linie dargestellt ist. In dem Fall gäbe es dort keinen Punkt. Es wäre ein Way oder eine Relation.
vielen Dank für deine Hilfe.
Deine Tipps haben mir sehr weitergeholfen.
Nun hätte ich eine andere Frage…
Gibt es bei Overpass die Möglichkeit, eine Haltestelle anhand von Koordinaten zu finden?
node
["railway" = "tram_stop"]
(48.988,8.435,49.010,8.447);
out body;
Ich habe hier beispielsweise eine Ausgangshaltestelle aus OSM gewählt, mir die Koordinaten genommen und jeweils um +/- 0.006 die Unter- bzw. die Obergrenze dadurch bestimmt. Nachdem Ausführen der Abfrage bekomme ich meine Zielhaltestelle. Ist das der einzige Weg, um mittels Koordinaten zu suchen oder könnte ich tatsächlich nur Längen- und Breitengrad angeben?
Sorry für die Leichenfledderei, aber das Thema taucht ja eh immer wieder mal auf. @axelr anscheinend hat sich die Syntax ein wenig geändert. Habe die Query mal gefixt:
/* scan Bus- und Bahnhalte im Ort -Auszug alle-*/
[out:xml][timeout:25];
( area[name="Karlsruhe"];
)->.searchArea;
( node[highway=bus_stop](area.searchArea);
node[railway=tram_stop](area.searchArea);
node[railway=halt](area.searchArea);
node[railway=station](area.searchArea);)->.hnb;
( way[public_transport=platform](area.searchArea);
way[railway=platform](area.searchArea);)->.hwp;
( node[public_transport=stop_position](area.searchArea);
node[railway=stop](area.searchArea);)->.hns;
node[public_transport=platform](area.searchArea)->.hnp;
rel[public_transport=stop_area](area.searchArea)->.hra;
((((.hwp; node(w.hwp);); .hns;); .hnp;); .hnb;)->.hnd;//scan alle
out qt;//Ausgabe normal
//out meta qt;//Ausgabe gross und josm