Viac

Otočte obmedzenia v programe GraphHopper


Krátka verzia

Zdá sa, že obmedzenia odbočenia nie sú pri smerovaní GraphHopperu brané do úvahy, aj keď ich problémy s GitHub hovoria, že sú implementované. Vie niekto stav tohto? Je implementovaný, ale nie je zlúčený, neuvoľnený, nerozbalený alebo jednoducho nie je zapnutý? Alebo je v nižšie uvedenom príklade problém s údajmi? Aký je stav obmedzení odbočenia v iných otvorených smerovacích riešeniach založených na OpenStreetmap?

Podrobná verzia

Situácia

GraphHopper Maps je moje riešenie smerovania. Zdá sa, že je to najlepšia služba smerovania s údajmi OpenStreetmap, čo je zase najkompletnejšia databáza pre cyklistické trasy a chodníky.

Keďže robím aj nejaké mapovanie OpenStreetmap a chcel som prejsť na sofistikovanejšie funkcie, ako sú obmedzenia odbočenia, pokúsil som sa poučiť z príkladov iných. Zdá sa, že ich JOSM uznáva, ale GraphHopper ich nezohľadňuje.

Príklad

Tu je príklad strednej zložitosti s krížením, ktoré obsahuje obmedzenie pravého odbočenia a obmedzenie obrátenia. Zdá sa, že OpenStreetmap má správne obmedzenia odbočenia a zdá sa, že im JOSM rozumie (súdiac podľa dopravných značiek uvedených v grafickom znázornení).

Všimnite si toho, že v oboch prípadoch som vybral „od“ cez, takže sa vyberie vo vizualizácii mapy a môžete potvrdiť, že medzi vstupmi „od“ a „do“ nie je žiadna zámena.

Keď to však vyskúšam na GraphHopper, ukáže sa, že sa neberie do úvahy žiadne z týchto dvoch obmedzení. Odbočenie doprava a následné otočenie U na trase, ktorú GraphHopper navrhuje, sú v skutočnosti nezákonné:

Implementácia GraphHopper

Preto ma zaujímalo, či je problém v dátach OpenStreetmap alebo v GraphHopper.

Z problému č. 2 GitHub „Podpora obmedzení odbočenia a nákladov“ chápem, že funkcia obmedzení odbočenia bola v skutočnosti implementovaná pred chvíľou. Existuje však súvisiaci problém GitHubu č. 55 „Počiatočná implementácia podpory obmedzenia odbočenia khuebner“, ktorý hovorí o niektorých problémoch s spájaním s príliš zložitým kódom v rámci jedného potvrdenia. Tiež odkazuje na zlúčenie rozdelené na niekoľko častí, žiadosti o stiahnutie #133, #134, #135 a #158. Všetky sú označené ako „zatvorené“ alebo „zlúčené“.

Otázky

Vie niekto, v akom stave je to? Je implementovaný, ale nie je zlúčený, neuvoľnený, nerozbalený alebo jednoducho nie je zapnutý? Alebo je v tomto prípade problém s údajmi? Aký je stav obmedzení odbočenia v iných otvorených smerovacích riešeniach založených na OpenStreetmap?


Funkcia obmedzenia odbočenia (tiež náklady na odbočenie) v súčasnosti nie je v režime zrýchlenia implementovaná a tento režim zrýchlenia sa používa v Mapách GraphHopper. Môžete si však jednoducho stiahnuť GraphHopper a povoliť režim flexibility v súbore config.properties a bude fungovať:

prepar.chWeighting = žiadny graf.flagEncoders = auto | turnCosts = true

Aktualizácia: všetky režimy vrátane režimu rýchlosti podporujú obmedzenia odbočenia (aj všeobecnejšie náklady na odbočenie) od v0.12.


edit: odráža aktualizovanú syntax súboru config.properties

prepar.ch.weightings = žiadny graf.flag_encoders = auto | turn_costs = true


Pozri si video: 2019: Flexible Routing with GraphHopper (Október 2021).