[GraphHopper] turn restrictions

Peter graphhopper at gmx.de
Mon Aug 18 16:22:41 UTC 2014


Bruno,

please see the turn_costs branch where the turn cost configuration has
moved into the flagencoder. The API is still under development and the
branch is not yet merged into master:

new CarFlagEncoder(5,5,1) // enabled for restrictions only
new CarFlagEncoder(5,5,3) // enabled for turn costs also (this works in
unit tests but turn costs is currently unused for OSM data)

or from config file the string "car|turnCosts=true" can be used or via
new EncodingManager("car|turnCosts=true")

see for more details regarding TraversalMode.EDGE_BASED_* and related
docs in e.g. EdgeBasedRoutingAlgorithmTest

As stated in the docs EDGE_BASED_1DIR should be as fast as the default
node based traversal but could very rarely produce some unnecessary
detours when turn restrictions are involved. Use EDGE_BASED_2DIR if you
need the most precise routes but this is roughly 2 times slower, where
EDGE_BASED_2DIR_UTURN also considers u-turns and is a lot slower, but
I'm not sure if this is necessary at all in practise.

Regards,
Peter.

> Hi Peter,
> I am trying to get the turn restrictions working. But i can not get it
> to route accordingly. Actually I can not find out how to enable it.
> Also I saw that TurnCostStorage.getTurnCost() is never referenced,
> except in some in commented code in GraphhopperStorage... maybe there
> is no Weighting class implemented that takes into account the turn
> restrictions yet?
>
> Here is my test, the turn restriction being tested should prevent us
> from going from Blanicka into Urugayska.
>
>    
>     String osmFile= "../../maps/OLD/prague-latest.osm.pbf";
>    
>    
>     GraphHopper graphHopper=new GraphHopper().setInMemory(true)
>                 .setGraphHopperLocation("/tmp/ghLoc")
>                 .setOSMFile(osmFile)
>                 .disableCHShortcuts()
>                 .setEncodingManager(new EncodingManager("car",4,20));
>    
>     graphHopper.importOrLoad();
>    
>    
>     GHRequest ghRequest=new GHRequest(new GHPoint(50.07483120416,
> 14.4390392303),new GHPoint(50.07333, 14.43869));
>
>     GHResponse ghResponse=graphHopper.route(ghRequest);
>     System.err.println(ghResponse.getPoints());
>
>
>
> route returned :
> http://imgur.com/QWLgoOL
>
>
> Route expected goes around Namesti Miru square:
> http://imgur.com/MftaocZ
>
> Thanks,
> Bruno
>
>
> _______________________________________________
> GraphHopper mailing list
> GraphHopper at openstreetmap.org
> https://lists.openstreetmap.org/listinfo/graphhopper

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstreetmap.org/pipermail/graphhopper/attachments/20140818/11728316/attachment.html>


More information about the GraphHopper mailing list