Edytowaniem OSM zajmuję się od ponad 11 lat. Przez ten czas schemat mapowania transportu publicznego (zwłaszcza dawniej) wiele razy się zmieniał. Z tego względu chciałem zasięgnąć do źródeł i usystematyzować swoją wiedzę, żebym np. nie został z jakimiś starymi przyzwyczajeniami które są już dawno nieaktulne ale zdążyły mi wejść w nawyk. Zacząłem od przeczesania Wiki i zdurniałem, no bo tak, zacznijmy od autobusów:
- Co do tego że highway=bus_stop jest głównym i wymaganym tagiem do oznaczania przystanku raczej nikt nie ma wątpliwości.
- Na drodze możemy opcjonalnie oznaczyć węzeł w miejscu zatrzymania jako public_transport=stop_position.
- highway=bus_stop powinien umieszczony obok drogi, mniej więcej w miejscu gdzie mamy słupek przystankowy.
Dalej zgodnie z informacjami na https://wiki.openstreetmap.org/wiki/Public_transport#Buses mamy:
- Jeśli nie mamy fizycznie wybudowanego peronu autobusowego, węzeł z highway=bus_stop powinien dostać w komplecie public_transport=platform.
- Jeśli mamy fizycznie wybudowany peron autobusowy, to oprócz highway=bus_stop powinien pojawić się obiekt na peron otagowany highway=platform. Nie ma tutaj dodatkowych informacji gdzie ma pojawić się w takiej sytuacji public_transport=platform, zakładam więc że mimo wszystko pozostanie tam gdzie highway=bus_stop.
Zaglądamy dla pewności na https://wiki.openstreetmap.org/wiki/Tag:highway%3Dplatform i szukamy:
- Nie ma tu żadnego info o łączeniu highway=platform z public_transport=platform, natomiast public_transport=platform tak samo jak np. highway=bus_stop jest wymieniony jako tag pokrewny, wygląda na to że mamy częściowe potwierdzenie tej teorii.
Pod https://wiki.openstreetmap.org/wiki/Tag:public_transport%3Dplatform mamy jednak:
- public_transport=platform może mieć opcjonalnie highway=platform, może też być tagowany jako droga/obszar jeśli mamy fizyczny peron ??? - co jest chyba w sprzeczności z punktami powyżej.
No ale skoro jest to tylko opcjonalność, to nie rozpaczamy, możemy potraktować tę informację jakby jej nie było i dzięki temu wypracować spójny i jednoznaczny model.
Jedziemy dalej, teraz dokładamy do tego tramwaje.
Patrzymy na https://wiki.openstreetmap.org/wiki/Public_transport#Trams i jest tam tak:
- Przystanki tramwajowe powinniśmy tagować analogicznie do przystanków/stacji kolejowych, ale oczywiście z tagiem railway=tram_stop zamiast railway=halt lub railway=station.
- Zgodnie z https://wiki.openstreetmap.org/wiki/Tag:railway%3Dhalt#Example oznaczałoby to że mamy tylko jeden taki tag na cały przystanek niezależnie od liczby miejsc zatrzymania/peronów. Mamy więc lekki rozjazd do analogii autobusowej ale nie rodzi to żadnych komplikacji.
- Tutaj wiedza która zgadza się między tymi dwoma podlikowanymi artykułami, tagujemy też węzeł public_transport=stop_position na torze (analogicznie jak dla autobusów, czyli fajnie)…
- … oraz public_transport=platform, ale razem !!! z railway=platform. Na obiekcie oznaczającym peron jeśli jest zbudowany, lub na węźle jeśli sam słupek !!!
Tutaj znowu rozjazd z analogią autobusową, bo w tamtej sytuacji nigdy nie mielibyśmy highway=platform na węźle…
Niektórzy mogą tutaj argumentować że railway=tram_stop powinniśmy mieć nie jeden na przystanek, ale po jednym dla każdego stanowiska. Potem zastanawiać się czy powinien być umiejscowiony na torach czy obok nich, tak jak highway=bus_stop. Ale nie rozwiązuje to żadnego z poruszanych przeze mnie problemów (ani też nie dokłada nowych), więc jeśli ktoś chce to możemy podyskutować o tym w osobnym wątku.
Bonusowe punkty jeśli zgodnie z powyższymi wytycznymi spróbujemy otagować przystanek ze wspólnymi fizycznie wybudowanymi peronami A+T. Dostaniemy peron autobusowy otagowany highway=platform + public_transport=platform + tram=yes ale bez bus=yes, chyba kompletnie to bez sensu…
Możemy jednak założyć że na początku rozumowania przyjąłem błędne założenie i przy wybudowanym peronie autobusowym to highway=platform powinien dostać public_transport=platform. Wtedy zgodnie z zasadą https://wiki.openstreetmap.org/wiki/One_feature,_one_OSM_element powinniśmy usunąć tag public_transport=platform z węzła oznaczonego highway=bus_stop. Wtedy jednak walidatory w JOSM, iD, OSM Inspector i chyba wszystkie inne będą niezadowolone, że mamy highway=bus_stop bez public_transport…
Możemy przenieść highway=bus_stop na węzeł z public_transport=stop_position aby te walidatory uciszyć. Ale nigdzie na Wiki nie mamy wspomniane że highway=bus_stop ma być przyklejony do drogi, wszędzie polecane jest aby był obok niej.
Możemy też rozwiązać ten problem w taki sposób, że public_transport=platform i dla tramwajów i dla autobusów będziemy tagować w jednakowy sposób jako węzły obok drogi niezależnie od ewentualnych obiektów highway=platform i railway=platform. Jest to moim zdaniem najprostsze logiczne rozwiązanie, wprowadzające najmniej odstępstw od artykułów Wiki, ale za to z żadnym z nich chyba nie jest w pełni zgodne…
Jak żyć? Gdzie popełniłem błąd? Czy może po prostu nasz obecny model tagowania jest niespójny? Nie wiem już sam jak robić to dobrze. Nie chcę też robić samowolki aby w dobrej wierze nie psuć przypadkiem mapy. Proszę o pomoc…