12

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?

hannbroo
  • 166
  • 1
  • 1
  • 12
user14631
  • 121
  • 1
  • 3

5 Answers5

3

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).

ccn
  • 2,919
  • 20
  • 19
  • 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 Feb 02 '13 at 06:10
  • So It seems that the arcpy is imported every time. Is this where the problem is? Thanks. – user14631 Feb 02 '13 at 06: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 Feb 02 '13 at 21:29
1

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.

Karussell
  • 707
  • 1
  • 8
  • 19
1

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

sema
  • 445
  • 3
  • 13
  • Would you know if this functionality is present now? – nha Dec 07 '16 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: https://github.com/bmwcarit/barefoot#tracker-server-quick-start – sema Dec 07 '16 at 13:37
0

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.

Fabrice Marchal
  • 171
  • 2
  • 6
0

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

nicogis
  • 586
  • 4
  • 8