Kendzi/Relation:route

From OpenStreetMap Wiki
Jump to: navigation, search

Przykład tworzenia relacji z rolami forward/backward

Dzięki działaniu bota OSMonitor zaczęły pojawiać się drogi opisane za pomocą relacji. Drogi dodane w ten sposób mogą zostać rozbite na poszczególne kierunki jazdy. Trasy dla poszczególnych kierunków mogą przebiegać w znacznym oddaleniu od siebie. Droga często rozdziela się na dwa kierunki na łączeniach z innymi drogami lub na odcinkach jednokierunkowych (centra miast). Do opisu takich sytuacji służy rola forward/backward przypisana dla segmentu drogi (way) będącej w relacji.

Niestety wydaje się że w Polsce role te są najczęściej błędnie wprowadzane (poprzez błędnie rozumiem: zupełnie inaczej jak w reszcie świata).

Jak stosuje się role forward/backward w osm?

Zgodnie z opisem wiki [1] rola forward/backward nadawana jest względem kierunku segmentu drogi (way)! Nie ma zupełnie znaczenia czy dany odcinek prowadzi do początku lub końca relacji. Najczęściej drogi rozdzielając się na poszczególne kierunki stają się drogami jednokierunkowymi. Wobec czego praktycznie nie ma potrzeby aby stosować role backward. Role backward mają najczęściej racje bytu jedynie kiedy np. jeden z kierunków ścieżki rowerowej przebiega pod prąd drogi jednokierunkowej (dlatego kierunku tej drogi nie można zmienić). Jednym słowem rola forward ma bardzo zbliżone znaczenie do oneway=yes. Jak rozróżnić wobec tego czy dane segmenty drogi (way) należą do tego samego kierunku jazdy oraz prowadzą ku początkowi relacji lub końcowi? Służy do tego kolejność elementów w relacji.

Przykład

Relacje role.svg

Opis

  • Droga rozpoczyna się w segmencie 1 – jest on wspólny dla obu kierunków czyli nie posiada roli.
  • Droga rozdziela się na dwa niezależne pasy biegnące w przeciwnych kierunkach, najpierw dodajemy kolejno segmenty pasa lewego od punktu rozdzielenia aż do punktu ponownego połączenia 2,3 – segmenty te otrzymują rolę forward
  • Dodajemy drugi pas, tym razem również rozpoczynamy dodawanie segmentów od punktu rozdzielenia aż do punktu ponownego połączenia 4,5,6 – segmenty te otrzymują rolę forward (tu kolejność 6,5,4 była by błędem!)
  • Dodajemy wspólny segment 7 – brak roli


Zalety

  • wygląda na to że jest to standard w OSM
  • proste i zrozumiałe (niemal zawsze jest stosowana rola forward, josm potrafi automatycznie posortować elementy – przynajmniej czasami ;) )
  • pasuje nie tylko dla dróg ale tez ścieżek pieszych/rowerowych, autobusów itp.
  • jest wspierane przez JOSM – jeśli zmienni się kierunek segmentu drogi edytor automatycznie zmieni wartość forward/backward w relacji na przeciwną.


[1] - http://wiki.openstreetmap.org/wiki/Relation:route