I’ve seen similar questions asked on this board but none that resolved the issue. Following the documentation and launched local server with:
java -D"dw.graphhopper.datareader.file=arkansas-latest.osm.pbf" -jar graphhopper-web-9.1.jar server config-example.yml
Drive time is 3 hours 7 minutes at:
http://localhost:8989/maps/?point=34.1396%2C-90.9841_34.1396%2C+-90.9841&point=34.1901%2C-92.0199_34.1901%2C+-92.0199&profile=car&layer=OpenStreetMap
Online maps an identical drive but estimates the time at 2 hours 35 minutes which is consistent with the estimate by other routing services.
https://graphhopper.com/maps/?point=34.1396%2C-90.9841_34.1396%2C+-90.9841&point=34.1901%2C-92.0199_34.1901%2C+-92.0199&profile=car&layer=OpenStreetMap
What do I modify on my local instance so that drive time matches online?
Thanks
Unfortunately the code for the ETA estimates is still not fully open source - only the tooling necessary for it.
At least you’ll need to implement the urban_density feature: Add urban density encoded value to identify built-up areas by easbar · Pull Request #2637 · graphhopper/graphhopper · GitHub (For backward compatibility we are still using a proprietary mechanism for this same “urban_density” mechanism and we cannot release this as open source - hence the differences.)
With this encoded value you can set different estimated speeds based on rural or city. This is the most important difference. You can even further improve ETAs with the country-specific max_speed feature: default speed limits by karussell · Pull Request #2810 · graphhopper/graphhopper · GitHub
You can easily tweak the ETA via a custom model by request and iterate very quickly with the tuning. Once you are satisfied you use this custom model as your car.json and get the usual fast response speed. If you like you can contribute this improved car.json to the open source project so that others get improved ETAs.
Also we have turn restrictions enabled in the config and use the latest GraphHopper from master branch.