wannesm / LeuvenMapMatching

Leuven.MapMatching toolbox for aligning GPS measurements to locations on a map.
Other
221 stars 42 forks source link

How can I get the matching points on the roadnet graph? #13

Open jiaoleixin opened 3 years ago

jiaoleixin commented 3 years ago

Hello! I've already gotten the matching section of the graph from returned values by DistanceMatcher.match(). But I couldn't get the accurate matching point by this method. What should I do? AND please give me a guide of the main classes if possible. THX!

jiaoleixin commented 3 years ago

my_plot In other words, How can I get the coordinates of the matching points on the graph(where the green lines intersect the blue ones)? Please give me a hand!

wannesm commented 3 years ago

This is available in the matcher.lattice_best property. This the best path in the lattice, thus the best match. It is not only the map nodes but also the matches on the segment in between two nodes. Each lattice entry is a matcher object that has an edge_m and edge_o object (resp the matched nodes and observed points). And each of these objects are of the Segment type and have a pi property that is the interpolated point (if it is interpolated, otherwise it is the start or end point of the segment and thus a node in the graph).

You can also look at that part in the visualisation code to see it in action: https://github.com/wannesm/LeuvenMapMatching/blob/b15d92146bb5a26948332ed06835b4714b75ebdc/leuvenmapmatching/visualization.py#L244