Author Topic: Brouter - offline router service pro cyklisty a turisty - volná diskuze  (Read 50264 times)

Offline menion

  • Administrator
  • Professor of Locus
  • *****
  • Posts: 11436
  • Thanked: 317 times
    • View Profile
    • http://www.asamm.com
  • Device: SGS7
Zdravím pánové,

Libore máš perfektní přehled. Je to tak ... pokud dojde k přepočtu, Locus testuje jestli uživatel přepočtenou trasu použil a pokud se ukáže že ani první ani druhý přepočet je vždy negativní (tzn. ignorovaný uživatelem), apka hodí na přepočtenou trasu, pár metrů dozadu, dočasný no-go bod a zkusí přepočet znovu.

Takže ano, čas k zablokování nevhodné cesty je v podstatě daný 3x vzdáleností pro přepočet.

Tohle jsme právě řešili někdy před půl rokem a v podstatě ani BRouter ani GraphHopper nemají použitelnou techniku pro řešení problému na jejich straně, takže jsem to musel udělat v Locusu a vymyslel jsem to takto. A alespoň mě praxe ukazuje že to funguje dobře. Jediná výtka, že občas by se hodilo zablokovat cestu zpět dříve, tedy no-go bod již po prvním ignorování přepočtu a ne až po druhém ...

Jinak tohle je celkem dost podstatná věc takže o aktuální provedení se rád podělím a stejně tak si rád poslechnu nápady na vylepšení.

Ideas, wishes, problems
Advanced topics, public discussion, sharing of knowledges, testing beta versions: you're here!
 

Offline poutnikl

  • Padavan of Locus
  • ***
  • Posts: 485
  • Thanked: 45 times
    • View Profile
    • My Brouter Profiles
  • Device: Xiaomi MI A2 (6-128G) / And9-Pie / LocusMap Pro
@Žajdlík Josef  Takže když dáš vzdálenost pro přepočet trasy 100m, tak při 300m deviaci od původní trasy Locus toho vracení nechá, aspoň tak tomu rozumím.

Sent from my Xiaomi MI A2 / Android 9, via Tapatalk
« Last Edit: October 02, 2019, 10:53:45 by poutnikl »
https://github.com/poutnikl/Brouter-profiles/wiki
When a user digs profiles up from the GitHub repositories,
they will be hopefully wrapped in some wiki knowledge....  :-)
 

Offline Žajdlík Josef

  • Padavan of Locus
  • ***
  • Posts: 330
  • Thanked: 14 times
    • View Profile
  • Device: Xperia M, Alcatel One Touch II, Samsung A3 (2017)
Pokud mohu, tak za sebe bych navrhl následující řešení:
Přidat do Přepočítávaní trasy (je možné nastavit i v presetech) položku: Zákaz otočení po: XX metrech. Kontrolovalo by se asi jenom zda nastavená hodnota není menší než Vzdálenost pro přepočet. Položka Zákaz otočení by pak řídila, kdy se vloží dočasný NoGo bod. Nemuselo by to být ani moc složité na programování.
Zkuste o to pouvažovat.

@poutnikl Je to přesně jak píšeš. 100 m znamená zákaz novou trasu bez otočení po 300 metrech.
 

Offline Žajdlík Josef

  • Padavan of Locus
  • ***
  • Posts: 330
  • Thanked: 14 times
    • View Profile
  • Device: Xperia M, Alcatel One Touch II, Samsung A3 (2017)
Ahoj Poutníku, opět bych měl jeden dotaz ohledně profilu do Brouteru. Občas jezdíme na výlety s kamarádem, který po obrně jezdí na handbajku. Kopce pro něj nejsou až takový problém, ale prudká stoupání ano. Tak se chci zeptat, zda je možné v profilu ovlivňovat výběr cesty i nějakým parametrem, který bere v úvahu sklon cesty.
Potřeboval bych si vytvořit profil, který co nejvíce omezí cesty se sklonem nad 7 %, vyloučí nezpevněné cesty (záda hanbajkera jsou jen 6 cm nad vozovkou) a pokud možno se vyhne i největším kopcům.
 

Offline poutnikl

  • Padavan of Locus
  • ***
  • Posts: 485
  • Thanked: 45 times
    • View Profile
    • My Brouter Profiles
  • Device: Xiaomi MI A2 (6-128G) / And9-Pie / LocusMap Pro
Zkus profile   FB-LT-tertiaries-paved-notsteep  z přílohy.

Je postavený na původním Fastbike-lowtraffic-tertiaries, který používáš.

Úpravy:
  • Trochu  zpřísněná pravidla pro nezpevněné cesty.
  • Zvýšená penalizace nezpevněných a "nejistých" cest
  • Zvýšený práh penalizace uphillcutoff
  • Zrušena penalizace uphillcost -  kvůli značně zvýšenému uphillcutoff by BRouter mohl dělat umělé kličky, aby si snížil průměrné stoupání.
  • Implementovaný uphillcostfactor =  SteepHillsCostFactor  ( 200 ) pro stoupani větší než  TooSteepUphill   (7.0)


Patřičné konstanty jsou vypsané v úvodu profilu, pro případné experimentování v BRouter-web/LocusMap a v reále.

Záměrně jsem nepoužil natvrdo zákaz >7% a nezpevněných cest, jen vysokou penalizaci.

U stoupání je tam navíc problém, že se tam můžou dostat artefakty ze SRTM, třeba náhlý vestup výšky o 10-20 m kvůli lesu, strmým kopcům nebo vysokým stavbám.

Quote
assign   UnpavedCostfactor      50.0
assign   PavingUnsureCostfactor 8.0
assign   TooSteepUphill         7.0
assign   SteepHillsCostFactor   200  # Implemented as BRouter variable uphillcostfactor for uphill > TooSteepUphill

assign   validForBikes        1

# the elevation parameters

assign downhillcost switch consider_elevation 80 0
assign downhillcutoff 0.5
assign uphillcost 0
assign uphillcutoff TooSteepUphill

assign elevationpenaltybuffer  = 2.0
assign elevationmaxbuffer      = 10.0
assign elevationbufferreduce   = 3.0
« Last Edit: October 16, 2019, 17:50:38 by poutnikl »
https://github.com/poutnikl/Brouter-profiles/wiki
When a user digs profiles up from the GitHub repositories,
they will be hopefully wrapped in some wiki knowledge....  :-)
 

Offline Žajdlík Josef

  • Padavan of Locus
  • ***
  • Posts: 330
  • Thanked: 14 times
    • View Profile
  • Device: Xperia M, Alcatel One Touch II, Samsung A3 (2017)
Díky moc, já na plánování v naprosté většině případů používám vlastní profil - přikládám. Je to už sice starší kousek, ale plánuje velmi vyváženě pro dálkové cykloturistické trasy. Pokud to neznamená velkou zajížďku tak se vyhýbá nezpevněným cestám i kopcům. Preferuje cyklostezky, ale už trochu méně cyklotrasy. Myslíš, že by šel ten parametr na omezení stoupání vložit do něj? Zkusil jsem ten Tebou přiložený profil na rovinnáté trase Veselí n. M. - Kroměříž a chová se divně. Všimni si jak na snímku ...16 zbytečně ignoruje cyklostezku podél vody a na snímku ...49 zase vede trasu po rozbité cestě lesem i když podél železnice vede naprosto po rovině pohodlná cyklostezka.
 

Offline poutnikl

  • Padavan of Locus
  • ***
  • Posts: 485
  • Thanked: 45 times
    • View Profile
    • My Brouter Profiles
  • Device: Xiaomi MI A2 (6-128G) / And9-Pie / LocusMap Pro
Díky moc, já na plánování v naprosté většině případů používám vlastní profil - přikládám. Je to už sice starší kousek, ale plánuje velmi vyváženě pro dálkové cykloturistické trasy. Pokud to neznamená velkou zajížďku tak se vyhýbá nezpevněným cestám i kopcům.Preferuje cyklostezky, ale už trochu méně cyklotrasy.

To je zajímavé, já si pamatuji, že jsem Ti tento profil vytvářel, a pak jsem myšlenky z něj použil pro template v2.7. Nedávno jsem jej hledal, ale nenašel.

Tehdy se Ti ale nakonec pro plánování tras cyklopoutí víc líbil výše uvedený,  založený na fastbike.

Takže ses k němu zase vrátil. :-) ( nebo používáš oba pro různé účely ? )

Quote
Myslíš, že by šel ten parametr na omezení stoupání vložit do něj?

Samozřejmě, že by šlo, klidně jej do toho profilu přenes.

Quote
Zkusil jsem ten Tebou přiložený profil na rovinnáté trase Veselí n. M. - Kroměříž a chová se divně. Všimni si jak na snímku ...16 zbytečně ignoruje cyklostezku podél vody a na snímku ...49 zase vede trasu po rozbité cestě lesem i když podél železnice vede naprosto po rovině pohodlná cyklostezka.

No, ono se očekává, že se profil bude  chovat s vysokými penalizacemi divně, a ještě divněji by se choval, kdy tam byl tvrdý zákaz.

Screenshoty tras mohou být zavádějící, důležitější jsou tabulky s hodnotami pro konkrétní úseky, pro trasu, kterou navrhuje profil, a pro trasu, kterou bys očekával.

Až tam se totiž pozná, odpovídají-li data z RD5 souborů  realitě, a jestli profil pracuje tak jak má, nebo ne.

Taky šlo jen o první nástřel, je potřeba hodnoty parametrů doladit, kompromis mezi vyhýbáním se nežádoucím cestám a nenecháním se zastrašit výškovým artefaktem nebo krátkým úsekem bez asfaltu.

Sent from my Xiaomi MI A2 / Android 9, via Tapatalk
« Last Edit: Yesterday at 05:42:50 by poutnikl »
https://github.com/poutnikl/Brouter-profiles/wiki
When a user digs profiles up from the GitHub repositories,
they will be hopefully wrapped in some wiki knowledge....  :-)
 

Offline Žajdlík Josef

  • Padavan of Locus
  • ***
  • Posts: 330
  • Thanked: 14 times
    • View Profile
  • Device: Xperia M, Alcatel One Touch II, Samsung A3 (2017)
Pamatuješ si to správně. Ten profil co jsem přiložil používám na plánování soukromých cest pro fitness kolo a taky pro ten handbajk, který je na silničních kolech. Je takřka ideální. Většina profilů pro silniční kola totiž až moc preferují silnice prvních tříd. Tenhle je vyvážený opravdu skvěle, najezdil jsem s ním desítky tisíc kiláků k naprosté spokojenosti a nedám na něj dopustit.
Na cyklopoutě ale trasy porovnávám i s tím fastbajkovým, hlavně v zahraničí dává občas lepší výsledky. Na tuhle akci vždy vytvořím několik GPX pomocí různých profilů a pak je porovnávám a dolaďuji ručně pomocí http://www.mygpsfiles.com/app/. Přece jenom je to akce pro více než 100 lidí (letos 180) a jedná se o děti, sportovce, ekolisty i bajkery, jede se i v dešti, trasa nesmí být moc dlouhá, ale přitom musí být zajímavá. I tak se občas při plánování utnu, ale to ani jinak nejde, prostě moc požadavků.

Tu část kódu co je v citaci rámečku mohu vložit nad část # bstart /global?
 

Offline poutnikl

  • Padavan of Locus
  • ***
  • Posts: 485
  • Thanked: 45 times
    • View Profile
    • My Brouter Profiles
  • Device: Xiaomi MI A2 (6-128G) / And9-Pie / LocusMap Pro
Tu část kódu co je v citaci rámečku mohu vložit nad část # bstart /global?

No, ne tak úplně.  Je tam obousměrná návaznost na zbytek profilu, musí se to sešít správně. Později se na to mrknu.
https://github.com/poutnikl/Brouter-profiles/wiki
When a user digs profiles up from the GitHub repositories,
they will be hopefully wrapped in some wiki knowledge....  :-)
 

Offline poutnikl

  • Padavan of Locus
  • ***
  • Posts: 485
  • Thanked: 45 times
    • View Profile
    • My Brouter Profiles
  • Device: Xiaomi MI A2 (6-128G) / And9-Pie / LocusMap Pro
Implementoval jsem TooSteepUphill do Tveho profilu ( a pridam do templaty 2.7, mozna az 2.8 )

Podstatné je,  že budeš muset experimentovat s parametry  níže, protože se to může a nekdy i bude bít s malými ale prudkými stoupáními vyskovych SRTM artefaktů.

Dole je výtah z parametrů, zkopirovany z prilozeneho profilu:

Například, pokud je použitý přílis nízky TooSteepPenaltybuffer  ( elevationpenaltybuffer ),
může profil preferovat cestu přes kopec, místo kolem řeky/zeleznice, protože u řeky/zeleznice jsou příkré artefakty, jak se SRTM ne a ne pořádne strefit do nadmořské výšky cesty.

Dole je link na ukázkový příklad  "Obrany to Bilovice at NE border of Brno, Czech Republic",
kde pokdu snizís parametr z 12 na 10 ( BRouter default je 5 ), tak Tě to požene přes kopec,
protože cesta podél řeky je  :příliš prudká".  Něco podobného může být v zástavbě.

Bude se muset zvolit kompromis mezi potlacenim artefaktu a nepotlačením realných, krátkých ale strmých stoupání.

Quote
# BEGIN  - Internal parareters for hills = 6 - experimental avoiding of too steep hills via strongly penalizing uphillcostfactor

# slope below this uphill limit ( % ) has no penalization

assign   TooSteepUphill         6.0 

# hilly penalization is done by uphillcostfactor and downhillcost, not by uphillcost.
# can be used optionally, but is rather overrun by the uphillcostfactor.

assign   TooSteepUphillCost     0.0

# Implemented as BRouter variable uphillcostfactor for uphill scope > TooSteepUphill + TooSteepbufferreduce                                     
# with the transient zone TooSteepUphill .. TooSteepUphill + TooSteepbufferreduce
# There is normal costfactor for  uphill scope <= TooSteepUphill
# and  costfactor = TooSteepCostFactor for uphill scope >= TooSteepUphill + TooSteepbufferreduce

assign   TooSteepCostFactor     200
                                 
# The width of the uphill scope transient zone                                       
assign   TooSteepbufferreduce   2.0

# Altitude buffer to catch steep SRTM artefacts
# It has to be high enough, otherwise it may suggest an over the hill route
# instead of a flat route along the river, with very steep SRTM artefacts,
# like the route From Obrany to Bilovice at NE border of Brno, Czech Republic
# if TooSteepPenaltybuffer  = only 10.0  ( BRouter default is 5.0 )
# http://brouter.de/brouter-web/#map=14/49.2412/16.6745/standard&lonlats=16.649287,49.227407;16.674995,49.245971

assign   TooSteepPenaltybuffer  12.0

# Altitude buffer for downhills, does not affect uphill penalization with zero uphillcost.
assign   TooSteepMaxbuffer      20.0

# END  - Internal parareters for hills = 6 - experimental avoiding of too steep hills via strongly penalizing uphillcostfactor
« Last Edit: Today at 13:37:45 by poutnikl »
https://github.com/poutnikl/Brouter-profiles/wiki
When a user digs profiles up from the GitHub repositories,
they will be hopefully wrapped in some wiki knowledge....  :-)