Overpass: Multipolygone, die nur aus äußeren Wegen bestehen

Wertes Forum,

vielleicht wird mir diese Frage noch beantwortet, bevor hier alle Lichter ausgehen :frowning:

Vor Jahren hatte ich mal eine Lösung gefunden, wie man per Overpass Multipolygone findet, die nur aus äußeren Wegen bestehen, also keine inner-Elemente haben.

Weiß noch jemand, wie das geht?

https://wiki.openstreetmap.org/wiki/Overpass_API/Overpass_API_by_Example#Find_multipolygons_with_a_single_outer_way_member_(since_0.7.55)

Also z.B.

rel[type=multipolygon](if:count_by_role("outer") >= 1 && if:count_by_role("inner") == 0);

Danke, und mit beliebig vielen äußeren Wegen?

= 1 sind doch beliebig viele. Außer Null.


rel[type=multipolygon](if:count_by_role("outer") == count_members(ways));
out geom;

Die Zahl der outers entspricht der Zahl aller ways.

Für ganze genaue gerne auch:


rel[type=multipolygon](if:count_by_role("outer") == count_members(ways) && count_by_role("outer") > 0 && count_members() == count_members(ways));

Im Gegensatz zum zuvor genannten Beispiel (in dem auch noch ein “if:” zu viel drin ist → Syntaxfehler), fliegen dann so Sachen wie hier auch raus, bei denen die Rolle fehlt: https://www.openstreetmap.org/relation/7876764

Hmm. Die Query läuft nicht auf overpass-api.de (liefert ein leeres Ergebnis). Alle anderen Instanzen klappen aber. Da ist wohl irgendwo eine Regression in 0.7.58 drin. → Issue https://github.com/drolbr/Overpass-API/issues/667 aufgemacht.

Edit: issue ist inzwischen mit Version 0.7.58.2 gefixt, die Query funktioniert nun wieder.

… wobei - nur zur Vervollständigung - in allen Beispielen “[type=multipolygon]” für eine (gewollte oder ungewollte) Exklusion von anderen “geometrischen Multipolygonen” wie type=boundary sorgt - wo Grenzrelationen ohne inner nichts ungewöhnliches sind.

Danke an euch :smiley:

Vielleicht ist es nebenbei interessant, dass für solche Fälle auch Maproulette challenges angelegt wurden. Z.B.: https://www.maproulette.org/browse/challenges/23708