[out:csv(
"place:country",
"wikipedia",
"place", "name", "population")][timeout:90];
(
nwr["place"="city"]({{bbox}});
nwr["place"="town"]({{bbox}});
)->.all;
area[admin_level=2]["ISO3166-1"]({{bbox}});
foreach ->.country
{
nwr.all(area.country);
convert info ::=::,"place:country"=country.u(t["ISO3166-1"]);
out;
}
Die beiden nwr
-Selektionen kommen in eine Union, damit auch Ergebnisse aus beiden ankommen. Nach .all
um das Ergebnis in der ersten Zeile im forech
nutzen zu können.
Die Suche nach area
beschafft möglichst genau die Ländergrenzen, und das foreach
iteriert dann darüber. Da es von mehreren Staaten mehrere Landesgrenzen gibt (z.B. Frankreich komplett vs. Hexagon), möglichst mit ISO3166-1
so beschränkt, dass jeweils nur ein Land iteriert wird. Dann per räumlicher Abfrage jeweils auf das Land beschränkt.