Jak rysowac drogi

Z UMP

Spis treści

Podstawy

Każda droga, po której może poruszać się samochód, rower lub człowiek (czy jakikolwiek inny obiekt, korzystający z nawigacji), odwzorowywana jest na mapie za pomocą odcinków. Pojedynczy zestaw odcinków, opisujący zwykle ulicę lub jej część (lub, zależnie od typu, ścieżkę, polną drogę czy nitkę autostrady) nazywa się w ME polyline. Najkrótsza polyline to prosty odcinek zawierający tylko dwa węzły. W przypadku dłuższych ulic/dróg rysujemy bardziej rozbudowane polyline – węzeł po węźle, aż wynikowa droga będzie przypominała kształtem to, po czym w naturze podróżujemy. W dalszej części artykułu zamiast polyline stosowany jest zamiennie termin droga.

Powstałą na mapie drogę opisujemy przede wszystkim typem i nazwą.

Typ drogi opisuje, czym ta droga jest w rzeczywistości. Poszczególne typy oznaczone są liczbowo, stosujemy następujące typy dróg (wynikające z podziału Garmina, stąd ważne są ich oryginalne nazwy):

  • 0x16 walkway/trail (ścieżka/szlak)
  • 0x0d ścieżka rowerowa
  • 0x0a unpaved road (droga gruntowa)
  • 0x07 alleyway/private driveway (alejka, dojazd)
  • 0x06 residential street (droga lokalna)
  • 0x05 collector road (droga zbiorcza)
  • 0x04 arterial road (arteria komunikacyjna)
  • 0x03 other highway road
  • 0x02 principal highway
  • 0x01 major highway
  • 0x0c roundabout (rondo)
  • 0x0b major highway connector (łącznik)
  • 0x08 highway ramp, low-speed (rampa)
  • 0x09 highway ramp, high-speed (rampa)

Przy wyborze trasy nawigacja kieruje się typami dróg na przynajmniej dwa sposoby. Po pierwsze, na podstawie ustawionego typu pojazdu i/lub dodatkowych preferencji część dróg może być dyskwalifikowana. Czyli np. dla samochodu odrzucane są trasy które miałyby prowadzić przez ścieżki, a przy wybraniu opcji unikania dróg gruntowych te także są pomijane (ważna uwaga: jeśli przeznaczenie trasy leży przy np. drodze gruntowej, i tak zostaniemy na nią skierowani, patrz uwagi poniżej). Po drugie, czas podróży obliczany jest na podstawie średnich prędkości przyjętych (a potem także rekalkulowanych, o czym w dalszych rozdziałach) dla danych typów dróg – w oczywisty sposób 100km po autostradzie będzie krótszą wycieczką, niż 90 km po drogach lokalnych. Tak więc przy wyborze najszybszej trasy ważne jest, jakiego typu drogi składają się na możliwe sposoby dotarcia do celu.

Uwaga: proces wyznaczania trasy jest bardziej skomplikowany i nie opiera się jedynie na typach dróg i prędkościach na nich uzyskiwanych. W dalszej części artykułu podawane będą także dodatkowe kryteria, powyższe można jednak uznać za podstawowe.

Niezależnie jednak od typów dróg i kryteriów routingu należy pamiętać o zachowaniu algorytmu routingu w przypadku gdy do punktu docelowego nie da się dotrzeć w pożądany sposób (pożądany np. typem drogi lub pojazdu). Otóż nawigacja w takim przypadku wyznacza drogę z pominięciem ograniczeń.

Przykład 1. Mamy zaznaczone unikanie dróg gruntowych, a do miejscowości, do której chcemy dojechać, nie ma innej drogi – zostaniemy skierowani na drogę gruntową

Przykład 2. Punkt, do którego chcemy dotrzeć, znajduje się w strefie zakazu ruchu lub przy ścieżce – nawigacja poprowadzi nas w strefę z zakazem ruchu lub na ścieżkę tak, aby dotrzeć jak najbliżej pożądanego punktu.

Po przemyśleniu ma to oczywiście sens, ponieważ w większości przypadków alternatywą byłoby wyznaczenie drogi tylko do pewnego momentu, a dalszą część i tak należałoby przebyć piechotą lub innym środkiem lokomocji (czyli sytuacja taka sama, przy czym tak od razu mamy wyznaczoną resztę trasy). Istotne jednak staje się, w którym miejscu (koło jakiego typu drogi) stawiamy punkty POI, świadomi jak może zostać do nich skierowany użytkownik nawigacji.


Opisy poszczególnych typów dróg i wskazówki ich zastosowania – w następnym rozdziale.


Nazwa drogi to najczęściej nazwa ulicy, czasem poprzedzona numerem drogi (gdy ulica jest częścią drogi wojewódzkiej, krajowej etc – poza miejscowościami pozostaje sam numer drogi). Co ważne, kilka polyline może mieć taką samą nazwę, i jest to bardzo częste zjawisko. Musi tak być na przykład dla ulic, które po części są gruntowe, po części asfaltowe, ale stosowane jest także ze względu na kategoryzację (ulica lokalna staje się w pewnym miejscu zbiorczą, a nazwa pozostaje taka sama) oraz adresację (boczne odnogi ulicy noszą jej nazwę, ponieważ znajdują się przy niej posesje opisywane numerami przypisanymi do "głównej" ulicy).

Nazwą niektórych dróg może być także jej przynależność do stacji benzynowej, sklepu etc. Okalamy ją wtedy nawiasami, które powodują wyłączenie takiej nazwy z indeksowania (czyli nazwa ta nie będzie traktowana na równi z właściwymi nazwami ulic) – "{BP}", "{podjazd do Castoramy}".

Typy dróg

Jak już zostało powiedziane, typ drogi opisuje (czy też próbuje opisać), czym dana droga jest w rzeczywistości – gruntówką, drogą lokalną, czy też może autostradą. Na podstawie typu drodze przypisywane są (na etapie kompilacji mapy) różne atrybuty, z których podstawowe to indeks prędkości oraz kategoria (indeks kategorii).

Domyślnie Garmin definiuje prędkości dla każdego typu drogi. Pod koniec 2011 w UMP te domyślne wartości dla dróg w miastach (konkretniej, dla dróg nazwanych, czyli posiadających Label inny niż tylko numer drogi) zostały zmienione, aby lepiej przewidywać czas podróży.

Pozostałe parametry są dodatkowymi wskazówkami dla routingu (np. droga jednokierunkowa, zakazy ruchu, droga płatna – pełna lista w jednym z kolejnych rozdziałów). W większości przypadków konkretnym typom dróg automatycznie przypisywane są jedynie indeksy prędkości oraz kategorii, pozostałe parametry pozostają nieustawione (czyli ustawiane są w razie potrzeby dla konkretnych polyline).

Dodatkowo podany został domyślny poziom zbliżenia, w jakim dany typ pojawi się w odbiorniku (EndLevel), wraz z podziałką, jaka go opisuje.

Poszczególne typy dróg zostały opisane na osobnych stronach:

0x01 – major highway (autostrada)

Typ: 0x01
Indeks prędkości: 6 (110 km/h)
Indeks kategorii: 4
Parametry: 6,4,0,0,0,0,0,0,1,1,0
Poziom: 4

Nazwa mówi wszystko – autostrada. Autostrady to zawsze drogi co najmniej dwujezdniowe i tak je rysujemy – jako osobne nitki, każda z nich jako droga jednokierunkowa. Autostrady nie mają skrzyżowań, a jedyne łączenia z innymi drogami występują poprzez zjazdy i wjazdy na autostradę, czyli łączniki typu 0x8 lub 0x9. Inna możliwość to początek/koniec autostrady, gdzie przechodzi ona w drogę innego typu (np. A8 na południowym końcu przechodzi w S8, odcinki w budowie mogą kończyć się przejściem w typ 0x3 itp.).

Piesi i rowerzyści mają przypisane domyślne zakazy, więc przy takich drogach należy im zapewnić właściwy sposób poruszania się, o ile występuje (często tą role przejmują drogi serwisowe).

Uwaga: Przy dodaniu znacznika Płatne, należy wprowadzić zakazy dla pieszych i rowerów (do czasu poprawy netgena)

Nazwa drogi: ~[0x2d]<numer> (np. A2, A4).

0x02 – principal highway (droga szybkiego ruchu/krajowa dwupasmówka)

Typ: 0x02
Indeks prędkości: 5 (90 km/h)
Indeks kategorii: 4
Parametry: 5,4,0,0,0,0,0,0,1,1,0
Poziom: 4

Ten typ służy do rysowania dróg dla pojazdów samochodowych (skrzyżowania bezkolizyjne, dopuszczalna prędkość 100 lub 120 km/h), a w uzasadnionych przypadkach także dwujezdniowych dróg krajowych (poza miejscowościami zabudowanymi) oraz do izolowanych tranzytów przez miasto (w miastach – obwodnice śródmiejskie itp,). Musi mieć oznaczenie "S" lub co najmniej dwa pasy w jedną stronę oraz jedno- lub dwucyfrową numerację.

Piesi i rowerzyści mają przypisane domyślne zakazy, więc przy takich drogach należy im zapewnić właściwy sposób poruszania się, o ile występuje (dość często nie ma).

Nazwa drogi: ~[0x2d]<numer> (np. "S8"), w mieście dodatkowo po spacji nazwa własna ulicy.

0x03 – other highway road (droga główna)

Typ: 0x03
Indeks prędkości: 4 (80 km/h), nazwane: 3 (60 km/h)
Indeks kategorii: 3
Poziom: 3

Tym typem rysujemy drogi krajowe ("czerwone"), z dwucyfrowym oznaczeniem (w uzasadnionych przypadkach ważniejsze trzycyfrowe wojewódzkie). W miastach poza krajówkami – także drogi tranzytowe przez miasto o podobnych parametrach/klasie drogi.

W wielu przypadkach te drogi to drogi dwujezdniowe. W takim przypadku obie jezdnie (nitki) rysujemy osobno jako drogi jednokierunkowe (zaznaczając Polyline has direction). Wówczas tylko jednej nitce nadajemy poziom EndLevel=3, druga powinna mieć EndLevel=1.

Uwaga: jezdnie w drogach dwujezdniowych zwykle co jakiś czas połączone są łącznikami, pozwalającymi na zawracanie (czasem będące częścią dróg przecinających drogę dwujezdniową). Ze względu na pracę algorytmu routingu (który nie lubi zakrętów dróg szybkiego ruchu pod kątem 90 stopni) takie łączniki (o ile nie są tylko w jedną stronę i zostały narysowane łukiem) muszą być rysowane typem niższym od jezdni drogi dwujezdniowej (w większości przypadków o jeden typ niższym, a więc łącznik 0x03 rysujemy jako 0x04). W innym wypadku zamiast poprowadzić użytkownika zawrotką nawigacja po prostu z niej nie skorzysta, przeciągając go czasem kilometry do jakiegoś skrzyżowania.

Nazwa drogi: ~[0x05]<numer krajówki> (dla trzycyfrowych ~[0x06]<numer>), w mieście dodatkowo po spacji nazwa własna ulicy.

0x04 – arterial road (arteria komunikacyjna)

0x04 – arterial road (arteria komunikacyjna)

0x05 – collector road (droga zbiorcza)

Typ: 0x05
Indeks prędkości: 3 (60 km/h), nazwane: 2 (40 km/h)
Indeks kategorii: 1
Poziom: 1 (1.2 km) lub 2 (3 km)

Tym typem oznaczamy drogi nienumerowane poza miejscowościami (czyli poniżej wojewódzkich czy krajowych), w miastach są to drogi przelotowe o znaczeniu wewnątrzdzielnicowym, co ważniejsze ulice na osiedlach (oznaczone znakami pierwszeństwa przejazdu) lub arterie komunikacyjne (o ile nie powinny być rysowane jako 0x4)

Nazwa drogi: nazwa własna ulicy (jeśli ją posiada). W wypadku numerowanych dróg powiatowych : ~[0x6]1234D itp., czyli czterocyfrowy numer drogi i wyznacznik województwa.

0x06 – residential street (droga lokalna)

Typ: 0x06
Indeks prędkości: 2 (40 km/h), nazwane: 1 (20 km/h)
Indeks kategorii: 0
Poziom: 1 (500m)


Tym typem opisujemy większość dróg lokalnych: osiedlowych, miejskich, wiejskich, etc, nie zasługujących na wyższe miano drogi zbiorczej (0x05, collector road). Jest to domyślny typ dla normalnej drogi na której mogą się minąć dwa samochody osobowe. Droga taka ma nawierzchnię bitumiczną (asfalt) a oznakowanie dopuszcza poruszanie się co najmniej z prędkością miejską (40-50km). Nawierzchnia z kostki, betonu itp. z reguły kwalifikują się do 0x07, ale nie jest to wyznacznik typu drogi (w miastach zdarzają się drogi krajowe (typ 0x3) z nawierzchnią z poniemieckiej kostki).

Skrypty przygotowujące mapę do kompilacji automatycznie podnoszą poziom dróg 0x06 na 1, jeśli wynosił on 0 (w przeciwnym razie drogi takie zbyt szybko znikają przy oddalaniu mapy), ale dobrze jest samemu pilnować i ustawiać właściwy poziom już przy edycji w ME/ME++ – wtedy zmieniając widoczność klawiszami 0/1/2/... widzimy jak wygląd mapy będzie się zmieniał w odbiorniku.

Nazwa drogi: nazwa własna ulicy (jeśli ją posiada)

0x07 – alley/private driveway (alejka/dojazd)

Typ: 0x07
Indeks prędkości: 1 (20 km/h), nazwane: 0 (5 km/h)
Indeks kategorii: 0
Poziom: 0 (500 m)

Zgodnie z nazwą, ten typ przeznaczony jest dla alejek i dróg dojazdowych do posesji. Stosujemy go na stacjach benzynowych, podjazdach do hotelów, a także niektórych dojazdach do bloków/posesji, wąskich drogach osiedlowych – tam, gdzie chcemy oznaczyć drogę niższą w kategorii (a więc i o mniejszej preferencji przy wytyczaniu trasy) niż droga lokalna (0x06). Stosowana na drogach o nawierzchni betonowej (kostka) oraz tam gdzie oznakowanie ogranicza prędkość do 30km/h i mniej (np: strefy zamieszkania itp)

Wbrew temu, co mogłaby sugerować nazwa, nie jest to droga wyłączona z wytyczania trasy (prywatna) – będzie jedynie mniej preferowana od drogi lokalnej (co wynika z jej indeksu prędkości). Jeśli chcemy mieć drogę, która nie stanie się nigdy skrótem (tzn. nie zostanie poprzez nią wytyczona droga do celów, które się przy niej nie znajdują), musimy skorzystać z zakazów (w parametrach routingu) – do tego trzeba mieć z kolei dobre podstawy (np. rysowana droga jest uliczką na prywatnym osiedlu z zamkniętym ruchem).

Nazwa drogi: nazwa własna ulicy (jeśli ją posiada) lub oznaczenie przynależności w nawiasach klamrowych, np. {BP}.

0x08 – highway ramp, low-speed (rampa)

Typ: 0x08
Indeks prędkości: 2 (40 km/h)
Indeks kategorii: 1 (zmienny)
Poziom:

Łącznik dla dróg szybkiego ruchu (zjazd z autostrady/wjazd na nią). Stosowany do łączenia autostrady (i autostradopodobnych np dróg "S") z drogami wolniejszymi. Tym typem oznaczamy wszystkie zjazdy z autostrady (pętelki, trąbki itp.), wymagające redukcji prędkości do 40-50 km/h.

W polskich komunikatach głosowych używany jako "wiadukt".

Klasa zmieniana jest (przez netgena) na najwyższą z jaką ten łącznik jest połączony.

0x09 – highway ramp, high-speed (rampa)

Typ: 0x09
Indeks prędkości: 4 (80 km/h)
Indeks kategorii: 1 (zmienny)
Poziom:

Łącznik dla dróg szybkiego ruchu. Do łączenia dwóch autostrad (i u nas dróg 2 jezdniowych "S" – bezkolizyjnych). Także do oznaczania tych części zjazdów z autostrad i dróg dla pojazdów samochodowych, na których można bezpiecznie jechać z prędkością 60-90 km/h (np. łagodny łuk na węźle autostradowym, odbicie na zjazd, który przez 500-1000m ciągnie się wzdłuż autostrady i dopiero od niego odbijają kolejne zjazdy rysowane typem 0x8 (np. Katowice wzdłuż A4), itp.)

Klasa zmieniana jest (przez netgena) na najwyższą z jaką ten łącznik jest połączony.

0x16 – walkway/trail (ścieżka/szlak)

0x16 – walkway/trail (ścieżka/szlak)

0x0a – unpaved road (droga gruntowa)

0x0a – unpaved road (droga gruntowa)

0x0b – major highway connector (łącznik)

0x0b – major highway connector (łącznik)

0x0c – roundabout (rondo)

0x0c – roundabout (rondo)

Parametry routingu

Do każdej drogi (polyline) możemy przypisać parametry, zawierające dodatkowe informacje dla algorytmu routingu. Najczęściej występującym dodatkowym opisem dróg jest jednokierunkowość. Inne parametry to np. zakazy dotyczące konkretnej grupy użytkowników/pojazdów (samochody, ciężarówki, taksówki).

Poniżej lista parametrów, które możemy ustawiać. W większości przypadków polega to na zaznaczeniu odpowiedniej opcji we właściwościach drogi w ME++ – odpowiednie wpisy (podane przy każdym z nich) zostaną dodane przez program.

Spora część parametrów reprezentowana jest w linii "RouteParam=". Po znaku "=" znajduje się w niej 12 znaków "0" i "1" oddzielonych przecinkami. Jedynka oznacza włączenie danego parametru.


Jednokierunkowość (polyline has direction)

DirIndicator=1
RouteParam=0,0,1,0,0,0,0,0,0,0,0,0

Jednokierunkowość drogi oznaczamy wybierając we właściwościach drogi (zakładka pierwsza – Properties) opcję Polyline has direction. Droga zostaje oznaczona strzałką na końcu. Nie ustawiamy tego w parametrach routingu, ale właśnie ptaszkiem w zakładce głównej.

Uwaga: o tym, w którym kierunku można się daną drogą poruszać, decyduje kolejność węzłów drogi (od pierwszego węzła w kierunku kolejnych). W trybie edycji węzłów (M) pierwszy węzeł oznaczony jest w ME++ kolorem różowym.

Jeśli droga narysowana jest w odwrotnym kierunku, należy wybrać funkcję Reverse Polyline (dostępną w menu pod prawym przyciskiem myszy). Kolejność węzłów zostanie odwrócona.

Należy używać wyłącznie DirIndicator, kierunkowość w parametrach routingu jest poprawiana w czasie kompilacji.


Droga płatna (route is toll)

RouteParam=0,0,0,1,0,0,0,0,0,0,0,0

Właściwości drogi, zakładka Routing, opcja Route is toll.

Ten parametr oznacza, że przejazd tą drogą jest płatny. Umożliwia to routingowi uzależnienie trasy od wyboru przez użytkownika (w odbiorniku GPS) opcji unikania dróg płatnych. W polskich warunkach oznaczamy w ten sposób płatne odcinki autostrad, można go ustawić także na parkingach w galeriach handlowych (szczególnie wtedy, gdy mamy więcej niż jeden wjazd/wyjazd – jest to wówczas zgodny z rzeczywistością i praktyczny sposób na uniknięcie przeciągnięcia routingu "na skróty" przez parking :) )

Zakazy (w ramach jednej polyline)

Kolejne parametry to zakazy poruszania się tą drogą dla poszczególnych typów pojazdów/użytkowników.

Podział na typy pojazdów/użytkowników wynika z przeznaczenia mapy. Ta sama mapa może być stosowana w nawigacji dla samochodu osobowego, ciężarowego, jak i taksówki, czy wreszcie piechura lub rowerzysty (niezależnie od tego, czy jest to inny odbiornik GPS, wyboru dokonuje się w opcjach routingu tego odbiornika).

Zakazy często występują wspólnie, ponieważ np. znak B-1 "zakaz ruchu w obu kierunkach" oznacza zarówno zakaz ruchu samochodów osobowych, jak i ciężarówek czy motocykli, podczas gdy znak B-5 będzie już dedykowany wyłącznie samochodom ciężarowym.

Należy pamiętać, że zasięg zakazu to droga (polyline), którą danym zakazem opisujemy. Czasem konieczne będzie wprowadzenie zakazu na kilka polyline, a czasem konieczne może być podzielenie jednej drogi na dwie (gdy zakaz obowiązuje tylko na części stanowiącej dotąd całość drogi).

Poniższa kolejność wynika mniej więcej z częstotliwości stosowania.


Zakaz ruchu samochodów osobowych/motocykli (no car/motorcycle)

RouteParam=0,0,0,0,0,0,1,0,0,0,0,0

Właściwości drogi, zakładka Routing, opcja No car/motorcycle.

Droga niedostępna dla samochodów osobowych i motocykli. Zapewne bardzo rzadko wystąpi bez np. zakazów dotyczących ciężarówek.


Zakaz ruchu samochodów ciężarowych (no truck)

Ustawiasz, gdy na drodze jest zakaz ruchu pojazdów 3,5 tony lub cięższych (można dostawić bojkę ZAKAZ z nazwą jak tonaż).

RouteParam=0,0,0,0,0,0,0,0,0,0,0,1

Właściwości drogi, zakładka Routing, opcja No truck.

Zakaz ruchu rowerów (no bicycle)

RouteParam=0,0,0,0,0,0,0,0,0,0,1,0

Właściwości drogi, zakładka Routing, opcja No bicycle. Jeśli obok drogi z takim zakazem występuje ścieżka rowerowa lub chodnik, po którym wolno poruszać się rowerzystom, koniecznie go narysuj. Opcja domyślnie stosowana w wypadku autostrad i dróg 0x2.

Zakaz ruchu pieszych (no pedestrian)

RouteParam=0,0,0,0,0,0,0,0,0,1,0,0

Właściwości drogi, zakładka Routing, opcja No pedestrian. Opcja domyślnie stosowana w wypadku autostrad i dróg 0x2.


Zakaz ruchu karetek (no emergency)

RouteParam=0,0,0,0,1,0,0,0,0,0,0,0

Właściwości drogi, zakładka Routing, opcja No emergency.

Ten zakaz ustawiamy bardzo rzadko – karetka na sygnale ma prawo przejechać wszędzie. Może jednak mieć zastosowanie na drogach, na które wjazd jest zagrodzony szlabanami, gdzie występują nirozkładalne słupki itp., a także przy wyłączaniu odcinków dróg podczas remontów (gdy droga jest rozkopana i przejazdu nie ma tak czy inaczej).

Zakaz ruchu samochodów dostawczych/spedycji (no delivery)

RouteParam=0,0,0,0,0,1,0,0,0,0,0,0

Właściwości drogi, zakładka Routing, opcja No delivery.

Niezaznaczenie tego zakazu przy zaznaczeniu np. no car/motorcycle i no truck oznacza, że dozwolony jest wjazd samochodów dostarczających towary, kurierów etc. Czyli np. "Zakaz wjazdu dla pojazdów samochodowych" ale z tabliczką "nie dotyczy dostaw" ("w godzinach ...")


Zakaz ruchu busów (no bus)

RouteParam=0,0,0,0,0,0,0,1,0,0,0,0

Właściwości drogi, zakładka Routing, opcja No bus.


Zakaz ruchu taksówek (no taxi)

RouteParam=0,0,0,0,0,0,0,0,1,0,0,0

Właściwości drogi, zakładka Routing, opcja No taxi.

Zwykle występuje razem z no car/motorcycle, są jednak w miastach miejsca, gdzie mogą poruszać się taksówki, a "cywilne" pojazdy nie.



Znaki zakazu a parametry routingu

Oto próba odwzorowania niektórych znaku zakazu na zestaw opcji w ME++, przy założeniu, że pod znakiem nie ma dodatkowych warunków/wyjątków:

Znak Nazwa Jak?
B-1 zakaz ruchu w obu kierunkach no delivery + no car/motorcycle + no bus + no taxi + no bicycle + no truck
B-2 zakaz wjazdu realizowane przez jednokierunkowość drogi, w którą nie można wjeżdżać
B-3 zakaz wjazdu pojazdów silnikowych, z wyjątkiem motocykli jednośladowych Jak B-1, nie ma osobnej kategorii motocykli
B-3a zakaz wjazdu autobusów no bus
B-4 zakaz wjazdu motocykli brak kategorii tylko dla motocykli
B-5 zakaz wjazdu samochodów ciężarowych no truck
B-9 zakaz wjazdu rowerów no bicycle
B-41 zakaz ruchu pieszych no pedestrian
tabliczki wyłączenia z zakazów np. "nie dotyczy autobusów" – realizujemy odhaczając odpowiednią kategorię z istniejącego zakazu

Zakazy skrętu

Opisane wcześniej zakazy to właściwości konkretnej drogi. Nieco inaczej tworzymy zakazy skrętu. W UMP-ie zakazy takie rysujemy specjalną linią (POLYLINE), obrazującą ścieżkę, jakiej nawigacji nie wolno wyznaczyć. Wykorzystujemy do tego osobny typ: 0x19. Ścieżka taka może zawierać 3 lub 4 punkty (po punktach routingu). Z reguły wystarczają 3 (przed skrzyżowaniem, na, za), w przypadku zakazów zawracania czasem konieczne są 4 (jeśli wolno skręcać w lewo, ale nie zawracać).


Typ: 0x19
Nazwa: Timeline

Jeśli więc z ulicy A nie wolno skręcić w ulicę B, rysujemy typem 0x19 polyline. Pierwszy węzeł tej linii musi pokrywać się z ostatnim węzłem ulicy A przed skrzyżowaniem z B (nazwijmy go X). Drugi węzeł (Y) to będzie samo skrzyżowanie A z B, trzeci (Z) – pierwszy węzeł na B już za tym skrzyżowaniem (oczywiście w tym kierunku, w którym nie wolno skręcić). Zakaz oznacza więc – "Z punktu X do punktu Z nie da się dojechać przez punkt pośredni Y". Przez węzły należy rozumieć węzły routingu (czyli skrzyżowania z innymi drogami, albo miejsca gdzie droga jest rozcięta, bo zmienia nazwę/kategorię), ale dopuszczalne jest też rozpoczęcie lub zakończenie zakazu bliżej (czyli np. przesunięcie węzła X w kierunku Y – tam, gdzie na drodze A jest zwykły punkt wynikający z odwzorowania kształtu drogi). To powoduje jednak powstawanie dodatkowych punktów routingu, których nie powinno się tworzyć bez potrzeby.

Jeśli jest nakaz jazdy w prawo, mimo że są ulice także na wprost i w lewo – trzeba narysować dwie linie zakazu (jedną prosto, drugą w lewo).

Uwaga: nie ma potrzeby rysować zakazów skrętu w drogi jednokierunkowe pod prąd – takiej trasy nawigacja i tak nie wyznaczy.

Uwaga2: Tak skonstruowany zakaz nie może mieć więcej niż 4 węzły. Możemy więc wyrysować coś bardziej skomplikowanego, jednak maksymalnie do tych 4 węzłów.

Jeśli jakiś zakaz nie dotyczy którejś kategorii pojazdów (najczęściej: autobusy komunikacji miejskiej), to należy dodać ręcznie następujący parametr linii Zakaz:

RestrParam=1,0,0,0,1,0,0,0

i wtedy skręcać będą mogły, według nawigacji, karetki i busy (uwaga: piesi ani rowery nie). Znaczenie poszczególnych parametrów to:

RestrParam=karetki,dostawcze,busy,samochód/moto,taxi,pieszy,rower,ciężarówka

czyli taka sama kolejność jak w RouteParam= (pomijając początkowe parametry klasy drogi itd.)

Prędkość

ForceSpeed=x (gdzie x to słowo "slower" lub "faster", ewentualnie wartość 0..6)

Każdy typ drogi ma przypisany indeks prędkości (zostały one wymienione w poprzednim rozdziale). Jest to wartość wykorzystywana przy obliczaniu czasu podróży tą drogą. W niektórych (niezbyt częstych) przypadkach, przydatne może okazać się przypisanie danej drodze innej prędkości – robimy to za pomocą tego parametru, dopisywanego w zakładce Extras właściwości drogi.

Przykładem takiego przypadku może być dojazd do miejscowości, do której prowadzą dwie drogi tej samej kategorii, np. dwie drogi gruntowe. Załóżmy, że rozpoczynają się i kończą w tych samych miejscach. Jedna z nich jest krótsza, ale wyboista i zimą nieodśnieżana, druga poprowadzona lekko naokoło, ale mniej stroma, zadbana i regularnie odśnieżana. Ponieważ obie to drogi gruntowe, w normalnych warunkach nawigacja poprowadzi trasę krótszą drogą – zarówno przy wyborze opcji trasy krótszej, jak i szybszej, ponieważ w przypadku dróg tej samej kategorii droga krótsza jest w oczywisty sposób szybsza.

Wcześniej modyfikacja parametru odbywała się przez sztywne podanie "nowej" prędkości. Od 2012 można jednak (i należy) podawać parametr slower lub faster dla oznaczenia czy dana droga ma mieć prędkość niższą czy wyższą od domyślnej.

W powyższym przykładzie z dwiema drogami modyfikacja parametrów "lepszej" drogi, przez ustawienie ForceSpeed=faster spowoduje, że dla nawigacji droga ta stanie się automatycznie drogą cztery razy szybszą (wartość domyślna dla drogi gruntowej to 0 – 5 km/h, wyższa 1 to 20 km/h). Przy wyborze opcji trasy najkrótszej trasa wciąż będzie prowadziła drogą, która jest fizycznie krótsza, jednakże wybór trasy szybszej spowoduje już, że zostaniemy poprowadzeni tą "lepszą" drogą.

Powyższe będzie zawsze prawdziwe dla dróg gruntowych. W przypadku dróg o typach 0x3 do 0x7 (other highway, arterial, residental, alleway) domyślne prędkości są modyfikowane dla dróg nazwanych, co zostało opisane wcześniej. Nie wpływa to na preferencję jednej drogi nad inną dopóki obie drogi są tego samego typu (i obie mają nazwy, lub obie nie), trzeba to natomiast wziąć pod uwagę przy rozwiązywaniu problemów tam, gdzie np. jedna alleway jest nazwana, a druga nie.

Innym dość typowym przykładem zastosowania ForceSpeed jest np. uliczka między blokami, którą routing skraca jakąś trasę, nawet pomimo tego iż ta uliczka to dajmy na to residential (0x6), a okoliczne collector (0x5) – po prostu skrót jest dość spory. Jeśli trasa nie powinna być tamtędy tyczona, powinniśmy ustawić na tym odcinku ForceSpeed=slower.


Droga Prędkość (brak nazwy) Prędkość (nazwana) faster slower
0x16 – walkway/trail (ścieżka/szlak)0 (5 km/h)0 (5 km/h)10
0x0a – unpaved road (droga gruntowa)0 (5 km/h)0 (5 km/h)10
0x07 – alleyway/private driveway (alejka/dojazd)1 (20 km/h)0 (5 km/h)2/10/0
0x06 – residential street (droga lokalna)2 (40 km/h)1 (20 km/h)3/21/0
0x05 – collector road (droga zbiorcza)3 (60 km/h)2 (40 km/h)4/32/1
0x04 – arterial road (arteria komunikacyjna)3 (60 km/h)2 (40 km/h)4/32/1
0x03 – other highway road (droga główna/krajowa)4 (80 km/h)3 (60 km/h)5/43/2
0x02 – principal highway (droga szybkiego ruchu/krajowa dwupasmówka)5 (90 km/h)5 (90 km/h)64
0x01 – major highway (autostrada)6 (110 km/h)6 (110 km/h)65

Kategoria (klasa)

ForceClass=x (gdzie x = 0..4)

Analogicznie do ustawienia prędkości na danej drodze, możemy zmienić jej indeks kategorii.

Ciągłość klas

Każda droga na mapie otrzymuje na etapie kompilacji określoną klasę (wartość od 0 do 4, gdzie 4 to droga najważniejsza). Garminy są bardzo wrażliwe na ciągłość tych klas, a brak ciągłości często skutkuje bardzo fantazyjnym wyznaczaniem tras. Większość typów dróg (0x1-0x7, 0xd) ma przypisaną klasę na stałe, a część obiektów (ronda, rampy, łączniki, tunele) ma ustalaną klasę automatycznie, w zależności od obiektów które łączą (dzięki temu nie musimy pamiętać aby rondom i rampom nadawać klasę). Aby zapewnić ciągłość klas musimy odpowiednio rysować wszelkie łączniki i serwisówki łączące ze sobą drogi. Ogólna zasada jest taka, że łącznik pomiędzy drogami (o ile nie jest rondem, rampą, łącznikiem czy tunelem) powinien być narysowany typem jednej z dróg, które łączy. Więcej informacji szukaj na innej stronie.

Zagadnienia

Remonty

Ogólna zasada – zaznaczamy remonty tylko dłuższe niż dwa tygodnie.

  • rejestrujemy we Flyspray, kategoria Remonty
    • w zgłoszeniu piszemy co zostało popsute (w szczególności pokasowane zakazy ruchu), żeby łatwiej było przywrócić układ po remoncie
    • numer zgłoszenia wpisujemy w komentarzach zmienianych elementów mapy, żeby po zakończeniu remontu było łatwo odkręcić.

A na mapie:

  • jeśli trzeba – wycinamy odcinek z dłuższego kawałka drogi
  • odpinamy końce wyłączonego odcinka, ewentualnie wstawiamy ograniczenia pojazdów (zakładka Routing), w komentarzu wpisując numer zgłoszenia Flyspray. Jeżeli odpinamy odcinek jednokierunkowy, na czas odpięcia musimy zdjąć z niego jednokierunkowość (lub z innych jednokierunkowych, od których go odpięliśmy) i najlepiej zaznaczyć to w komentarzu (bo routing w odbiornikach nie lubi, jak się go zapędzi w miejsce bez wyjścia, czyli koniec jednokierunkowej drogi wiszący w próżni)
    • kwestia dyskusyjna: odcinkowi zmieniamy typ na "w budowie" (0x1e016). W takim wypadku nie musimy jego końców odpinać od istniejących skrzyżowań.
    • opcjonalnie: redukujemy widoczność na wyższych poziomach
  • stawiamy punkt typu REMONT (żółta okrągła bojka typu 0x1712) z etykietą w stylu "FS#1234 remont taki-a-siaki do końca 12.2010" (widok na www będzie zamieniał FS# na link do konkretnego zgłoszenia FlySpray)
    • punktów REMONT możemu używać zamiast bojek "ślepy" tam gdzie trzeba (np. na końcach pozostałych po odpięciu dróg, które nadal są przejezdne) – spełniają tę samą funkcję, maskując ostrzeżenia o ślepych, a po zakończeniu remontu nie będzie wątpliwości czy tam jest/była ślepa, tylko że trzeba sprawdzić, bo się mogło pozmieniać.

Komunikaty głosowe

Tutaj informacja, jak rysować żeby komunikaty głosowe był poprawne

Trzeci wymiar

czyli "po prostu" wiadukty, a nawet wielopoziomowe węzły.

Mapa w wersji www oraz w konwersji do Navitel jest w stanie pokazywać 'wysokościowe' zależności elementów, chociażby która droga idzie wiaduktem, a która dołem. W odbiorniku – tylko drogi, koleje nie, na WWW – zarówno drogi jak i koleje.

Jak?

  • nie używaj mont-demont.bat lub mdm-gui z ptaszkiem "Specjalne traktowanie typów" (w ME++ – bez znaczenia) lub "make mont"/"make demont" (uniks lub Windows z cygwinem)
  • Jeśli używasz ME (nie ME++), po zmontowaniu mapy zmień typ (File – Map properties, pierwsza zakładka) z Garmin na Navitel (w ME++ działa i bez tego)
  • każdemu węzłowi drogi w trybie Edycja można ustawić jego wysokość we względnej skali od -2 do 15 (w ME++ także węzłom kolejowym)
  • nacisnąć M, dwuklik na którymś punkcie drogi albo prawy klik i "Properties", zakładka 3D, ptaszek przy Has 3D, wybrać wartość:
    • "0" dla obiektów na poziomie gruntu – nie trzeba im tego deklarować jawnie, chyba że w tym miejscu określamy koniec/początek odcinka wysokościowego.
    • "-2" dla tunelu, "-1" wykop lub stan pośredni. Jeśli tunel jest tunelem z prawdziwego zdarzenia (odpowiednio długi, z reguły z ograniczeniami prędkości, nazwą, itp.), to rysujemy go typem 0x0e, natomiast wszelkie przejazdy pod innymi drogami, nawet jeśli mają 100-200m, rysujemy takim typem, jak droga, w ciągu której się znajduje, obniżając tylko wysokość.
    • "1" to rampa/nasyp, "2" to standardowy wiadukt lub most. Nie trzeba definiować wszystkich punktów po drodze, wystarczy np. jeden punkt 0 na początku, drugi niedaleko potem z wartością 2 przed przecięciem z drogą/obiektem, nad którym znajduje się most/wiadukt, kolejny z wartością 2 za tym obiektem i ostatni z wartością 0 za mostem (żeby się most nie ciągnął przez kolejne 3 kilometry). Jeśli most/wiadukt jest bardzo krótki (kilka(naście) metrów), można zamiast dwóch punktów o wysokości 2 postawić tylko jeden na środku, ale preferowana metoda zaznaczania to 2 punkty, żeby mieć pewność, że interpolowany punkt przejścia wysokości z 0 na 2 nie wypadnie na przykład gdzieś nad wodą :-)
    • Jeśli w punkcie oznaczonym niezerową wysokością znajduje się skrzyżowanie (np. rampa odbijająca z wiaduktu) albo nawet tylko koniec jednej drogi i początek kolejnej (np. ze względu na zmianę nazwy), pamiętaj by w tym punkcie ustawić tę samą wysokość na wszystkich spotykających się tam drogach.
  • jeśli masz wybrane "View – Show 3D", to możesz zobaczyć małe cyferki obok węzłów
  • możesz kliknąć na obiekcie prawym klawiszem myszy, i wybrać "Show in 3D"
  • po skończeniu jak zwykle: zamknij ME, zdemontuj, przejrzyj zmiany, skopiuj, jeszcze raz sprawdź, wyślij na serwer.
    • w zmianach źródeł zobaczysz wpisy w stylu
HLevel0=(4,1),(5,1)

Typy dróg – rozszerzenia

Opisane w pierwszym rozdziale typy dróg to podstawa, na której bazuje budowa mapy i protokół routingu. Nie są to jednak wszystkie możliwe typy. Poniżej przedstawione zostały typy opisujące inne mogące wystąpić na mapie polyline:

0x0d – ścieżka rowerowa

0x0d – ścieżka rowerowa

0x0e – tunel

0x0e – tunel

0x14 – kolej

Kolej (w źródłach zmieniana potem na 0x10e14, ale na mapie rysowana 0x14)


0x010e10 – tramwaj

Typ: 0x010e10

Tak oznaczamy linię tramwajową. W nazwie zawieramy informację o numerach linii, w sposób następujący: 4-5-9-10-15-40.


0x010e11 – ulica planowana (w mieście)

Typ: 0x010e11

W ten sposób oznaczamy przebieg planowanych/budowanych ulic (w miastach). W planach lub wczesnym stadium realizacji, gdzie przebieg może być przybliżony.


0x010e12 – droga planowana

Typ: 0x010e12

W ten sposób oznaczamy przebieg planowanych/budowanych dróg. W planach lub wczesnym stadium realizacji, gdzie przebieg może być przybliżony.


0x010e13 – droga w budowie

Typ: 0x010e13

W ten sposób oznaczamy drogi w budowie -- w zaawansowanym stadium budowy, gdzie przebieg już nie jest przybliżony (choć może się zdarzyć, że innego źródła nie mamy i musi), albo (najlepiej) - pochodzi z jakiegoś śladu, choćby przejazdu rowerem po zamkniętym jeszcze odcinku. Typ należy traktować tak, jak by był routowalny, więc w miarę możliwości ustawiać wysokość wiaduktom, stawiać bojki SLEPY/WIADUKT itp., żeby otwarcie odcinka było bezproblemowe i wymagało jedynie zmiany typu na odpowiedni. Tym typem można też oznaczać drogi w przebudowie/remonty (o ile to gruntowna przebudowa i nie wystarczy "zwykłe" zaznaczenie zakazów wjazdu).

0x010e15 – kolej podziemna

Typ: 0x010e15

Tym typem opisujemy kolej podziemną (ewentualnie także rozebrany przez złomiarzy lub kolejarzy odcinek kolejowy)


0x010e16 – kolejka linowa

Kolejka linowa - krzesełkowa lub gondolowa.


0x010e17 – Wyciąg narciarski

Wyciąg narciarski - orczyk itp.


Szlaki rowerowe

0x010e08 szlak rowerowy czerwony

0x010e09 szlak rowerowy żółty

0x010e0a szlak rowerowy zielony

0x010e0b szlak rowerowy niebieski

0x010e0c szlak rowerowy czarny

Szlaki piesze

Poniższe oznaczenia stosujemy do rysowania szlaków PTTK-owskich, miejskich itp., których kolor jest jednoznacznie określony.

0x010e00 szlak pieszy czerwony

0x010e01 szlak pieszy żółty

0x010e02 szlak pieszy zielony

0x010e03 szlak pieszy niebieski

0x010e04 szlak pieszy czarny

0x010e07 (multicolor) kilka nałożonych szlaków pieszych

0x010e1a – wał przeciwpowodziowy

0x010e1b – mury obronne

0x010e0f – inne

Szlak konny, ścieżka dydaktyczna i inne nietypowe. Oczywiście z odpowiednią nazwą, opisującą odpowiednio taką drogę.