Brouter do routingu pieszego i rowerowego

Najpierw dwa wyjaśnienia. Profil trekking jest zaprojektowany dla rowerów trekkingowych. trekking-steep to domyślny profil rowerowy ale ignoruje podjazdy i zjazdy więc operuje na płaskiej, dwuwymiarowej mapie.
Dzięki przemas75 za ten przykład. Pomógł mi ułożyć sobie w głowie obsługę zjazdów i podjazdów. Otóż autor oryginalnego (źródłowego) profilu wprowadził karę za zjazdy a brak kary za podjazdy! Gdzieś czytałem, że to celowe bo lubi długie, lekko nachylone zjazdy. Żeby zjechać gdziekolwiek i tak trzeba najpierw podjechać więc nie ma sensu oddzielna kara za podjazdy. Natomiast kara za zjazdy uaktywnia się powyżej pewnego nachylenia, czyli łagodne zjazdy są “darmowe” a strome zjazdy są mniej lub bardziej kosztowne. Ponieważ karane są zjazdy w Twoja trasa biegnie w dół, nic dziwnego, że dostałeś dziwaczny efekt.
To oczywiście nie ma sensu w mieście bo każdy zjazd za 100 czy 200m zostanie przerwany skrzyżowaniem czy światłami. Jak już zrozumiałem sposób kodowania tego w profilu, przeniosłem karę na podjazdy bo właśnie ich większość z nas chciałaby uniknąć. Od razu uzyskałem efekt taki, jaki uważasz za optymalny bo profil wybrał ddr i schody zamiast jazdy ulicą Korczaka. Poprawiony profil wgrałem pod link w pierwszym poście.
Jeszcze nie wiem jak postąpić z profilem do turystyki pieszej. Szlaki w górach często biegną grzbietem i podejścia są nieunknione jeśli chcę chodzić szlakami.

A ja uważam, że może wymienić wszystkie zmodyfikowane przez Ciebie profile z opisem jak routują - na co kładą nacisk a z czego rezygnują :slight_smile:
Osobiście np. wolę nawet stromy podjazd ulicą , niż długi objazd po terenie czy tym bardziej noszenie po schodach.
Nawet drobne modyfikacje profilu wprowadzają gruntowne zmiany w trasie i na przykładzie mojej trasy , która prawie codziennie pokonuję na teraz najlepszy teoretycznie jest treking-ignore-cr i first alternatywa.

Jak masz wiedzę to napisz jeszcze jak są liczone te alternatywy .

Dzięki za obszerne wyjaśnienie. Tylko teraz wykluczyłeś avoid_unsafe, co chyba nie jest dobre dla bezpiecznego transportu w mieście.
Jeśli włączę, to prowadzi mnie między domkami - co jest akceptowalne.

Zapomniałem wspomnieć jeszcze, że highway=path,bicycle=designated ma zbyt wysoki koszt podróży w stosunku do innych highway. To jest na poziomie footway, wydaje mi się że jest to błędne. Profil (wszystkie z broutera), biorą pod uwagę tylko cycleway i temu podobne (nawet nie pamiętam czy są cycleway:= czy cycleway)

@Fik1: Napisałem profil do routingu pieszego z silną preferencją dla pieszych szlaków turystycznych oraz zmodyfikowałem profil trekking aby uzyskać bezpieczniejsze trasy rowerowe. Ponieważ w Polsce jeździe się po mieście dwa razy szybciej niż w Niemczech a ofiar śmiertelnych mamy chyba cztery razy tyle, mocno ograniczyłem routing po drogach wojewódzkich i wyższych. Trochę ograniczyłem po zbiorczych (tertiary). Natomiast ułatwiłem trochę ruch po ścieżkach, drogach gruntowych, schodach i, niestety, chodnikach. W efekcie, większość trasy zwykle biegnie drogami osiedlowymi (residential), o ile to tylko możliwe.
Jeśli najlepiej działa Ci trekking-ignore-cr to w ogóle nie masz do czynienia z moimi zmianami bo to profil domyślny tylko ignorujący turytyczne szlaki rowerowe. Jeśli natomiast moje zmiany Ci się podobają to proponuję użyć mojego profilu z pierwszego postu i zmienić consider_elevation na 0 to nie będziesz objeżdżał podjazdów oraz ignore_cycleroutes na 1 aby uzyskać ten sam efekt co w trekking-ignore-cr.
Liczenie alternatyw to bebechy algorytmu routującego. Czytałem jak to działa i nic nie zrozumiałem :slight_smile:

@przemas75: Nie wykluczyłem avoid_unsafe bo go nie dotykam bo jest niemal nieprzydatne. Ma zachęcającą nazwę ale słaby efekt :slight_smile: Ta flaga każe unikać dróg, na których nie ma tagu wskazującego na przydatność dla roweru. W Polsce infrastruktura rowerowa jest wciąż słaba więc po włączeniu avoid_unsafe, wyliczona trasa jest zwykle zupełnie nieoptymalna bo mocno ciągnie do jakiejkolwiek infrastruktury w pobliżu. Być może to by się sprawdziło w Gdańsku bo słyszałem, że mają tam już dużo ścieżek ale w Krakowie to porażka. Nie potrafię tak z głowy odpowiedzieć dlaczego na Twoim przykładzie trasa z avoid_unsafe lawiruje między domkami ale sam byś chyba tak nie pojechał mając do dyspozycji ścieżki wzdłuż Korczaka i Kalinkowej? To intrygujące dlaczego trasa w tym przypadku ewidentnie unika ścieżek ale nie wiem kiedy będę mógł to sprawdzić bo wiozę dziś komputer domowy do serwisu. Tak czy inaczej, avoid_unsafe jest mało przydatne. Właśnie dlatego zmodyfikowałem profil trekking aby uzyskać efekt avoid_unsafe w sytuacji braku infrastruktury rowerowej.
W kwestii highway=path,bicycle=designated oczywiście masz rację. Poprawiłem już wczoraj ale nie zdążyłem odpisać. Dodałem również preferencję dla highway=footway,bicycle=yes. Niestety, nie zdążyłem tego potestować. Zrobię to niedługo ale niekoniecznie dzisiaj.

Z nowym profilem całkiem ładnie liczy, różne trasy próbowałem i generalnie także i ja bym tak wybrał, jeśli znajdę coś dziwnego oczywiście napiszę.

@ndmystko Orientujesz się, czy można w profilu zaszyć kary za obiekty punktowe? Konkretnie chciałbym dodać karę za przejazd przez traffic_calming.
Jeszcze drobna uwaga do routingu rowerowego - prowadzi przez drogi z access=no np. http://brouter.de/brouter-web/#zoom=16&lat=52.25375&lon=20.90221&layer=OpenStreetMap&lonlats=20.898432,52.251865|20.905545,52.255188&nogos=&alternativeidx=0&format=geojson

Ale tam jest bicycle=yes, dlatego prowadzi

Faktycznie, nie zauważyłem. Dzięki.

Tak, robi się to w sekcji “context:node”. Ciebie interesuje ostatni fragment, gdzie obliczany jest initialcost dla węzła. Prawdopodobnie musisz zmienić “0” (czwarta linia od dołu, samo 0 w linii) na “switch traffic_calming= 0 1”, gdzie 1 to wartość kary, którą musisz dobrać eksperymentalnie. Powyższy wpis oznacza: “jeśli brakuje traffic_calming to koszt 0 a w przeciwnym przypadku 1”. Teraz nie mam jak tego sprawdzić więc nie obiecuję, że zadziała.

Bardzo udane narzędzie. Warto by też dodać obsługę bicycle/bicycle:forward/bicycle:backward = use_sidepath by nie kierować na trasę która jest nielegalna.

Czy mógłbyś dać tym opublikowanym zasadom jakąś otwartą licencję? Pozwala to na uniknięcie cyrków z prawami autorskimi.

A czy masz jakikolwiek przykład, gdzie wyliczona trasa prowadzi po głównej drodze z tagiem use_sidepath a jednocześnie obok biegnie ścieżka rowerowa? Bo tak czy inaczej potrzebowałbym przykładowej lokalizacji do przetestowania. W moim skrypcie preferencje są tak mocno przesunięte w kierunku bezpieczeństwa, że trudno mi sobie wyobrazić taką sytuację.

Na ile się znam na licencjach i prawach autorskich to nic nie trzeba robić. W tej chwili profile nie są licencjonowane więc możesz z nimi zrobić co zechcesz. BRouter też nie wspomina o jakiejkolwiek licencji więc mogłem użyć istniejące profile aby je dostosować do własnych potrzeb. Prawa autorskie mógłbym najwyżej komuś przekazać ale nie wiem czy ktokolwiek jest zainteresowany :slight_smile:

z http://www.openstreetmap.org/?mlat=50.0757&mlon=19.8883#map=13/50.0757/19.8883 do http://www.openstreetmap.org/?mlat=50.0656&mlon=19.9256#map=13/50.0656/19.9256 prowadzi obok DdR w tym miejscu: http://www.openstreetmap.org/?mlat=50.0671&mlon=19.9053#map=15/50.0671/19.9053

http://brouter.de/brouter-web/#zoom=16&lat=50.0671&lon=19.9056&lonlats=19.8883,50.0757|19.9256,50.0656

use_sidepath dodałem tam dzisiaj, nie wiem jak często brouter importuje zmiany z OSM

Nie, oznacza to iż autor ma do nich pełne prawa autorskie i inni mogą coś robić jedynie w ramach dozwolonego użytku (np. nie mogę legalnie opublikować nowej, lepszej wersji).

Jeśli jesteś autorem to możesz w komentarzu w profilu dorzucić (skopiowane z http://commons.wikimedia.org/wiki/Template:PD-user )

Bo przecież dajesz start w takim miejscu, jak inaczej ma routing poprowadzić? :smiley: Cofnąć się na ddr po jednokierunkowej? Przesuń punkt za skrzyżowanie i zobaczysz co się wydarzy.

edit:
ja nie widzę use_sidepath na Armii Krajowej, sądzę że tam mogłoby się znaleźć?

Gdyby to była prawda to by znaczyło, że nielegalnie zmodyfikowałem oryginalny profil BRoutera. Moje rozumienie prawa autorskiego i licencji jest takie jak opisano w wikipedii: “Właściciel praw autorskich, znaku handlowego lub patentu może (i często to robi) wymagać od innych posiadania licencji jako warunku użytkowania lub reprodukowania licencjonowanego utworu.”
Czyli posiadam prawa autorskie i dzięki temu mogę nadać konkretną licencję jako warunek użytkowania. Jeśli nie nadam to każdy może korzystać/reprodukować a ja dalej posiadam prawa autorskie do mojej pracy.
http://pl.wikipedia.org/wiki/Licencja_(prawo)
Opublikowany przeze mnie profil routingu to w 15% moja praca a w 85% praca autora BRoutera. Publikuję “swój” profil w ten sam sposób jak autor BRoutera, czyli bez licencji określającej (limitującej) warunki użytkowania.

Do kwestii routingu wzdłuż Armii Krajowej odniosę się później bo proxy w pracy mi nie pozwala… Podobnie jak przemas75, nie widzę gdzie dodałeś use_sidepath. Jeśli dobrze pamiętam to poprzednie dane były z 1 września a obecne z 8 września.

Mam na myśli Reymonta - http://www.openstreetmap.org/?mlat=50.0671&mlon=19.9053#map=15/50.0671/19.9053 (trzeba załadować profil linkowany w pierwszym poście by tam znalazło trasę, niestety z tego co widzę nie da się tego zrobić odpowiednio budując link).

Tak, ale nie wszędzie i w większości przypadków nie na obu nitkach.

No więc nic nie trzeba przesuwać :slight_smile: Wypróbowałem link Mateusza i BRouter na początkowym odcinku prowadzi pod prąd. Autor oryginalnego profilu uznał, że każdy rowerzysta może prowadzić rower pod prąd, o ile będzie to mocno “karane” czyli stosowane w wyjątkowych wypadkach. W tym przypadku algorytm wyliczył, że lepiej poprowadzić rower te kilka metrów pod prąd niż jechać kilkaset metrów drogą highway=secondary. Chyba słusznie, jeśli wysoko wyceniamy bezpieczeństwo?

Mateusz, czyli taka trasa:
http://brouter.de/brouter-web/#zoom=18&lat=50.066671&lon=19.906751&lonlats=19.901948,50.067587|19.9256,50.0656&layer=OpenStreetMap&nogos=&alternativeidx=0&format=geojson
Faktycznie, wtedy residential prowadzi.

Na 99% przyczyną jest szlak rowerowy poprowadzony ulicą a nie DdR: http://cycling.waymarkedtrails.org/pl/?zoom=17&lat=50.0669&lon=19.9064&hill=0.695 W takiej sytuacji jazda asfaltem jest jeszcze “tańsza” (i krótsza!) niż równoległą drogą dla rowerów. Czy Ty w tamtej okolicy pojechałbyś asfaltem czy DdR? Ja nie mam zdania.
Natomiast Twoje użycie use_sidepath na Reymonta wydaje mi się błędne. Ten tag jest stosowany gdy jazda równoległą ścieżką jest nakazana prawem. Przecież można jechać ulicą na tym odcinku, prawda? Wcale nie jest oczywiste, że DdR jest lepsza bo każdy użytkownik kolarzówki wybierze tam asfalt. To profil routingu powinien decydować czy trasa poprowadzi tam asfaltem czy DdR.

Na web kliencie pojawiły się 2 nowe profile:

edit2
Ciekawe jakie zmiany wnoszą , oczywiście zarówno “poziomki” jak i obudowane maja swoją specyfikę jazdy , poruszania się itd. i ciekawy jestem jakie są zmiany w stosunku np. do trekkinga.