Podnoszę temat ze spotkania roboczego.
Dla punktów wybranych przez zapytanie:
[out:xml]
[timeout:1200]
[maxsize:1073741824]
;
area
["boundary"="administrative"]
["admin_level"="2"]
["name"="Polska"]
["type"="boundary"]
->.boundryarea;
(
(node
(area.boundryarea)
["teryt:terc"]
["place"!~"^county$"];
way
(area.boundryarea)
["teryt:terc"];
) - (
relation
(area.boundryarea)
["boundary"="administrative"]
["admin_level"~"^[0-7]$"]
["name:prefix"~"^(gmina miejska)|(miasto stołeczne)|(miasto na prawach powiatu)$"];
node(r:"admin_centre")
["teryt:terc"~"^[0-9]{6}1$"]
)
) ;
out meta;
>;
out meta;
Chcę usunąć tag teryt:terc.
Motywacja:
terc służy do określenie obszaru, więc wynika z relacji województw/powiatów/gmin, a skoro te mamy kompletne, to te tagi na place tylko przeszkadzają, w sytuacji gdy chcę zrobić aktualizację ludności na podstawie danych z GUS. Do oznaczania miejscowości służy teryt:simc, który na bazie słownika TERYT, jednoznacznie wskazuje przynależność do granic administracyjnych (które też się zmieniają).
Działanie skryptu:
dla obszaru polski wybierz wszystkie node’y i way’e z tagiem teryt:terc, następnie z tej listy usuń:
- Z relacji admin_level=[0-7] i name prefix wskazujący na miasto lub powiat grodzki, wybierz node’a w roli admin_centre, które mają teryt:terc o długości 7 cyfr i kończący się 1 (oznaczenie gminy miejskiej) [1]
przypisy:
[1] - to pozwala mi wyłapać błędne tagi teryt:terc, np. w Elblągu, Koszalinie, Porębie i paru innych miejscach, a jednocześnie - pozostawi teryt:terc na gminach miejskich i powiatach grodzkich, gdzie node[place=*] odpowiada obszarowi terc, stąd aktualizacja np. mieszkańców na takim węźle będzie jak najbardziej słuszna.