What is map matching?
Taking a sequence of GPS positions, which are always a few metres off, and working out which roads the device was actually travelling on. The result is a line that follows the streets, with the distance and time of that line rather than of the jittery fixes.
What is it for?
Ride and run logs that show the real route and the real distance, fleet and delivery apps that need to know which streets a vehicle used, mileage claims, and any analysis that starts with 'which road was this on'. The matched line also draws cleanly, where raw fixes zigzag.
How much does it cost?
One unit per request, from the same monthly pool as maps, geocoding and routing, whatever the number of fixes up to the cap.
How many points can one request carry?
Up to a hundred fixes as a list of coordinates. Longer traces can be sent as a single encoded polyline instead, or split into chunks that are matched one after the other.
How noisy can the trace be?
The three traces on this page were jittered by 4, 8 and 15 metres and all matched to within a few dozen metres of the true length. Much larger errors, long gaps or a device that stopped for a while can still be matched, but the further the fixes are from any road the more the matcher has to guess.
Which travel profiles are supported?
Car, bicycle and pedestrian. The profile tells the matcher which roads the device could have been on, so a bike trace is not snapped onto a motorway.
Does it use timestamps or speed?
No. It takes positions in order and matches on geometry alone, which is enough for the route and the distance. If you need per-fix speeds, compute them from your own timestamps against the matched line.
What comes back exactly?
The same envelope as a route: a summary with the matched distance and time, a leg with the matched geometry as an encoded polyline and the manoeuvres along it, and the snapped start and end. The code that handles a route handles this.
Is there a free tier?
Yes. The free plan includes 10,000 units a month with no card and no sales call, which is 10,000 matched traces if that is all you spend them on. It is a hard cap, so a runaway loop cannot produce a bill.
Where are my requests processed?
In the European Union, end to end. No part of the request path touches a US-controlled provider, which is what makes the GDPR and data-residency conversation short. We publish a DPA and a full sub-processor list.