Jak rysowac drogi

Z UMP

(Różnice między wersjami)
(Typy dróg – rozszerzenia)
(Ciągłość klas)
Linia 362: Linia 362:
== Ciągłość klas ==
== 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. Kilka przykładów aby zilustrować ten mętny opis:
+
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 [[Ciągłość_klas|na innej stronie]].
-
 
+
-
1) http://mapa.ump.waw.pl/ump-www/?zoom=18&lat=51.75659&lon=19.4363&layers=B00000FTF&mlat=51.75654&mlon=19.43413. Droga oznaczona wskaźnikiem łączy drogę o typie 0x3 (aleja Włókniarzy) z drogą typu 0x4 (aleja Bandurskiego), tworząc oficjalny łącznik pomiędzy nimi. Oznacza to, że ten łącznik nie może być narysowany typem niższym niż 0x4 i tak jest w tym momencie. Można też zamiast typu 0x4 użyć rampy, ale tutaj ze względu na komunikaty nie stosuje się tego.
+
-
 
+
-
2) http://mapa.ump.waw.pl/ump-www/?zoom=17&lat=51.75515&lon=19.43016&layers=B00000FTF&mlat=51.75637&mlon=19.42930. Ten łącznik narysowany jest rampą, ale jeśli chcielibyśmy użyć normalnej drogi, musiałaby ona być typu 0x5, bo istnieje tutaj zjazd z drogi typu 0x4 na 0x5.
+
-
 
+
-
3) Prawoskręty tego typu http://mapa.ump.waw.pl/ump-www/?zoom=18&lat=51.74797&lon=19.40747&layers=B00000FTF&mlat=51.74827&mlon=19.40682 również muszą być rysowane typem nie niższym niż drogi które łączą (tutaj 0x5). Narysowanie go niższym typem (np. 0x6) jest błędem.
+
-
 
+
-
4) W podobny sposób należy traktować bezkolizyjne objazdy rond http://mapa.ump.waw.pl/ump-www/?zoom=19&lat=52.03794&lon=20.41789&layers=B00000FTF&mlat=52.03798&mlon=20.41687.
+
-
 
+
-
5) Z tego samego powodu droga łącząca autostradę a2 z DW470 jest narysowana typem 0x4 (http://mapa.ump.waw.pl/ump-www/?zoom=15&lat=52.13462&lon=18.58727&layers=B00000FTF&mlat=52.13509&mlon=18.58538), chociaż formalnie nie jest to droga wojewódzka. Ponieważ jest to droga oficjalnie łącząca drogę wojewódzką z autostradą należy ją narysować tak aby nie powstała dziura w klasie co stałoby się jeśli narysowana byłaby typem niższym.
+
-
 
+
-
6) To http://mapa.ump.waw.pl/ump-www/?zoom=18&lat=51.10749&lon=17.03917&layers=B00000FTF&mlat=51.10760&mlon=17.03833 na dzień dzisiejszy (24.01.2013) jest błędem, bo dwie drogi typu 0x4 (klasa 2) są połączone typem 0x6 (klasa 0), czyli mamy piękną dziurę w klasie.
+
= Zagadnienia =
= Zagadnienia =

Wersja z dnia 12:49, 3 gru 2013

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:


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

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

0x0a – unpaved road (droga gruntowa)

0x0a – unpaved road (droga gruntowa)

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

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

0x06 – residential street (droga lokalna)

0x06 – residential street (droga lokalna)

0x05 – collector road (droga zbiorcza)

0x05 – collector road (droga zbiorcza)

0x04 – arterial road (arteria komunikacyjna)

0x04 – arterial road (arteria komunikacyjna)

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

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

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

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

0x01 – major highway (autostrada)

0x01 – major highway (autostrada)

0x0c – roundabout (rondo)

0x0c – roundabout (rondo)

0x0b – major highway connector (łącznik)

0x0b – major highway connector (łącznik)

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

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

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

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

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ść 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)
    • 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 – 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 z wartością 2 na środku mostu i kolejny 0 za mostem (żeby się most nie ciągnął przez kolejne 3 kilometry). Jeśli obiekt, nad którym przebiega most/wiadukt jest szerszy niż kilka(naście) metrów, warto zamiast jednego punktu o wysokości 2 postawić dwa takie 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

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ę.