Mapowanie przystanków transportu publicznego

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…

Tylko przystanków autobusowych.

Nie musi. highway=platform można rysować niezależnie i wcale nie musi być obok czynnego przystanku autousowego.

Nie. Jak jest łączony przystanek, gdzie zatrzymuje się wiele środków transportu to dajemy:
public_transport=platform
bus=yes
tram=yes
A jak będzie jeszcze trolejbus, to doda się trolleybus=yes.

Tutaj peron narysowany jako linia, przystanek jeszcze wtedy nie działał
https://www.openstreetmap.org/way/550308937
Tutaj jako obszar:
https://www.openstreetmap.org/way/479868711
Na tym przystanku są dwa słupki i dwa railway=tram_stop, bo tutaj tramwaj zatrzymuje się dwa razy.

Jeśli chcesz otagować przystanki w swoim mieście, możesz wzorować się na Wrocławiu - tu tagowanie przystanków jest jednolite.

Ogólnie:

  • railway=tram_stop dajemy tylko jako punkt na torze tramwajowym.
  • public_transport=platform + środek_transportu=yes to ogólny schemat tagowania wszystkich środków transportu. Poprzednio były tylko railway=tram_stop i highway=bus_stop, ale istniała potrzeba rozszerzenia na inne środki transportu.

Może łatwiej będzie jak zadasz konkretne pytanie, bo sam przyznaję że: tagowanie przystanków jest zagmatwane, dokumentacja nie pomaga, brakuje definicji “przystanku” i wyjaśnienia różnicy między przystankiem a peronem. Do tego dochodzą historyczne zmiany w tagowaniu, które nachodzą na siebie.

Zgoda, napisałem to zaraz pod „zacznijmy od autobusów” więc uznałem że tyle wystarczy.

Tutaj też się zgadzam, nie napisałem „wtedy i tylko wtedy” :wink:

Też uważam że nie. Ale do tego doprowadziła mnie literalna interpretacja Wiki…

Znalazłem taką sytuację tutaj: https://www.openstreetmap.org/#map=19/51.09962/17.03532

Jak dla mnie wszystko wygląda tam w porządku ale po kolei.

Wzorując się na tym przykładzie mamy tak:

  • Miejsca zatrzymania na drodze/torach otagowane jako public_transport=stop_position + bus/tram=yes - spoko
  • Przystanki tramwajowe otagowane poprzez dodanie do miejsca zatrzymania railway=tram_stop - OK
  • Przystanki autobusowe otagowane jako węzeł obok drogi z highway=bus_stop - spoko
  • Fizyczny peron A+T otagowany jako railway=platform - OK ale zgaduję że dodanie tutaj także highway=platform nie zaszkodziłoby
  • public_transport=platform + bus=yes zostało dodane na tym samym węźle co highway=bus_stop - spoko
  • public_transport=platform + tram=yes zostało dodane także na tym węźle - jak dla mnie logiczne. Szkoda że wiki nie sugeruje takiego tagowania ani pod https://wiki.openstreetmap.org/wiki/Public_transport#Trams ani nawet pod https://wiki.openstreetmap.org/wiki/Tag:public_transport%3Dplatform , co więcej oba te artykuły sugerują że public_transport=platform jest po prostu alternatywnym tagowaniem obiektu railway=platform…
  • Dodatkowo na fizycznym peronie railway=platform mamy też dodane public_transport=platform - rozumiem że tutaj chyba już mamy nadgorliwość aby wypełnić wymagania z wiki, bo ten public_transport=platform mamy już na węźle i przez to robi się dubel?

Podobny przypadek ale tym razem bez fizycznych peronów znalazłem tutaj: https://www.openstreetmap.org/#map=19/51.09186/17.03997
Pomijając słuszny brak obiektów railway/highway=platform wszystko opisałem już powyżej i wygląda w porządku więc nie daję dalszego komentarza.

Tutaj chyba jest pies pogrzebany.

Te dwa przykłady tworzą bardzo spójny, logiczny i jednoznaczny system, wygląda na to więc że odpowiedź na moje pytanie to:

  • Ponieważ pociągi mają tylko jeden railway=station/halt na całą stację/przystanek, to z racji braku innego lepszego obiektu sugerowane jest (dla pociągów) dodawanie public_transport=platform na ten sam obiekt co railway=platform (rozumiem że równie dobrze można by dać oddzielny węzeł obok torów i na nim dać public_transport=platform + train=yes, ale wygląda na to że żaden miłośnik mapowania kolei nie widział takiej potrzeby).
  • Wiki twierdzi w wielu miejscach że (w ogólności) tramwaje powinno tagować się analogicznie do pociągów (w końcu oba to transport szynowy).
  • Dlatego poprzez analogię do pociągów w wielu miejscach sugerowane jest tagowanie railway=platform jako public_transport=platform także dla tramwajów.
  • Poprzez analogię do tramwajów w niektórych miejscach sugerowane jest nawet tagowanie highway=platform jako public_transport=platform także dla autobusów (mimo że większość artykułów nakazuje nanieść public_transport=stop_position na highway=bus_stop) :frowning:

Wobec tego wydaje mi się że powinno się:

  • Tagować przystanki zgodnie z tym co mamy we Wrocławiu (nie wiem jak mają się do tego moje powyższe uwagi tzn. czy są słuszne czy nie).
  • Poprawić opisy na Wiki tak aby to co sugeruje się jako poprawne tagowanie zgadzało się ze wzorem który mamy we Wrocławiu, a przynajmniej poprawić je na tyle żeby to co mamy we Wrocławiu nie stało w sprzeczności z żadnym artykułem na Wiki, ani żeby nie były one sprzeczne same ze sobą.

Mam nadzieję że teraz trochę lepiej wyjaśniłem i dobrze wszystko zrozumiałem. Trochę jednak przeraża mnie to, że takie szczątkowe i miejscami wewnętrznie sprzeczne opisy leżą na Wiki taki kawał czasu i nikt do tej pory nic z tym nie zrobił… Zwłaszcza że niektórzy mapujący lubią traktować artykuły na Wiki jako absolutną wyrocznię :frowning:

No właśnie, co to jest peron w przypadku przystanków autobusowych? Wystarczy kawałek krawężnika, który oddziela chodnik od jezdni, czy potrzeba czegoś w rodzaju peronu na dworcu autobusowym? A w przypadku tramwajów? Tu częściej widać pewien wydzielony obszar, który nie jest przelotowym chodnikiem, ale też nie zawsze.

Dobra uwaga, łamie to zasadę one feature - one OSM element.

Możliwe, że tak.

Poprawiłbym, ale sam wszystkiego nie wiem. Np. czym jest public_transport=platform i czym się różni od highway=platform i railway=platform…
Do tego te wszystkie informacje są rozproszone w kilku artykułach co dodatkowo utrudnia.

Wydaje mi się, że użycie

public_transport=stop_position

Powinno zależeć od tego na ile ten element jest wydzielony z drogi. Np. kiedy autobus ma zatoczkę to stop_position powinno być przy bus_stop, natomiast kiedy zatrzymuje się na jezdni i potencjalnie blokuje ruch to powinien należeć do samej drogi. Dzięki temu nawigacje mogłyby to jakoś uwzględnić.

Przystanki to jeden z przykładów kiedy redundancja i szczególarstwo w OSM osiąga szczyty. Zdarzają się przystanki super dokładnie rozrysowane z wiatą (jako area!), ławeczką, koszem na śmieci a wystarczyłyby tagi w 1 (jednym!) POI. Ale robią to ochotnicy, sami dysponują czasem i każdemu jego p…

Do tego mamy w zasadzie już bus_bay=* jak dobrze rozumiem?

Tego tagu nie znałem do tej pory. Dzięki :slight_smile:

Podbijam :slight_smile:

Zawsze tak robię. Obecnie jedynym celem mapowania przystanków, za wyjątkiem być może największych aglomeracji, jest użycie ich w nawigacji rowerowej jako schronienia przed deszczem, miejsca odpoczynkowego i punktu gdzie można wyrzucić śmieci. Busy po pandemii przestały jeździć, więc POI w sensie ruchu drogowego nie ma sensu. Rysowanie wiaty jako area ma sens, bo pokazuje jaki ma rozmiar, a z tym jest bardzo różnie. Bywają takie szerokie na ledwo pół metra, a zdarzają się kilkunastometrowe, np: tam gdzie kiedyś dowożono do pracy setki ludzi autobusami.

Jeśli chodzi o peron, to ja bym powiedział, że jest to wydzielona część obszaru, która jest przeznaczona tylko na oczekiwanie pasażerów. Czyli np. peron na przystanku tramwajowym pomiędzy dwoma jezdniami na drodze dwujezdniowej dwukierunkowej. Jednak przystanek autobusowy, który znajduje się na chodniku, takiego peronu już nie ma.

@maro21 dziękuję. Widzę, ze przynajmniej my dwaj się zgadzamy w tym miejscu, że zaznaczanie peronów na chodnikach to już nadgorliwość.

Patrzę teraz na ten Wrocław i tak:

  • niemal żaden przystanek autobusowy nie ma highway=platform - jak dla mnie ok, ale nie daje odpowiedzi, co robić gdzie indziej, kiedy już taki obiekt istnieje
  • część przystanków tramwajowych ma obszarowo wyrysowane perony z tagiem highway=platform oraz czasem railway=platform - powiedziałbym, że ten drugi jest właściwszy, a oba na raz to błąd
  • powyższe przystanki tramwajowe mają public_transport=platform po dwa razy (!): na obszarze peronu oraz na punkcie odpowiadającym słupkowi przystankowemu - to także błąd, łamie zasadę one object, one feature

Osobiście sprawę peronów rozumiem tak, że highway=platform i railway=platform opisują fizyczną infrastrukturę, która nie musi być w ogóle używana przez pojazdy transportu publicznego. Natomiast public_transport=platform to uogólnienie highway=bus_stop i analogicznych tagów dla innych środków transportu, opisujących miejsca, gdzie pasażerowie wsiadają lub wysiadają.

Ponieważ public_transport ma tag stop_position, opisujący punkt zatrzymania pojazdu bezpośrednio na drodze lub torze, public_transport=platform powinien znajdować się obok, w miejscu oczekiwania pasażerów. Jeśli używany jest highway=bus_stop chyba zawsze będzie na tym samym obiekcie, natomiast dla tramwajów public_transport=platform nie będzie na tym samym punkcie, co railway=tram_stop (ten ma być na torach), za to może być na tym samym obiekcie co railway=platform.

W sumie wydaje się, że nie powinno być więcej niż dwa obiekty per przystanek: jeden na drodze/torach (stop_position, tram_stop) i jeden obok (public_transport=platform, bus_stop, ewentualnie highway=platform, railway=platform). Zdarza się jednak obecnie, że są więcej niż dwa obiekty, np. poza stop_position mamy peron zaznaczony obszarowo i punkt dla słupka przystankowego (i właśnie w tagowaniu tych dwóch ostatnich obiektów, kiedy występują, jest najwięcej niekonsekwencji i kontrowersji).

Ogólnie się zgadzam: ale trafiają się rzadkie przypadki gdy są rzeczywiście dwa perony na jednym przystanku.

Oczywiście nie zmienia to że stop_position i na słupek i na obszar to bubel

A przystanek tramwajowo-autobusowy?

iD zawsze molestuje o dodanie tagu “public_transport=platform” do peronów.

Zgoda, wtedy nie.

O, to może i mamy winowajcę :wink: Tylko w takim razie co lepsze: highway=bus_stop też dać na obszar peronu, czy zostawić osobno jako punkt, ale bez dublowania public_transport=platform?