I am working on a project which requires real time map matching. I am currently using ArcGIS but not sure whether it will work.

Here is what happens with my system:

the cell phones sent GPS fixes every five seconds to my server and I need to do real time map matching to snap the point on to one of the links of the map and store the matched points.

ArcGIS has a 'near' tool for snapping the point to nearest link. However, the input to the tool has to be a shapefile for the points.

I am wondering how I can deal with the real time data I get in ArcGIS. Creating a shape file for each point?

Any other suggestion for accomplish this work?

5 Answers 5


Create a point feature from your GPS location (presumably stored as a table format file) using Make XY Event and Copy Features and then use this with the Near tool - or try the Spatial Join tool with the 'closest' option. You will likely want to store these intermediate features in a temporary/scratch workspace that can be deleted after obtaining the final output (which you could Append to your database).

  • Hi, Thanks you for your help. I did exactly the way you said and it is solved now. However, there is a new problem. The computation takes seven to ten seconds to print the final results for a point. But what I can developing is a real time application which is better to be controlled within at most 2 to 3 seconds. Is the import of Arcpy the problem since this is a large module? Could you please tell me where the problem is and any way to improve the system? (The whole system is in Java, The python module I developed will be called from the main codes)
    – user14631
    Commented Feb 2, 2013 at 6:10
  • So It seems that the arcpy is imported every time. Is this where the problem is? Thanks.
    – user14631
    Commented Feb 2, 2013 at 6:16
  • 1
    You're welcome to the first comment. As for your second comment, I recommend that you post a new question (perhaps with reference to this original one) about how to improve your code, along with the example code so we can all assess it better.
    – ccn
    Commented Feb 2, 2013 at 21:29

If a point is 'near' really depends on many things not just on the closest road but also on previous points. You can have a look into the algorithm and tools that I would use.


There's a real-time map matching solution (however it's in Java not ArcGIS) that implements Hidden Markov Model map matching, see here: https://github.com/bmwcarit/barefoot

It's quite robust and map matches GPS tracks to OpenStreetMap data, also in real-time (referred to as online map matching). (UPDATE:) What you may be looking for is implemented as a "tracker stand-alone server" (with a REST-like API).

enter link description here

  • Would you know if this functionality is present now?
    – nha
    Commented Dec 7, 2016 at 11:13
  • 1
    Well, yes this functionality is available now but it's not part of ArcGIS (if this is the question). The result looks like this: github.com/bmwcarit/barefoot#tracker-server-quick-start
    – sema
    Commented Dec 7, 2016 at 13:37

You're likely to run into computational bottlenecks and consistency problems with any package that doesn't have a proper routing or at the minimum a road network abstraction. If you are using OSM data for the road network, check TrackMatching from my profile. Check this thread map-matching algorithms.


You can have a look at new service API of microsoft 'Snap to road'. For details you can see this link

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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