Brouter do routingu pieszego i rowerowego

Podpowiem, że to jest błędna interpretacja :slight_smile:
Poruszającego się dowolnym pojazdem drogą obowiązują tylko i wyłącznie znaki umieszczone po prawej stronie ( oraz niektóre powtarzane nad pasami) z czego wynika, że w przypadku DDR czy DDRiP po lewej stronie ( nawet dwukierunkowej) wszelkie znaki tam umieszczone nie odnoszą się do rowerzysty poruszającego się po drugiej stronie jezdnią.
Przytoczę tu najlepszy opis i wyjaśnienie tego zagadnienia:

Mateuszu, strona, którą przytoczyłeś jest mocno nieaktualna. Podaje stan z 2010 roku. Kodeks drogowy jest ciągle zmieniany. “Doczekaliśmy się” definicji drogi dla rowerów oraz pasa ruchu dla rowerów. W ten “cudowny” sposób jednym podpisem prezydenta część dwukierunkowych dróg rowerowych stała się jednokierunkowymi pasami ruch dla rowerów. I wygląda na to, że przejmują się tym tylko tacy społecznicy jak my. Zarządy dróg, policja i inne “odpowiedzialne” osoby mają to w (dobrze wiecie gdzie). Przykład: finał akcji “Możesz przechodzić przez jezdnię na kórnickiej”. Wprawdzie dotyczy to ruchu pieszych ale opisuje podobne zjawisko.

Tak więc na 100% pewni tego, że w danym miejscu można/nie wolno/należy/itd. jechać rowerem możemy być tylko trzymając w ręku prawomocny wyrok stosownego sądu.
No dobra nie na 100%.

Pozdrawiam

Grzegorz

PS. Znak P-23 wskazuje tylko, że dana część drogi przeznaczona jest dla rowerów, ale nie określa kierunku ruchu.

Czesc

Super profil z pierwszego postu :wink: korzystam w okolicach legnicy i swietna zabawa z tego wychodzi. Pytanie tylko jedno. Jak zrobic zeby wszystko bylo jak jest ale priorytet na najkrotsza trase. teraz potrafi mi wyznaczyc duzo dluzsza droge byle by nie po ulicy. ale czasem jednak wole przejechac/przejsc 1km po asfalcie niz 3 razy dluzej przez ciekawsze drogi.

dzieki

Wypróbuj oryginalne profile rowerowe broutera, w szczególności trekking lub fastbike.

dzieki. Cos mi te oryginaly nie pasowaly ale potestuje ponownie pod tym kątem… zobaczymy :wink:

Czemu tak mało dyskusji w takim temacie? Gdyby ktoś nie wspomniał gdzieś o Brouter to chyba nigdy nie udało by mi się go znaleźć. A właśnie czegoś tak fajnego pod rower szukałem. No więc potrzebny mi taki profil uśredniony na rower, który będzie jednocześnie wyznaczał jak najkrótszą trasę, jednocześnie omijał to co trzeba ale również przejedzie drogi o gorszej nawierzchni. Czyli coś mniej więcej pod rower trekkingowy. Dlatego że lubię jeździć często rowerem po różnych trasach z daleka od domu i zawsze uruchamiam wcześniej nawigację taki profilek bardzo by mi się przydał. Zamierzam również uzupełniać drogi o odpowiednie parametry jak surface, smoothnees itd. w swoich okolicach.
A żaden ze znalezionych i sprawdzanych profili nie wyznacza idealnie tras i nie bierze pod uwagę wszystkiego co bym chciał.

Prośba o utworzenie profilu z myślą o rowerze który:

  • Omija zawsze bezwzględnie promy (niezależnie jak bardzo to wydłuży trasę)
  • Omija zawsze bezwzględnie drogi w budowie i planowane (niezależnie jak bardzo to wydłuży trasę)
  • Omija zawsze bezwzględnie autostrady i drogi ekspresowe (itp. drogi po których nie można jeździć rowerem wedle prawa) (niezależnie jak bardzo to wydłuży trasę)
  • Omija bezwzględnie zawsze drogi poniżej (tracktype=grade 4) (czyli omija zawsze tracktype=grade 5) (niezależnie jak bardzo to wydłuży trasę)
  • Omija bezwzględnie zawsze drogi z surface=grass (trawa) lub mud (błoto) lub sand (piasek) (niezależnie jak bardzo to wydłuży trasę)
  • Omija bezwzględnie zawsze drogi w których lub na których jest tag (ford=yes)(Bród) (niezależnie jak bardzo to wydłuży trasę)
  • Omija bezwzględnie zawsze drogi w których jest tag poniżej (smoothness=bad). A więc omija drogi (smoothness=very_bad) (smoothness=horrible) (smoothness=very_horrible) (smoothness=impassable)
    (niezależnie jak bardzo to wydłuży trasę)
  • Zawsze prowadzi po (highway=cycleway), jeżeli w pobliżu trasy biegnie taka ścieżka
  • Omija ścieżki (highway=patch) i wybiera (higway=track). Chyba że ominięcie takiej ścieżki wydłuży bardzo trasę (np. o 2 km) (Taki scenariusz gdzie występuje dużo patch i track występuje głównie w lasach, patch z racji tego że są mniej szerokie niż track (a przynajmniej tak powinno to wyglądać jeśli jest dobrze mapowane) to takie wyznaczanie jak dla mnie będzie bezpieczniejsze.
  • Nie omija schodów (highway=steps) (chyba że maksymalnie 50 metrów obok istnieje normalny przejazd bez schodów)
  • Pozwala jechać po chodniku (highway=footway) (Ale tylko w wyznaczonych zasadach jak na tej stronie: http://wrower.pl/prawo/jazda-rowerem-po-chodniku,2032.html
  • Wyznacza jak najkrótszą trasę
  • Bierze pod uwagę restrykcje drogowe takie jak droga jednokierunkowa (czyli wszystkie które według prawa musi przestrzegać również rowerzysta)
  • Nie pozwala bezwzględnie nigdy jechać gdy są takie tagi: bicycle=no, acces=no, acces=private w jakiejkolwiek drodze, przeszkodzie, bramie itd. (niezależnie jak bardzo to wydłuży trasę)
  • Pozwala jechać gdy jest bicycle=yes, permissive lub designated
  • Omija bezwzględnie zawsze drogi w których lub na których jest tag poniżej (mtb:scale=1) czyli pomija (mtb:scale=2) (mtb:scale=3) (mtb:scale=4) (mtb:scale=4) (mtb:scale=6) (niezależnie jak bardzo to wydłuży trasę)
  • Wybiera ogólne zasady: prowadzić po lepszej drodze (wyższej w hierarchii lub lepszą nawierzchnią lub typem drogi) jeżeli prowadzenie po lepszej drodze niż gorszej będzie w danym wypadku ekonomiczniejsze)

Może wystarczy tylko odpowiednio zmodyfikować znaleziony prze zemnie profil.
Jest to profil dla roweru trekkingowego stworzony przez pewnego użytkownika (na trasy gdy jest sucho)
Z tego co widać w jego changelogu to był często poprawiany zanim został oznaczony jako finalna wersja:
https://raw.githubusercontent.com/poutnikl/Brouter-profiles/master/Trekking-Dry.brf
Niestety nie wiem czemu ten profil np. nie omija dróg które mają bicycle=no. I pewnie inne błędy się w nim też znajdą.
Dlatego że nie wiem jak go zmodyfikować aby uzyskać efekt pożądany to prośba do kogoś kto się orientuje.

Na koniec jeszcze pytanie czy brouter uwzględnia wyznaczanie przez punkty VIA (pośrednie). Ponieważ sprawdzałem wyznaczanie tras w OsmAnd (brouter wybrany jako domyślny algorytm wyznaczania) i OsmAnd nie uwzględnia punktów pośrednich (VIA) gdy używamy go z Brouter :(. A więc można wyznaczać tylko punkt startowy i docelowy. Czyżby OsmAnd nie współpracował w pełni z Brouter?

Ja korzystam z broutera w Locusie (da się to podpiąć) i tam można dodawać punktu pośrednie (ale takich dokładnych ustawień tam nie ma.

@Geoinformatyczek:
Proponuję wypróbować profile dostępne na: https://github.com/poutnikl/Brouter-profiles/wiki/Bicycle-Trekking-profiles
Każdy z profili na w nagłówku sekcję konfiguracji więc możesz go w łatwy sposób podkręcić, w zakresie przewidzianym przez autora. Najwygodniej wypróbować dany profil online, wklejając go w lewym dolnym rogu: http://brouter.de/brouter-web/
Wybierasz znaną Ci okolicę i sprawdzasz wyliczoną drogę.

@ndmystko wiem o tych profilach dlatego wcześniej dałem link do jednego z nich, aby nie tracić czasu na tworzenie od początku własnego profilu i aby ktoś mógł go zmodyfikować tak aby pasował do każdej z zasad które wypisałem. Dlatego że żaden z tych profili w oryginale nie spełnia wszystkich zasad które chcę (ale nie wiele mu brakuje do tego) i nikt się nie podjął modyfikacji to postanowiłem samemu spróbować. Metodą prób i błędów udało mi się w końcu znaleźć linijki które odpowiadają za ustawienia które mnie interesują. W profilu zmieniłem i dodałem kilka rzeczy brakujących, aby był jeszcze lepszy. Jedyne czego nie wiem to jaki kod dodać w profilu, aby umożliwiał on omijanie w wyznaczaniu tras tagów ford=yes (Bród). Więc aby przez takie miejsca nie prowadził. Gdyby ktoś mógł napisać jak to zrobić :slight_smile: A więc oprócz tej jednej rzeczy mam w tej chwili prawie idealny profil na rower który można sobie dostosowywać w miarę potrzeb (brakuje tej jednej rzeczy) i zamierzam go jeszcze udoskonalać pod inne typy jazdy (np. jazda dzienna, nocna, itp) oraz dodać informacje obok danych funkcji po polsku co zmienia dana funkcja itp. po czym udostępnić te profile, aby były dostępne dla każdego. Jeśli mamy swoją okolicę odpowiednio naniesioną na mapach to brouter i jego wyznaczanie tras to jest coś niesamowitego, ale zwykły użytkownik nie będzie umiał tak modyfikować profili.

Proponuję zduplikować istniejącą, podobną funkcjonalność. Obsługa schodów wydaje się dobrym kandydatem. Poniżej linijki:
assign allow_steps 1 # 1 as default
dodałbym:
assign allow_fords 0 # 0 as default
a poniżej:

  • switch highway=steps switch allow_steps 40 100000*
    dodałbym:
  • switch ford=yes switch allow_fords 40 100000*

W ten sposób masz kontrolę czy można przekraczać brody.

A więc dodanie takich linijek faktycznie skutkuje omijaniem dróg z ford=yes. Ale niestety tylko wtedy, gdy tag: ford=yes jest dodany jako odcinek wzdłuż szerokości danej rzeki.
Tak jak widać na poniższym screenie (Przerywana niebieska linia to odcinek z umieszczonym w nim tagiem ford=yes)

Gdy oznaczony jest sam tag na przecięciu drogi i rzeki wtedy bród nie jest omijany, a czasem zdarzają się takie tagowania. Tak jak na tym obrazku:

Według opisu na wiki brody powinno się tagować podobnie jak mosty a więc odcinek idący “po wodzie” powinien mieć tag highway= oraz ford=yes. Czyli tak jak na pierwszym screenie z tym że te odcinki (drogi i rzeki) powinny być połączone węzłem w miejscu przecinania się. Więc nawet na pierwszym screenie istnieje błąd chociaż samo miejsce brodu (pomijając rzekę) naniesiono odpowiednio i powiedzmy że dokładnie.

https://wiki.openstreetmap.org/wiki/Pl:Key:ford

A zaznaczać można tagiem ford=yes w miejscu przecięcia się drogi ze strumieniem/rzeką (screen 2) gdy nie mamy informacji na temat brodu a więc np. widocznej na podkładzie szerokości rzeki/strumienia. Pomijając to, że bród na screenie drugim może okazać się w rzeczywistości możliwy do przebycia tylko czołgiem.

Ponieważ zazwyczaj widać na podkładzie szerokość rzeki/strumienia to lepiej trzymać się zasady ze screenu 1. Jak sprawdziłem nawet za granicą są takie miejsca jak ze screenu 2. Dlatego wolałbym mieć pewny kod który ominie zarówno zasadę z pierwszego screena i drugiego. Więc jeśli by się dało dodać taki kod który umożliwił by omijanie również skrzyżowań dróg i rzek na których jest tag ford=yes (Screen 2) to mógłby udostępnić linijki kodu jakie dodać. Tak czy inaczej posprawdzam wszystkie miejsca w Polsce z tagiem ford=yes i ewentualnie zmienię co będzie trzeba. Wolę mieć jednak routing uwzględniający jak najwięcej rzeczy i pewność że nie wjadę w rzekę rowerem, której nie ma szans do przejechania i tracić z tego tytułu czas. Choć obok brodu często znajduje się prowizoryczny mostek dla pieszych, którym można również przeprowadzić rower, ale to już oddzielna rzecz którą również odpowiednio trzeba nanosić na mapę.

Tak czy inaczej dzięki wielkie za kod, bo omijanie takich miejsc jak bród jest bardzo istotne podczas jazdy normalnymi pojazdami :wink: Dziwne że nie zostało dodane w oryginalnych profilach.

assign defaultaccess =
if ( ford=yes ) then false
else
if ( access= ) then true # add default barrier restrictions here!
else if ( access=private|no ) then false
else true

Kursywą zaznaczyłem dodany fragment. Przetestowałem tutaj:
http://www.openstreetmap.org/#map=18/49.47192/21.37777

A swoją drogą to bardzo zabawny przypadek. Tydzień temu byłem w Beskidzie Niskim i z przyjemnością ćwiczyłem forsowanie brodów na Wisłoce, rowerem. Kilkanaście razy w 2,5h :slight_smile:

Brakuje mi rozwiązania dwóch problemów dotyczących BRouter, aby mieć idealny routing:

  1. Aby OsmAnd używając BRouter wyznaczał trasy również biorąc pod uwagę punkty pośrednie(VIA). Ponieważ to nie działa i z tego co czytałem na zagranicznym forum jest to wina OsmAnd. (Programy typu Locus nie spełniają moich wymagań)
  2. Dzięki kodom podanym przez ndmystko uzupełniłem profil rowerowy o odpowiednie linijki i teraz mam idealny profilek pod jazdę w każdym miejscu :wink: Głównie o rowerowy mi chodziło, ale brakuje mi jeszcze dodania tej samej funkcjonalności (omijania brodów w dwóch sytuacjach występujących w terenie jak na screenach wyżej) do profilu samochodowego i pieszego (Może mi się to przydać w przyszłości). A więc jakie linijki kodu dodać i w których miejscach do niżej wymienionych profili, aby omijały one brody, ponieważ trzeba dodać jednak inne niż te w rowerowym profilu.
    Samochód: https://github.com/poutnikl/Car-Profile/blob/master/Car-test-Template.brf
    Pieszy: https://raw.githubusercontent.com/poutnikl/Brouter-profiles/master/Hiking.brf

Zgadza się, ale obsługuje punktu nogo dodane w OsmAnd.
A jak to nie odpowiada, to brouter obsługuje punkty pośrednie, ale w tym celu musisz ręcznie uruchomić brouter i w nim wybierać punkty from, via i to.

I tak uzyskana trasa gpx pojawi się w Osmand jako brouter0. Sprawdzone.

Jeszcze żebym wiedział jak to zrobić :wink: przydała by się mała instrukcja

Spróbuję.
W Osmand punkty from, via i to muszą zostać zapisane jako ulubione. Zamykasz Osmand’a. Następnie uruchamiasz aplikację BRouter, wybierasz BRouter App, wybierasz profil routingu, wybierasz punkty jw, uruchamiasz Calc Route. Pojawi się dosyć fajna wizualizacja optymalizacji routingu. Opuszczasz Brouter’a, ponownie uruchamiasz Osmand’a i wyświetlasz na mapie trasę o wspomnianej nazwie brouter0 (, która automatycznie została zapisana w odpowiednif folderze).
Teraz pozostaje tylko nawigować “po śladzie”.

Powodzenia

ps Wcześnie jeszcze należy za pomocą Dawload Menagera “pobrać” w BRouterze region obejmujący swoim zasięgiem trasę routingu.

Wczoraj z ciekawości wyznaczyłem punkt docelowy oraz dodałem punkty pośrednie w programie OsmAnd z ustawionym w opcjach Brouter i ku mojemu zdziwieniu trasa została wyznaczona uwzględniając punkty VIA. Bez dodatkowego kombinowania itp. rzeczy. Sprawdziłem jeszcze dla pewności ustawienia czy na pewno jest ustawiony domyślny silnik obliczania tras na Brouter i rzeczywiście był. A więc prawdopodobnie OsmAnd w najnowszej wersji (2.4.6) zlikwidował problem wyznaczania tras z punktami VIA z użyciem Brouter :wink: Lub jest to zasługa zaktualizowanego Brouter, ponieważ też została wypuszczona nowsza wersja w między czasie. Tak czy inaczej jest to dobra wiadomość dla wielu którzy też lubią używać OsmAnd+Brouter. Bo wyznaczanie tras bez działających punktów VIA było sporym ograniczeniem. Nie dawno byłem na długiej wycieczce pieszej i nie wyznaczyłem punktów pośrednich tylko dlatego że wiedziałem że używając sposobu jaki opisał kazadam jest troszkę niewygodne gdy się jest już w trasie. Teraz w końcu będzie to o wiele łatwiejsze i będzie można to wykorzystywać :slight_smile: W dodatku nawigowanie po śladzie (jak z opisu użytkownika kazadam) ma taką wadę że wyznaczona trasa nie zostanie zmodyfikowana gdy z niej zboczymy. Teraz nie będzie tych ograniczeń :slight_smile: Jeszcze tylko czekać na większą integrację OsmAnd+Brouter w której nie musieli byśmy zmieniać ręcznie profili w Brouter tylko bezpośrednio w OsmAnd.

W poszukiwaniu wyznaczania tras idealnych (głównie dla roweru), udało mi się w końcu znaleźć takie jak chciałem. Do tego celu wystarczyło tylko trochę zmodyfikować profile pountnikl. Moje poprawki dotyczą głównie dodania brakujących funkcji (np. omijanie brodów), których nie ma w oryginalnych profilach pountnikl, oraz ogólnie tego aby wyznaczanie tras trzymało się bardziej restrykcyjnie zasad w określonych sytuacjach. Trasy dzięki temu są pewniejsze. Więc zmian nie jest wiele ale uzupełniają one te małe braki których brakowało w profilach pountnikl :slight_smile:

Do pobrania z tego linku profile z moimi modyfikacjami, wraz z dokładnymi opisami każdego z nich:
http://www22.zippyshare.com/v/Cll3J0M0/file.html

Link z profilami będzie aktualizowany gdy pountnikl wyda nowsze wersje lub sam coś w nich poprawię/dodam.

W środku również znajduje się odpowiednik każdego z profili w oryginale, aby można było sobie porównać co zostało dodane/zmienione
Profile można sobie porównać np. na tej stronie: https://text-compare.com/

W przygotowaniu:

  • Opis funkcji i co zmienić aby uzyskać pożądany efekt w profilu

Brakujące funkcje lub błędy których nie wiem jak poprawić (lub brouter ich nie obsługuje):

  • Główny błąd we wszystkich profilach jest taki że jeśli nasza pozycja według GPS nie będzie na jakiejś drodze/ścieżce która jest naniesiona w OSM, to wyznaczenie trasy w BRouter będzie wyświetlało błąd dopóki nie znajdziemy się na takiej drodze (trzeba sprawdzić ponieważ prawdopodobnie błąd występuje tylko podczas wyznaczania tras na stronie brouter a nie podczas nawigacji

  • W profilach Pieszy1 i Pieszy 2 dodanie odpowiedniego kodu aby wyznaczania trasa brała pod uwagę smoothness

  • W profilach Pieszy1 i Pieszy 2 należy zrobić tak aby trasy były wyznaczane jak najkrócej jednocześnie omijając ulicę

  • Dla profili samochodowych dodanie starania się omijania/całkowitego omijania traffic_calming=*
    Znajdujących się na jezdni elementów osadzonych
    w celu uspokojenia ruchu pojazdów przez wymuszenie zmniejszenia prędkości, czyli np. progi zwalniające.

  • Dla profili samochodowych zaimplementowanie czegoś takiego jak “Unikaj zawracania nadkładając…” i np. możliwość ustawienia ile metrów drogi nadkładać aby uniknąć zawracania. Jeśli w ogóle da się coś takiego zrobić. To jest po to aby zminimalizować niewygodne sytuacje jak zawracanie na drodze na której jest to ciężko zrobić. Bez tego routing czasem każe zawracać na drogach na których niewygodnie jest taki manewr wykonać.

  • W Profilu Rower1 szukam kodu który odpowiada za omijanie wszystkich dróg nieutwardzonych w mieście (ponieważ w tej chwili tego nie robi) (czyli drogi które są wyżej niż highway=track ale które są jednocześnie nieutwardzone)

  • Brakuje omijania brodów w profilach samochód, gdy bród zaznaczony jest wzdłóż drogi a nie jako punkt. (Bród dodany jako punkt na przecięciu rzeki i drogi jest omijany)


Można zgłaszać błędy, braki oraz konkretne linijki kodu które ewentualnie dodam/poprawię :slight_smile:

Coś się stało z BRouter że przestał mi wyznaczać trasy po drogach polnych - profil samochód. Dokładnie sprawdziłem kod profilu - car nawet ten najnowszy i nie udało mi się znaleźć rozwiązania. Mam najnowszą wersję BRouter i profile w których wszystko działało ale przestało. Mało tego przestało również funkcjonować omijanie ważnych przeszkod czyli fors=yes (brody).