Analiza spójności oznaczeń sieci (tag network) dla dróg w Polsce
Posted by Kamil Kalata on 13 March 2026 in Polish (Polski).Ostatnio zauważyłem, że styl OSM Americana nie wyświetla w szczególny sposób numerów dróg wojewódzkich, w przeciwieństwie do dróg krajowych, w tym dróg ekspresowych i autostrad, co zgadza się z definicją, a raczej jej brakiem. Na podstawie opisu jednego z pull requestów w repozytorium tego stylu wywnioskowałem, że generator opiera się na tagu network w celu wywnioskowania kategorii.
Postanowiłem więc sprawdzić, jaka wartość tagu network jest wykorzystywana do oznaczania dróg wojewódzkich. Szybka kwerenda, wykonana przy użyciu głównej strony OSM, Overpass API i Taginfo doprowadziła mnie do wniosku, że drogi te oznacza się tagiem network=pl:regional.
Postanowiłem również sprawdzić, jak oznacza się drogi powiatowe i gminne. Jako że w artykule wiki o tagu network tego nie określono, postanowiłem dokonać samodzielnej analizy. W tym celu napisałem skrypt Pythona, który odpytuje server Overpass i wykorzystuje bibliotekę pandas w celu wygodnego przetwarzania tych danych.
Parametry wejściowe
Zapytanie do serwera Overpass miało następującą postać:
[out:csv(::id,name,ref,unsigned_ref,network)];
area(3600049715)->.pl;
rel(area.pl)[type=route][route=road][network~"pl:.*",i];
out geom;
Najistotniejszymi tagami branymi pod uwagę w tej analizie są network, ref i unsigned_ref (ostatni z nich wzięty pod uwagę ze względu na sposób użycia w relacjach analogiczny do tego na liniach). Numer relacji i tag name są wykorzystywane w celu ręcznej weryfikacji zarówno wyników analizy, jak i samych relacji, a ponadto numer relacji służy jako indeks dla tabel biblioteki pandas.
Wyrażenia regularne dla numerów poszczególnych dróg wyglądały następująco:
- autostrady:
^A[0-9]{1,2}$ - drogi ekspresowe:
^S[0-9]{1,2}$ - pozostałe drogi krajowe:
^[0-9]{1,2}$ - drogi wojewódzkie:
^[0-9]{3}$ - drogi powiatowe:
^[0-9]{4}[ ]?[BCDEFGKLNOPRSTWZ]$ - drogi gminne:
^[0-9]{6}[ ]?[BCDEFGKLNOPRSTWZ]$
Uwzględnienie potencjalnej spacji między częścią cyfrową a wyróżnikiem województwa numerów dróg powiatowych i gminnych wynika z tego, że część z tych numerów jest zapisana razem z tą spacją. Kwestia ta wymaga poprawy, jednak problem ten nie jest powiązany z przedmiotem tej analizy.
Wyniki analizy
Wstępne wyniki analizy prezentują się następująco:
| autostrada | ekspresowa | krajowa | wojewódzka | powiatowa | gminna | |
|---|---|---|---|---|---|---|
| pl:district | 0 | 0 | 0 | 0 | 57 | 0 |
| PL:expressway | 0 | 21 | 0 | 0 | 0 | 0 |
| pl:local | 0 | 0 | 1 | 0 | 942 | 34 |
| PL:motorway | 6 | 0 | 0 | 0 | 0 | 0 |
| pl:municipal | 0 | 0 | 0 | 0 | 0 | 923 |
| pl:national | 0 | 0 | 97 | 0 | 0 | 0 |
| pl:regional | 0 | 0 | 0 | 808 | 261 | 0 |
| PL:regional | 0 | 0 | 0 | 1 | 0 | 0 |
Ponadto, skrypt zwrócił następujące drogi, których wartości tagów ref i unsigned_ref nie pasują do żadnych z wymienionych wcześniej wyrażeń regularnych:
| @id | name | ref | unsigned_ref | network |
|---|---|---|---|---|
| 11025887 | 360809W | nan | nan | pl:municipal |
| 11025888 | 360817W | nan | nan | pl:municipal |
| 11025889 | 360829W | nan | nan | pl:municipal |
| 16238728 | Docelowy układ obwodnicy miasta Kartuzy | nan | nan | pl:regional |
| 17590139 | Droga gminna nr 107425L | nan | nan | pl:local |
| 3548166 | Droga krajowa nr 11 | nan | nan | pl:national |
| 13195645 | Droga powiatowa 1360W | 1360 | nan | pl:local |
| 365245 | Droga wojewódzka 527 | nan | nan | pl:regional |
| 13063807 | Droga wojewódzka nr 238 | nan | nan | pl:regional |
| 5248552 | Małoposki Szlak Solny | nan | nan | pl:regional |
| 9978554 | Obwodnica Miasta Kartuzy etap 2 | nan | nan | pl:regional |
| 16934605 | Ring Miejski | nan | nan | pl:local |
| 5245186 | Szlak Solny | nan | nan | pl:regional |
| 2703613 | Zwardoń | Koniaków | nan | pl:regional |
| 9231404 | ulica Brzegi Andrychów | nan | nan | pl:local |
| 6269007 | ulica Metalowców Andrychów | nan | nan | pl:local |
| 6796113 | Świętego Jana Pawła II | nan | nan | pl:local |
| 7903600 | nan | 15787 | nan | pl:local |
| 7903602 | nan | 15786 | nan | pl:local |
| 20157721 | nan | nan | nan | pl:local |
Dzięki ręcznej weryfikacji powyższych dróg liczby podane w 1. tabeli zwiększają się na potrzeby analizy:
- dla zwykłych dróg krajowych z tagiem
network=pl:national— o 1; - dla dróg wojewódzkich z tagiem
network=pl:regional— o 2 - dla dróg gminnych z tagiem
network=pl:local— o 1; - dla dróg gminnych z tagiem
network=pl:municipal— o 3.
Należy podkreślić, że nan oznacza brak wartości, a nie wartość o takim brzmieniu.
Wyniki ostateczne analizy prezentują się następująco:
| autostrada | ekspresowa | krajowa | wojewódzka | powiatowa | gminna | |
|---|---|---|---|---|---|---|
| pl:district | 0 | 0 | 0 | 0 | 57 | 0 |
| PL:expressway | 0 | 21 | 0 | 0 | 0 | 0 |
| pl:local | 0 | 0 | 1 | 0 | 942 | 35 |
| PL:motorway | 6 | 0 | 0 | 0 | 0 | 0 |
| pl:municipal | 0 | 0 | 0 | 0 | 0 | 926 |
| pl:national | 0 | 0 | 98 | 0 | 0 | 0 |
| pl:regional | 0 | 0 | 0 | 810 | 261 | 0 |
| PL:regional | 0 | 0 | 0 | 1 | 0 | 0 |
Wnioski
Oznaczenie sieci dla dróg krajowych (w tym dróg ekspresowych i autostrad) i dróg wojewódzkich jest spójne. Wyjątkami są obwodnica Nowego Miasta Lubawskiego, która jest oznaczona tagami network=pl:local, gdyż obwodnica jako taka odciąża to miasto, i ref=15, jako że stanowi ona część drogi krajowej nr 15, oraz droga wojewódzka nr 864, która jest oznaczona tagiem network=PL:regional, zgodnie z zasadą ze wspomnianego wcześniej artykułu wiki, która stanowi, że kody krajów powinno zapisywać się wielkimi literami.
Niespójności występują w oznaczaniu dróg powiatowych i gminnych. Ponadto, stosowane są kolidujące schematy oznaczeń: tag network=pl:regional jest używany zarówno przez drogi wojewódzkie, jak i powiatowe, a tag network=pl:local — zarówno przez drogi powiatowe, jak i gminne.
Drogi powiatowe wykorzystują w zdecydowanej (74,8%) większości tag network=pl:local. Tag network=pl:regional jest stosowany przede wszystkim dla dróg w okolicy Rzeszowa, jak również w śląskiem i opolskiem. Z tagu network=pl:district korzystają drogi na obszarze między Gdynią a Lęborkiem.
Drogi gminne wykorzystują w przytłaczającej (96,4%) większości tag network=pl:municipal; są to drogi w części siedleckiej województwa mazowieckiego. Z tagu network=pl:local korzystają drogi w okolicach Wrocławia i Piotrkowa Trybunalskiego.
Analiza nie objęła dróg nieoznaczonych jakimkolwiek tagiem network=*, jako że problem spójności oznaczania sieci nie występuje dla nich obecnie, a ich oznaczenia można podjąć się później, jak również tych oznaczonych tagiem innym niż network=pl:*, jako że w ich przypadku problem jest głębszy niż tutaj analizowany.
Dalsze działania
Problem oznaczania sieci dla polskich dróg zostanie podniesiony na polskiej sekcji OSM Community w celu ustalenia nowych standardów, szczególnie dla dróg powiatowych i gminnych, oraz korekty obecnych oznaczeń w zgodzie z istniejącymi standardami.
Analiza zwróciła również uwagę na błędnie oznaczone relacje, m. in. drogę krajową nr 11 (brak tagu ref), Małoposki Szlak Solny (niepoprawna wartość tagu route) czy miejscowość Zwardoń (błędne wykorzystanie jako relacja szlaku turystycznego). Te, jak i inne relacje wskazane w 2. tabeli zostaną wskazane jako wymagające weryfikacji i naprawy.
Discussion