Mit Straßen verbundene Stromleitungen finden

Hallo,

ich würde gerne mit Straßen verbundene Stromleitungen finden.

Hier ist Beispiel, wo dieser Fehler auftritt: https://www.openstreetmap.org/node/189881090

Kann man das mit Overpass Turbo abfragen?

Viele Grüße

Hallo!
Bei deinem Beispiel liegen zwei Nodes an derselben Stelle, es gibt aber keine Verbindung.

Die Abfrage ist grob:

  • Finde alle Stromleitungen (in einer bounding box) und deren Nodes.
  • Finde alle Linien mit diesen Nodes.
  • Schaue, ob diese Linien Straßen sind und gebe die Schnittpunkte aus.

Sieht dann z. B. so aus: https://overpass-turbo.eu/s/MXB

Geht bestimmt hübscher, aber funktioniert erstmal :slight_smile:

Hallo Wulf,

vielen Dank für deine Hilfe.

Ich hatte übersehe, dass bei meinem Beispiel die Punkte gar nicht miteinander verbunden sind. Ehrlich gesagt geht es mir nur solche Fälle.
Könnte man auch nach “Stapeln” aus einem Stromleitungs-Node und einem beliebigen anderen Node suchen?

Viele Grüße
(ich stamme ursprünglich aus der Nähe von Hamburg)

Das Beispiel sieht ganz so aus als hätte es bereits ein Bot von Frederik vor 10 Jahren gefixt.
M.E. sollten Stromleitungen eigentlich nur Strommasten als nodes haben, weil andere Knicke kann es nicht geben und auf geraden Strecken braucht man keine Zwischenpunkte. Daher sind solche Stellen, wo der Pfosten dann mitten auf der Straße stünde, nicht ganz hasenrein. Ich würde entweder den node löschen (wenn er keine Mast-tags hat) oder an die Stelle des Masten verschieben sofern das aus den Luftbildern erkennbar ist.

Eine andere Option wäre osmose,
Beispiel:
http://osmose.openstreetmap.fr/de/errors/?country=italy_lombardia&item=7040&level=1%2C2%2C3&class=2
Oder das ganze Programm:
http://osmose.openstreetmap.fr/de/errors/?country=italy_lombardia&item=7040&level=1%2C2%2C3

Nicht nur D.E., sondern auch W.E.:

–ks

Ich habe noch einmal recht naiv was programmiert.
Passieren soll:

  • alle Stromleitungen in der bbox
  • für jeden Node in den Stromleitungen schauen, ob er auch Teil einer Straße ist
  • zu einem gefunden Node den entsprechenden way ausgeben (=recurse up)
way[power=line]({{bbox}})->.all_powerlines;
way[highway]({{bbox}})->.all_highways;
foreach .all_powerlines -> .currentway(
  	node(w.currentway)->.e;
  	node(w.all_highways)->.f;
  	node.e.f;
  	(._ ; .currentway;) -> .result;
);
.result out geom;

Laufen lassen

Mag mir jemand helfen und sagen wo mein Fehler liegt?