Jak rysowac drogi

Z UMP

(Różnice między wersjami)
Linia 45: Linia 45:
-
= Typy dróg - podstawowe =
+
= 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).
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).
Linia 183: Linia 183:
Nazwa drogi: ''~[0x2d]<numer>''.
Nazwa drogi: ''~[0x2d]<numer>''.
-
 
-
 
-
= Typy dróg - dodatkowe ==
 
-
 
-
Poniżej opisane są typy "dodatkowe", obsługujące pewne konkretne przypadki.
 
-
 

Wersja z dnia 12:44, 28 sty 2010

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)
  • 0x0a unpaved road (droga gruntowa)
  • 0x07 alleway/private driveway (alejka, dojazd)
  • 0x06 residental 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ószą 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 wyznaczaczenie 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 nastepnym 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).

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 to:


0x16 - walkway/trail

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

Ten typ służy do rysowania ścieżek lub szlaków. Taka droga przeznaczona jest dla piechura. Nawigacja nie poprowadzi trasy przez ścieżkę, jeśli ustawiliśmy iż poruszamy się samochodem lub motocyklem.

Jest to jeden z typów, dla których domyślnie ustawiane są dodatkowe parametry. Są to zakazy ruchu charakterystyczne dla tego typu (dla karetek, zaopatrzenia, samochodów/motocykli, autobusów, taksówek i samochodów ciężarowych - stąd sześć jedynek).

Uwaga: Jeśli punkt docelowy znajduje się na ścieżce, nawigacja poprowadzi nas na tą ściezkę. Założenie jest następujące: użytkownik nawigacji jedzie dopóki się da samochodem, w momencie niemożliwości kontynuacji jazdy wysiada i idzie piechotą. Podobnie ma się rzecz z zakazami na zwykłych drogach samochodowych (tzn. nie zostaniemy przeprowadzeni przez taką drogę, chyba że to przy niej znajduje się punkt docelowy).


0x0a - unpaved road (droga gruntowa)

Typ: 0x0a
Indeks prędkości: 0 (5 km/h)
Indeks kategorii: 0
Poziom: 0 (500 m)


Ten typ oznacza drogę gruntową, nieutwardzoną.

Ważną cechą 0x0a jest możliwość wyboru w odbiorniku GPS opcji unikania gróg gruntowych. Nawigacja nie poprowadzi wtedy trasy poprzez drogi gruntowe, nawet jeśli w oparciu o stosowane kryteria (najszybsza/najkrótsza) trasa taka byłaby najkorzystniejsza. Wyjątkiem jest brak innej drogi do punktu docelowego (czyli punkt docelowy znajduje się przy samej drodze gruntowej, lub też w innym miejscu, do którego nie ma dojazdu za pomocą dróg utwardzonych)

Tym typem oznaczamy oczywiście wszelkie gruntówki czy też inne drogi bądź nieutwardzone, bądź utwardzone w sposób, który praktycznie uniemożliwia normalny normalny przejazd samochdem osobowym (normalny: taki, w którym pasażerom nie obijają się głowy o zagłówek). Będzie to na przykład większość dróg z płyt betonowych, szczególnie poza miejscowościami (w miastach zdarzają się dobrze urządzone płytowe dojazdy do np. bloków, które moga kwalifikować się na 0x07).

Nazwa drogi: nazwa własna ulicy, jeśli ja posiada


0x07 - alleway/private driveway (alejka/dojazd)

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

Zgodnie z nazwą, ten typ przeznaczony jest dla alejek dojazdowych. Stosujemy go na stacjach benzynowych, podjazdach do hotelów, a także niektórych dojazdach do bloków/posesji - tam, gdzie chcemy oznaczyć drogę niższą w kategorii (a więc i o mniejszej preferencji przy wytyczaniu trasy) niż droga lokalna (0x06).

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 (jesli ją posiada) lub oznaczenie przynależności w nawiasach klamrowych, np. {BP}.


0x06 - residental street (droga lokalna)

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


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

Nazwa drogi: nazwa własna ulicy (jesli ją posiada)


0x05 - collector road (droga zbiorcza)

Typ: 0x05
Indeks prędkości: 3 (60 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 przelotowa o znaczeniu ponaddzielnicowym lub arterie komunikacyjne.

Nazwa drogi: nazwa własna ulicy (jesli ją posiada)


0x04 - arterial road (arteria komunikacyjna)

Typ: 0x04
Indeks prędkości: 3 (60 km/h)
Indeks kategorii: 2
Poziom: 3 (12 km)
Nazwa: 

0x04 to typ, którym poza miastem opisujemy drogi drugorzędne ("żółte"), zwykle są to trzycyfrowe drogi wojewódzkie (wyjątkowo drogi bez numeru). W miastach poza przebiegiem numerowanych dróg wojewódzkich rysujemy za ich pomocą drogi tranzytowe przez miasto lub mogące pełnić taka rolę (jeśli nie są już częścią drogi wojewódzkiej, krajowej etc, oczywiście).

Jeśli jest to droga dwujezdniowa - patrz uwaga na ten temat w opisie 0x03.

Nazwa drogi: ~[0x2f]<numer>, 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)
Indeks kategorii: 3
Poziom: 4

Tym typem rysujemy drogi krajowe ("czerwone"), z dwycyfrowym oznaczeniem (w uzasadnionych przypadkach ważniejsze trzycyfrowe wojewódzkie). W miastach poza krajówkami - także drogi tranzytowe przez miasto (jeśli nie są częścią krajówki, autostrady etc).

W wielu przypadkach te drogi to drogi dwujezdniowe. W takim przypadku obie jezdnie (nitki) rysujemy osobno jako drogi jednokierunkowe (znaznaczając Polyline has direction).

Uwaga: jezdnie zwykle co jakiś czas połaczone 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 muszą być rysowane typem niższym od jedni 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: ~[0x2e]<numer krajówki> (dla trzycyfrowych ~[0x2f]<numer>), w mieście dodatkowo po spacji nazwa własna ulicy.


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

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

Ten typ służy do rysowania dwujezdniowych dróg krajowych (poza miejscowościami zabudowanymi) oraz do izolowanych tranzytów przez miasto (w miastach). Musi mieć co najmniej dwa pasy w jedną stronę oraz jedno- lub dwucyfrową numerację.

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

0x01 - major highway (autostrada)

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

Nazwa mówi wszystko - autostrada.

Nazwa drogi: ~[0x2d]<numer>.


0x0c - roundabout (rondo)

Typ: 0x0c
Indeks prędkości: 1 (20 km/h)
Indeks kategorii: 0
Poziom:

Tym typem rysujemy rondo (które musi być traktowane osobno ze względu na komunikowanie manewru przez numer zjazdu, a nie przez skręt w prawo lub lewo jak w przypadku zwykłego skrzyżowania).

Nazwa drogi:


0x0b - major highway connector (łącznik)

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

Łącznik dla dróg szybkiego ruchu.


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

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

Łącznik dla dróg szybkiego ruchu.


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

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

Łącznik dla dróg szybkiego ruchu.