Recently did some research about snap-to-road functionality. In this blog post, I will try to share results and compare some edge cases where coordinates are missing or GPS noise is present.

Tech stack: Angular, leaflet with map box map provider.

  • Red - actual coordinates
  • Blue - Mapbox
  • Green - Google
  • Purple - Bing

Bing road interpolation works over longer road periods, but at the same time, it ignores visite to gas stations. Mapbox and Google acknowledge fact that there were few coordinates at the gas station

Mapbox, Google, and actual coordinates go as a straight line, however, bing interpolates large distance coordinate jump.

A strange example of how Google decided to stop interpolation and just draw straight lines for some reason. Bing is the winner for this scenario, perfectly snapped to the road.

Great example showing different interpolation algorithms between Mapbox and Google. Google makes a corner, while Bing just continues straight.

Goole tries to make a corner but gives up in the middle.

Mapbox only provides snap to closest road and this is clearly visible when we compare with Google and Bing snap to the road with interpolation.

Latitude,Longitude or Longitude,Latitude

This was a long-lasting question and now I know that there is no correct answer.

Latitude,Longitude - Google, Bing

Longitude,Latitude - Mapbox

Final thoughts

It won't be fair to compare accuracy, I'm drawing all roads on MapBox tiles.

Bing will try to keep going straight when interpolating, while Google will wiggle around and try to include all points in the interpolated route. This brings to the main difference, Bing is more likely to remove original points to make a route while Google is more likely to add points in between.

There is no winner, this research showed fundamental differences between these providers. Based on the situation all of them are valid options.

Google MapBox Bing
Price 10 USD per 1000 requests 2 USD per 1000 requests Unable to find, need to contact with exact quote.
Snap-to-road Great Doesn't have Best
Road selection Tries to make much more turns and include all original points in the route. The closest road can be configured with max distance from the point (5-50meters). Will try to interpolate a straight road and will ignore some coordinates to do so.