Time stamps in match result, what is the proposed way for implementation?

After map matching has been performed the result is made available in the MatchResult class.
While the input class, the GPXEntry, includes time stamps there is no such field in the
match result for the snapped point.

For statistics I would need such a time stamp field which of course can contain only an approximation.

I know that there is a getMatchMillis() method, which deliveres the total duration over all edges

Is there a propsed way how such a “faked time stamp” per node can be implemented?

1 Like

This is a really nice question and a tough undertaking. And you can do it! (I’ve done it in an earlier implementation by myself ;))

In GraphHopper you have junction nodes (or we call them tower nodes) and the ‘supporting’ nodes between the junctions, the pillar nodes. (you can assume that the speed between two junctions is unchanged, if it would change we introduce new ‘junctions’).

Having the time from the snapped points is simple, but then you need to ‘spread out’ this information to the other involved junctions. And of course, the matched result does not only contain the junction coordinates … but maybe you find a simple approximation, the first step would be to calculate the resulting speed from giving timestamps.

BTW: a completely different use case, but with a potentially similar solution, could be to estimate the time taken for GPX files without any time information.

My understanding is that your map-matching is based on “Hidden Markov map matching through noise and sparseness” paper. And as you mentioned, this procedure does not provide the travel time on each link (or time matching!). So, aside from code, I am wondering if you are aware of a method that I can implement and write the code for to get the links travel time.

It is now based on that, previously it wasn’t, please see here for further discussion: Map MatchResult to GPXEntry

Thank you for the response. I am not sure if I got your explanation though. I specifically am looking for a method to get the links travel time (or do the time matching) as well.

In the master the algorithm was based on HHM but previously it wasn’t.

get the links travel time

What do you mean here? Are you looking to associate the matched edges with an approximation of the submitted recorded times? Then see the link, where it currently is not fully associated to calculate this.

Thank you, what I need is not about associating the edges to initially entered time stamps, rather I need to have the travel time between two junctions. Kind of like allocating the travel time (time stamps differences) to the links.I know your existing procedure does not provide it, however, I am wondering if you know of any method that I can write the code for it.

I linked to the discussion where this was also required (and it is currently not done), also a sketch was presented how to fix this.