x

Overpass - Relations pro Straße für Liste von Straßen


  1. Overpass - Relations pro Straße für Liste von Straßen · floriangr (Gast) · 08.06.2021 09:05 · [flux]

    Hallo zusammen,

    ich würde gerne mit einem einzigen Overpass Call die Anzahl der Relations von ein paar (weniger als 10) Straßen abfragen. Ich brauche die Anzahl der Relations pro Straße.
    Momentan benötige ich dafür einen Call pro Straße (Straße repräsentiert als osmid):

    def getNumberRelations(osmid):
    api = overpy.Overpass()
    result = api.query(
    f"""
    [out:json][timeout:30];
    (way({osmid});
    <;
    );
    out;
    """)

    return len(result.relations)

    Ich kann den Query String auch so schicken, dass ich mehrere osmids schicke und in der Query in einer Union zusammenfasse. Dann bekomme ich als Ergebnis allerdings nicht die Anzahl der Relations pro Straße, sondern alle Relations der geschickten Straßen. Dann müsste ich lokal wieder durch das Ergebnis iterieren und checken, welche Relation als Member welche Straße hat.
    Nicht sonderlich elegant...

    Habt ihr vielleicht eine bessere Idee? Kein Problem, falls die Lösung ohne overpy auskommt.

    Viele Grüße,
    Florian