Ignore or Override Speed Limits in Java with GraphHopper 7.0

I’m working on a project that involves route calculations for ambulances using GraphHopper 7.0. I really like how GraphHopper can
be customized.

In order to analyze the time to arrival I wanted to modify the speed limits (making them higher) according to the type of road, but I haven’t been successful despite trying several alternatives.

I tried custom models with speed statements but I cannot multiply by a higher number and the limit works by having the max velocity as the upper bound.

I saw some examples using CarFlagEncoder but I think that is not part of the API anymore. The same happens with setEncodingManager.

Could anyone guide me on how to dynamically override or ignore the default speed limits in GraphHopper?

Thank you very much!

A stub of what I am doing in the default mode:

hopper = new GraphHopper();
CustomModel model = new CustomModel();
Profile customProfile  = new CustomProfile("car_custom")
LMProfile lm_profile = new LMProfile("car_custom");
GHRequest req = new GHRequest(startLat, startLon, endLat, endLon);
CustomModel model = new CustomModel();
# I tired some combinations of limit and multiply but always works for doing it 
# less velocity than the maximum. Not higher
#		com.graphhopper.json.Statement.If(
#				"true",  
#				com.graphhopper.json.Statement.Op.MULTIPLY, "0.9"));

GHResponse rsp = hopper.route(req);

Increasing speeds (relative to the speeds used during import) does not work in combination with LM. You either need to disable LM, or setup your custom model before the import, i.e. delete your graph folder and set the custom model in config.yaml.

Thank you @easbar . You were right. Setting up the custom model before the import worked flawlessly

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.