Accurate estimation of Locations is a crucial requirement not only for reliable fulfillment of transport services but also for Billing. This is because Billing requires an accurate measure of distance traveled in a Trip.
In the post on Map Matching, we discussed why the stream of GPS locations from Rider and Driver applications can point to inaccurate locations, locations that may not be on any physical road segment. In short, it is because GPS signals are noisy and sparse and may not resolve to a location on a physical road, and hence do not represent the actual or true location of the vehicle. Map Matching is the process of taking raw GPS locations and matching + mapping them to an actual location on a physical road segment.
In this post, we will specifically look at how MOOVE computes
First, the physical network of roads is represented in MOOVE as a graph, where every intersection is a node and every street between two intersections is represented as an Edge.
Of course, this representation is simplified as it does not take into account the number of lanes or one way streets. Further, we are interested in computing the distance as traversed by a MOOVE vehicle during a Trip along the nodes and edges of the graph. We call this the shortest path distance as used by routing engines using algorithms like Dijkstra’s. Please note that this is not the shortest distance between two pints as that would be the Great Circle Distance.
MOOVE Uses Google Directions APIs for routing and guidance to go from point A to Point B. For Example, it will return the shortest path between the Oberoi Hotel, Nariman Point to Mafatlal House on HT Parekh Road. To compute the distance between these two pints, we use Google’s Distance Matrix API. In general, this distance is accurate if the MOOVE Driver follows the exact directions provided by this API.
In practice, the Driver might take a different path than the path provided by the Guidance.To compute the Fare /Bill accurately, we need to compute accurate distance based on the actual path that the Driver took from A to B, the physical road segments that were traversed during the journey. This computation of actual distance using map matching is computed offline, based on stored trip data. It is implemented in MOOVE’s Anlaytics Service.