Map matching snaps raw GPS breadcrumbs to the road network. Feed a recorded trace (2–100 points) and get back the road-accurate route that was actually driven: matched geometry, distance, time, road names, and a 0–1 match confidence. `matched: true` only means a route was returned — gate on `match_status`: `full` when every input point was matched or interpolated onto the road network and the match is one continuous section, `none` when no point was, otherwise `partial`. `coverage` gives the per-point counts, `unmatched_ranges` (0-based input indexes that did not match) and `route_sections` (above 1, the geometry, distance and time cover only the first section — split the trace there). `match_status` is null, with `coverage.unavailable_reason`, when the per-point check could not be completed. Sparsely-reported traces (consecutive fixes farther apart than the default breakage distance — e.g. fleet units reporting every several minutes on a highway) can split into multiple sections; increase `breakage_distance_m` to keep them as one. Total matched distance is limited to 200 km per call — split longer sparse traces by distance, not only by the 100-point cap. Use for fleet trace cleanup, mileage from GPS logs, and reconstructing routes from telemetry. `road_names` come from the route's maneuver points, so they cover the roads the route turns onto or starts on — for the name of every segment actually travelled, use `trace_attributes`. For planning a route between places, use `directions` instead.