I have a bunch of raw GPS data points which constitute trips. I want to add semantic information to those data points. For example I'd like to be able to say that a trip consisted of taking street A, B and C.

With Openstreetmap I can download nodes and ways for a bounding box, which are again described through a bunch of nodes (lat/lng) points.

I actually have all the information I need to map my points to those of Openstreetmap. But reality is messy and my GPS data is not perfect, has outliers and goes off the road.

What is a good approach to calculate which ways or even relations belong to my GPS data?

What is the research done in this area?

Is there already a library that does all the work for me?

closed as too broad by PolyGeo Aug 21 at 11:27

Please edit the question to limit it to a specific problem with enough detail to identify an adequate answer. Avoid asking multiple distinct questions at once. See the How to Ask page for help clarifying this question. If this question can be reworded to fit the rules in the help center, please edit the question.


Maybe you can find some hints and solutions in Digitalizing GPX Points or How to Track Vehicles With GraphHopper by the developer of the OSM-based routing solution Graphhopper.

His project with your aim is called Map Matching


What you are after is a good map-matching algorithm. There are very few available off the self: see explanation and description on OSM. In case you're interested in simply using an API for that purpose, have a look at TrackMatching on my profile.

  • I was trying to use the linked to tool. It seems to be outdated. When I run it with any size of a osm file I get an Error: Value too large or too small message. This seems to be a general problem, since OSM has recently started to add ids that are bigger than what fits an int32. Link offers a solution – LeoR Feb 14 '15 at 0:47

Not the answer you're looking for? Browse other questions tagged or ask your own question.