Walking duration estimate: elevation ignored?

Hi, I was using graphhopper to plan a hiking tour and i noticed that the elevation data is only taken into account with bicycle but not with Foot .
Here is an example of a steep GraphHopper Route “6.46km will take 1h 17min :arrow_upper_right:1208m :arrow_lower_right:57m”

In reality this tour would be about 3 hours (on steep trails you have an elevation gain of about 400 meter/hour instead of 4km/hour.

Does anyone know what’s holding GraphHopper back from taking into account the elevation data when calculating walking time? And do you know who is dedicated to this part of the GraphHopper project?

I really hope, this feature will be added soon, since the OSM and GraphHopper based maps are simply the best ones for walkers and hikers!

I think the error of osm map data is caused, not related to GH’s algorithm. search osm to have more information

Hi, welcome to our community. And yes, the elevation is not yet taken into account for hiking (like it is done for “bike2”)

Does anyone know what’s holding GraphHopper back from taking into account the elevation data when calculating walking time

It is basically two things: developing this feature and bringing it into production takes lots of time. I.e. we currently concentrate on other features and hope to get contributions e.g. from people like you :slight_smile:

Thanks for the fast response.

Since there is already a duration estimation and the elevation level shown it does look to me (as someome whose biggest code was a “chronogram counter” in PHP) like a minor edit to the code:

Change the formula
estimate = distance * 4km/h
by something like this (beware, this is pseudocode)

// Used Variables

UpSpeed=300 // according to DAV-Normative
DownSpeed=500  // according to DAV-Normative
HorizontalSpeed=4000 //  (meters/hour) according to DAV-Normative
Distance (Meters, calculated by graphhopper)
Ascend (Meters, calculated by graphhopper)
Descend  (Meters, calculated by graphhopper)

//Formula

verticaltime = Ascend / UpSpeed + Descend / Downspeed
horizontaltime = Distance / HorizontalSpeed

if (verticaltime > horizontaltime)
estimate = horizontaltime/2 + verticaltime 

else
estimate = verticaltime/2 +  horizontaltime

Find out more about the DAV-Normative

Since I have no experience in a serius project (like graphhopper) I may not be aware of additional work this change would cause. In that case I beg to bear with me. :slight_smile:

1 Like

Thanks for providing the DAV-Normative, I created an issue here: https://github.com/graphhopper/graphhopper/issues/1679.