OpenStreetMap logo OpenStreetMap

Diary Entries in Polish

Recent diary entries

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]$

See full entry

Location: Górki Miłońskie, Miłonice, gmina Krośniewice, powiat kutnowski, województwo łódzkie, 99-340, Polska