Overpass-Frage: Flüsse mit Wikidata

Sehr geehrte OSM-Experte,

ich beschäftige mich gerade mit der Hydrologie Quebecs.

Kann man per Overpass Turbo nach Fluss-Ways mit Wikidata-Tags, die Teil von Fluss-Relationen mit Wikidata-Tags suchen?

Ein Beispiel wäre der dieser Way, der Teil der Relation Rivière Noire ist. Beide tragen dieselbe Wikidata-ID in OSM.

Moin,

so etwas für genau den wikidata-Wert: https://overpass-turbo.eu/s/QI1

Edit: Ach, ich seh gerade “Teil von” - dann passt das oben natürlich nicht. Bin halt kein Experte. :wink:

Oder allgemein übergreifend über alle wikidata-Werte?

Grüße
Georg

Das ist schwierig, da die Doppelungen inkonsistent sind. Mal ist der Flusslauf Teil der "Küsten"relation, mal nicht, mal gibt’s nen Flusslauf der unabhängig ist, die Typen und oder das Tagging unterscheiden sich usw.

eine Abfrage wäre http://overpass-turbo.eu/s/QIl damit wirst Du aber ziemlich sicher nicht alle “Probleme” finden.

Zwei Varianten:

area[name="Québec"];
( rel(area)[type=waterway][wikidata];
  way(r)[waterway][wikidata]; );
out center;

liefert

  • alle Relations in “Québec”, die sowohl ein Tag “type=waterway” als auch ein Tag zum Key “wikidata” haben und
  • alle Ways, die in irgendeiner dieser Relations als Member vorkommen und sowohl ein Tag zum Key “waterway” als auch zum Key “wikidata” haben

Bitte mit der Export-Funktion benutzen; Overpass Turbo kommt bei der Anzeige nicht damit zurecht, wenn Relations und ihre Member gleichzeitig Geometrie haben.

Zweite Variante:

[out:csv(wikidata,rels,ways)];
area[name="Québec"];
rel(area)[type=waterway][wikidata]->.all_rels;
for .all_rels->.rel_per_wdata_value(t["wikidata"])
{
  way(r.rel_per_wdata_value)[waterway][wikidata](if:t["wikidata"]==rel_per_wdata_value.val)->.refed_ways;
  if (refed_ways.count(ways) > 0)
  {
    make stat wikidata=rel_per_wdata_value.val,
        rels=rel_per_wdata_value.set(id()),
        ways=refed_ways.set(id());
    out;
  }
}

liefert

  • Value von “wikidata”, Ids der Relations, Ids der Ways
    für alle Situationen, in den die Relation in Quebec liegt, ein Wikidata-Tag trägt und mindestens ein Way als Member besitzt, bei dem der Value von “wikidata” mit dem der Relation übereinstimmt.