Kategoria dróg ekspresowych

Nie wiem ile osob korzysta z tej funkcji w Polsce - ale jak ponizej chyba @szydzio zauwazył mapa wujka googla ma tę opcję i masmy tam efekt tego co się stanie w nawigacjach używajacych danych z osm - zaczną pomijać ekspresówki.
Jest to opcja dla użytkownika jak i opcja pomijaj drogi płatne. I tylko wspomne ze jest to nawigacja miedzynarodowa.

Korzystam z punktów posrednich ale korzystam też z planowania trasy przy pomocy openstreetmap.org gdzie mam graficzie ukazane dane o drogach A i S co ułatwia mi bardzo prace. Tak sa numery drog ale w wiekszym zoomie nie sa widoczne.

Jak widać problemem jest bardziej rozległy, nie dość, że w naszym kraju z jakiegoś prowodu drogi szybkiego ruchu są różnie tagowane to jeszcze nawigacje mają błędy przykład z Magic Earth Navigation & Maps, gdzie opcja z zasady pozwalająca omijać drogi szybkiego ruchu została w aplikacji nazywana dla uproszczenia (też bym tak nazwał tę opcję w aplikacji mobilnej, w naszym kraju ekspresówki też są nazywane autostradami, to skrót myślowy…), “omijaj autostrady” sugeruje omijanie dróg szybkiego ruchu, a omija “tylko autostrady” - to błąd. Ktoś dosłownie potraktował wyraz autostrady, nie będąc świadomym, że opcja dotyczy w mojej opinii po prostu dróg szybkiego ruchu.

Więc tak czy siak, trzeba złożyć bilecik dla nawigacji Magic Earth Navigation & Maps i podobnych mających ten sam bug, żeby opcja “omijaj autostrady” uwzględniała drogi szybkiego ruchu typu A i S. Przynajmniej w Polsce.

Przy okazji dzięki za znalezienie potencjalnego błędu w aplikacji.

Powiedz policjantowi ze autostrada i droga ekspresowa to to samo bo to skrót myślowy.
Nie zgodze siè z tym bo drogi kategorii S są dość czesto obwodnicami miast. Tyko tyle i aż tyle.
Dodam że wiele nawigacji posiada opcję omijaj autostrady i to robi pozwalajac jechać/prowadzić drogami ekspresowymi w Polsce czzyli nie jest to skrot myślowy.
Tu jest Navitel, Waze tez ma tę opcję.

1 Like

Autostrady tez są obwodnicami miast.

2 Likes

są - ale mi chodzi o funkcjonalność wielu nawigacji omijanie autostrad ale nie dróg ekspresowych. Nie jest to tylko i wyłącznie funkcja Magic Earth Navigation ale wielu innych (nie wiem jak jest w TOMTOM czy IGO i innych ale jak widzisz jest to opcja dla użytkownika - skoro jest i tak działa to albo wszyscy inni maja to popsute albo jednak jest takowa potrzeba dla części użytkowników nawigacji które korzystają z baz danych dróg - i nie wnikam dlaczego ktoś nie chce jeździć autostradami ale nie przeszkadza mu jazda ekspresówką.

Mocno wątpię, by te nawigacje bazowały na tagu trunk, który szczególnie globalnie nie oznacza z automatu drogi ekspresowej, więc bazowanie na tagu trunk jest mylne i może wprowadzać w błąd.
Moim zdaniem nawigacje bazują albo na tagu highway:class:pl (nie wiem, kiedy ten tag został używany, ale może ktoś dodał go, by uporządkować tę kwestię), albo weryfikują sieć dróg ekspresowych na podstawie np. rozporządzenia zawierającego wykaz sieci dróg szybkiego ruchu z podziałem na autostrady i drogi ekspresowe, co jest najbardziej prawdopodobne.
Część dróg krajowych niebędących drogami szybkiego ruchu jest objęta opłatami dla pojazdów ciężarowych. Na mapie nie brakuje dróg niższej rangi niż krajowe z kategorią primary, a niektóre drogi krajowe mają secondary czy ostatnio ze względu na zamknięcie przejść granicznych z Białorusią nawet tertiary, więc tym bardziej nie wydaje mi się, żeby nawigacje opierały się na kategoriach dróg w OSM.
Dobrze, że o tym rozmawiamy, bo te kwestie warto jasno zebra w jedno i uporządkować, a przy okazji to ujednolicić i opisać, żeby korzystający z danych OSM mieli do wglądu jasno określone znaczenie tych danych.

No to zobaczmy, jak to robią routery:

pgRouting

<tag_name name="highway" id="1">
    <tag_value name="motorway"          id="101" priority="1.0" maxspeed="130" />
    <tag_value name="motorway_link"     id="102" priority="1.0" maxspeed="130" />
    <tag_value name="motorway_junction" id="103" priority="1.0" maxspeed="130" />
    <tag_value name="trunk"             id="104" priority="1.05" maxspeed="110" />
    <tag_value name="trunk_link"        id="105" priority="1.05" maxspeed="110" />    
    <tag_value name="primary"           id="106" priority="1.15" maxspeed="90" />
    <tag_value name="primary_link"      id="107" priority="1.15" maxspeed="90" />    
    <tag_value name="secondary"         id="108" priority="1.5" maxspeed="90" />
    <tag_value name="secondary_link"    id="109" priority="1.5" maxspeed="90"/>  
    <tag_value name="tertiary"          id="110" priority="1.75" maxspeed="90" />
    <tag_value name="tertiary_link"     id="111" priority="1.75" maxspeed="90" />  
    <tag_value name="residential"       id="112" priority="2.5" maxspeed="50" />
    <tag_value name="living_street"     id="113" priority="3" maxspeed="20" />
    <tag_value name="service"           id="114" priority="2.5" maxspeed="50" />
        
    <tag_value name="unclassified"      id="117" priority="3" maxspeed="90"/>
    <tag_value name="road"              id="100" priority="5" maxspeed="50" />
  </tag_name> 

Motorway, później trunk, później primary.

BRouter - głównie z profilami dla rowerów, ale również i dla aut, może być używany offline na androidach:

  if      ( highway=motorway                  ) then  30
  else if ( highway=motorway_link             ) then  29
  else if ( highway=trunk                     ) then  28
  else if ( highway=trunk_link                ) then  27
  else if ( highway=primary                   ) then  26
  else if ( highway=primary_link              ) then  25
  else if ( highway=secondary                 ) then  24
  else if ( highway=secondary_link            ) then  23
  else if ( highway=tertiary                  ) then  22
  else if ( highway=tertiary_link             ) then  21
  else if ( highway=unclassified              ) then  20
  else if ( isresidentialorliving             ) then  6
  else if ( highway=service                   ) then  6
  else if ( highway=track                     ) then if tracktype=grade1 then 4 else 2
  else if ( highway=bridleway|road            ) then  2
  else 0

OSRM

    restricted_highway_whitelist = Set {
      'motorway',
      'motorway_link',
      'trunk',
      'trunk_link',
      'primary',
      'primary_link',
      'secondary',
      'secondary_link',
      'tertiary',
      'tertiary_link',
      'residential',
      'living_street',
      'unclassified',
      'service'
    },

Zaś prędkości/kary nadawane są za klasę drogi oraz lokalne (krajowe) ograniczenia, gdzieś od tej lini: osrm-backend/profiles/car.lua at 31e31a63d062fb804f5f4695ed3036ca7a269ead · Project-OSRM/osrm-backend · GitHub

Żaden ze znanych mi routerów nie wykorzystuje lokalnych wynalazków, a za taki uważam highway:class:pl. Podsumowując: mapowanie pod render (a to chyba jest główny temat tej dyskusji) uważam za zły pomysł.

Pozdrawiam,
Grzesiek

2 Likes

Highway:class:pl i highway:category:pl nie są nigdzie używane. Zostały wymyślone dlatego że w Polsce kategoria dróg na osm nie jest tożsama z żadną oficjalną klasyfikacją. Więc jeśli ktoś chciałby stworzyć mapę, nawigację, cokolwiek bazujące na oficjalnej klasie lub kategorii to może tego użyć.

A jeśli już mówimy o technicznych ciekawostkach to nieco zabawnie wygląda sprawa omijania autostrad dla OsmAnda OsmAnd-resources/routing/routing.xml at master · osmandapp/OsmAnd-resources · GitHub

Dla nawigacji samochodowej
if param=“avoid_motorway”
select value=“100” t=“highway” v=“motorway”/
select value=“90” t=“highway” v=“motorway_link”/

Dla nawigacji rowerowej:
if param=“allow_motorway”
select value=“-1” t=“access” v=“no”/
select value=“-1” t=“access” v=“private”
select value=“-1” t=“motorroad” v=“yes
select value=”-1" t=“bicycle” v=“no”/
select value=“-1” t=“vehicle” v=“no”/
select value=“1” t=“highway” v=“motorway”/
select value=“1” t=“highway” v=“motorway_link”
select value=“1” t=“highway” v=“trunk”/
select value=“1” t=“highway” v=“trunk_link”/>

Dla nawigacji pieszej:
if param=“avoid_motorway”
select value=“-1” t=“highway” v=“motorway”/
select value=“-1” t=“highway” v=“motorway_link”/
select value=“-1” t=“highway” v=“trunk”/
select value=“-1” t=“highway” v=“trunk_link”

Więc w zależności od profilu trunk jest autostradą, lub nie jest.

2 Likes

To raczej tutaj powinniśmy popatrzeć jak robią to routery - większość dróg których podniesienie kategorii mogłoby dotyczyć nie ma konkurencyjnej alternatywy w postaci autostrady - są skończonymi drogami, nie planuje się ich rozbudowy, i są dwupasmowymi, ogrodzonymi drogami z poboczem itd.

W TomTom tak jak w Google Maps - do omijania autostrad i dróg ekspresowych jest jeden, ten sam przełącznik

2 Likes

Wybaczcie mi ze będę się upierał przy opcji omijaj autostrady ale kiedy ekspresowki otagujemy jako motorway i ja czy ktos inny zechce skorzystac z opcji omijaj autostrady (bo dla niego i dla mnie autostrada to autostrada, a ekspresowka to ekspresówka - w sumie taki mamy podzial drog szybkiego ruchu urzedowy) to zobaczyc można na przykładzie aplikacji wujka googla ja utrudni takim osobom jazde po Polsce.




Zaś prędkości/kary nadawane są za klasę drogi oraz lokalne (krajowe) ograniczenia, gdzieś od tej lini: osrm-backend/profiles/car.lua at 31e31a63d062fb804f5f4695ed3036ca7a269ead · Project-OSRM/osrm-backend · GitHub

To dotyczy tagów source:maxspeed, a nie highway. W maxspeed_table jest mowa o np. PL:urban czy PL:rural, a drogi w obszarze zabudowanym czy poza obszarem zabudowanym mają różne kategorie. Jest kwestia dodania tagów source:maxspeed i ich wartości. Tak więc te routery nie bazują na kategorii w OSM, a na tagu source:maxspeed.

Dodatkowo te tagi też niepoprawnie odzwierciedlają domyślne ograniczenia:

  1. Ograniczenie 100 km/h poza obszarem zabudowanym dotyczy tylko dróg dwujezdniowych z min. 2 pasami w każdą stronę. Dla jednojezdniowych dróg jest to 90 km/h.
  2. Ograniczenie 120 km/h dotyczy tylko dróg ekspresowych dwujezdniowych. Dla dróg ekspresowych jednojezdniowych wynosi ono 100 km/h.

Pozdrawiam wzajemnie.

Wątpięm by ktokolwiek inny bez powodu unikał autostrad (a lubiał dwujezdniowe ekspresówki), bez jakiejkolwiek jasnej przyczyny.

Jak nie potrafisz podać czemu unikasz autostrad a jesteś OK z ekspresówkami mimo robienia na ten temat całych serii postów… To przynajmniej nie wrzucaj czterech wysokich zrzutów ekranu z Google maps. A najlepiej przestań komentować w tym wątku do czasu gdy wyjaśnisz skąd ta potrzeba się bierze.

Równie dobrze mógłby ktoś pisać że on nie chce jeździć parzystymi ekspresówkami i Skami więc powinny one mieć highway=motorway a te z kodem nieparzystym highway=trunk

4 Likes

Nie bardzo rozumiem dlaczego porównujesz te dwie trasy? Przecież na tej pierwszej Google prowadzi przez autostradę, a nie tylko przez ekspresówki? Dla porównania GraphHopper na podobnej (trochę krótszej) trasie:

Bez restrykcji: 5h 37min

Omijając drogi płatne: 6h 29min

Omijając highway=motorway: 8h 5min

Omijając dodatkowo highway=trunk: 9h 13min

Wygląda na to, że na czas przejazdu bardziej wpływa unikanie autostrad niż unikanie ekspresówek, nie mówiąc już o tym, że nie wszystkie highway=trunk miałyby być zamienione na motorway.

3 Likes