Przy okazji budowy tramwaju na Kasprzaka okazało się, że część osób nie usuwa tagów proposed=*
oraz construction=*
na już wybudowanych drogach. Z ciekawości postanowiłem sprawdzić, jak często się to zdarza. @NieWnen na Discordzie pomógł mi skonstruować następującą kwerendę w Overpass turbo:
[out:json][timeout:60];
{{geocodeArea:Poland}}->.searchArea;
nwr["proposed"](area.searchArea)(if: t["highway"] == t["proposed"]);
out geom;
Wyszukuje ona wszystkie sytuacje, gdzie tag proposed=x
nadal wisi, mimo że droga jest wybudowana i ma już docelowy tag highway=x
. Szuka również po wszystkich elementach, a nie po samych liniach, bo okazało się, że załapały się jakieś pojedyncze motorway_junction
, traffic_signals
oraz turning_circle
.
Czy ktoś ma coś przeciwko, żeby usunąć od razu wszystkie błędne tagi proposed=*
w całej Polsce z pomocą tej kwerendy? Jest ona dość konserwatywna (ale o tym niżej) i ma jasny plan przeprowadzenia. Wystarczy wykonać kwerendę po lekkiej modyfikacji pod kątem edycji ([out:xml]
oraz out meta;
), wyeksportować do Level0 ignorując ostrzeżenia o brakujących danych (do edycji tagów drogi nie potrzebujemy pobierać jej węzłów), w Notepad++ usunąć wszystkie linie zawierające proposed =
i puścić na serwer.
Czemu zmiana jest konserwatywna? Bo celowo pomija inne sytuacje z tagiem proposed=*
. Pierwotnie, przed zadaniem pytania na Discordzie, użyłem kwerendy pokazującej wszystkie sytuacje, gdzie istnieje tag proposed=*
mimo faktu, że droga istnieje (highway!=proposed
oraz highway!=construction
).
[out:json][timeout:60];
{{geocodeArea:Poland}}->.searchArea;
nwr["proposed"]["highway"]["highway"!="proposed"]["highway"!="construction"](area.searchArea);
out geom;
Czym się to różni od powyższej komendy? Okazuje się, że są sytuacje m.in. w Warszawie, gdzie jest highway=service
, ale jest proposed=residential
, bo droga istnieje, ale prowadzi do (jeszcze) nieistniejącego osiedla. @NieWnen zasugerował przetagowanie tego na np. proposed:highway=residential
, ale nie zawsze jest to dobre rozwiązanie z automatu, bo takie tagi mogą być tam z zupełnie innego powodu. Mianowicie: pasaż Zbigniewa Zapasiewicza. Na początku był to highway=proposed
+ proposed=footway
, potem oznaczono go jako wybudowanego zapominając o usunięciu tagu proposed
, aż w końcu droga zmieniła rodzaj na highway=pedestrian
. Tutaj przetagowanie na proposed:highway=footway
byłoby błędne, gdyż należałoby w ogóle usunąć tag proposed
. Są to zatem sytuacje, które warto sprawdzić manualnie. Właśnie dlatego celowo ograniczyłem zakres edycji kompletnie automatycznej wyłącznie do sytuacji, gdzie wartość tagu highway=x
oraz proposed=x
się zgadzają, bo na 99,9999% ktoś po prostu zapomniał go usunąć.
Zapomniane tagi construction=x
to bliźniaczy temat, ale już do ogarnięcia osobno. Najpierw zobaczmy, co będzie z proposed=*
, no chyba że ktoś chce na odwrót, czyli najpierw jednak ogarnąć construction=*
.
Jeśli ktoś ma coś przeciwko, niech wypowie się teraz albo zamilknie na wieki.
Jeśli ktoś umiałby napisać bota, który sam pisze komentarz do zestawu zmian, gdzie ktoś zapomniał usunąć tag proposed
przy zmianie wartości tagu highway
, to niech też się wypowie.