Handling of outliers in the map matching process


I’ve been trying to use graphhoper as a map-matching solution for noisy or downright bad gps tracks in the hopes that is has a better quality than the osrm match service (http://project-osrm.org/docs/v5.5.1/api/#table-service).

Unfortunately, in case of outliers or slightly off gps points that end up on nearby streets, the map-matching process fails to accurately detect the outliers or at the very least predict the correct road to snap to.

I’ve attached an image point both these issues (on the left of the image is the outlier and on the right, the incorrect snapping):

Is osrm, we still have problems with matching to the correct road, but outliers at least get eliminated.

In graphhopper, we don’t get the expected results for either case.

Am I by any chance doing something wrong? I would have expected that for basic cases such as matching to the correct road, not a nearby one, to be detected.

Also, are there any guidelines on basic cases of what the algorithm can and can’t do, so we can gauge the capabilities of graphhoper?

Thank you,