Skip to main content
Wat is een distance matrix? Reistijden, APIs en routing
Guides

Wat is een distance matrix? Reistijden, APIs en routing

Een distance matrix is een raster van reistijden en afstanden tussen veel oorsprongen en bestemmingen. Leer hoe een distance matrix API werkt

Brent van der Heiden6 min read
#distance matrix#distance matrix api#travel time#routing#fleet dispatch#maps api

Een distance matrix is een raster van reistijden en afstanden tussen veel oorsprongen en veel bestemmingen. Het is de datastructuur achter elke "dichtstbijzijnde winkel"-ranking, elke dispatchbeslissing voor bezorgingen en elke route-optimalisatie-solver. Wanneer een applicatie de beste uit veel kandidaten op rijtijd moet kiezen, doet een distance matrix het werk eronder.

Deze gids legt uit wat een distance matrix daadwerkelijk is, hoe reistijd verschilt van hemelsbrede afstand, waar matrices opduiken in productiesystemen, en welke valkuilen teams bijten zodra de inputset groter wordt dan een handvol punten.

Wat een distance matrix werkelijk is

In zijn simpelste vorm is een distance matrix een tweedimensionale tabel. De rijen zijn oorsprongen, de kolommen zijn bestemmingen, en elke cel bevat twee getallen: een afstand en een duur. Met N oorsprongen en M bestemmingen heeft de matrix N maal M cellen. Een request met 25 chauffeurs en 25 jobs produceert 625 cellen in één call.

De waarden in die cellen komen van een routing engine die door een echte wegennetgraaf loopt. Hij kiest het snelste pad van elke oorsprong naar elke bestemming, telt de segmentkosten op, en geeft het totaal terug. Dat is fundamenteel anders dan een haversine-berekening, die een rechte lijn trekt tussen twee coördinaten en negeert dat gebouwen, rivieren en eenrichtingsstraten bestaan.

Een coördinatenpaar vertelt je waar twee punten zijn. Een distance matrix vertelt je wat het daadwerkelijk kost om ertussen te komen.

Afstand vs duur

Drie verschillende getallen worden vaak "afstand" genoemd, en ze door elkaar halen is de meest voorkomende bug in routing-code.

Haversine-afstand is de groot-cirkelafstand tussen twee latitude- en longitude-paren. Snel te berekenen, vereist geen netwerkcall, en is fout voor elke taak die rijden inhoudt. Een haversine-afstand van 2 km kan een rit van 7 km zijn zodra je rekening houdt met de rivier die je niet kunt oversteken.

Wegennet-afstand is de lengte van het werkelijk berijdbare pad. Het houdt rekening met eenrichtingsstraten, afslagbeperkingen en de topologie van de weggraaf. Dit is wat een distance matrix API teruggeeft in het distance-veld.

Duur met verkeer is de tijd die de rit kost gegeven huidige of voorspelde verkeersomstandigheden. Een snelwegsegment van 12 km is zes minuten om 02:00 en vijfentwintig minuten om 17:30. Productiesystemen die om ETAs geven, vragen verkeers-bewuste duur op en geven een vertrektijd mee zodat de routing engine congestie correct kan modelleren.

Voor ranking en dispatch wint duur bijna altijd van afstand. Een chauffeur kan het niet schelen dat de dichtstbijzijnde job 800 meter verder weg is als het vier minuten van de rit afhaalt.

Waar distance matrices opduiken

Distance matrices draaien stilletjes onder de meeste logistieke en locatie-bewuste features.

  • Toewijzing van bezorgers: elke openstaande order wordt gematcht tegen elke beschikbare chauffeur. De dispatcher kiest de cel met de laagste duur die de voertuigcapaciteit en shiftbeperkingen respecteert
  • Fleet dispatching en rebalancing: ride-hailing- en last-mileplatforms berekenen elke paar seconden matrices tussen voertuigen en vraagzones om auto's bij de rijders te houden
  • Ranking van winkel- en venuelocators: in plaats van de vijf dichtstbijzijnde winkels op haversine terug te geven, berekent de locator een kleine matrix van de gebruikerslocatie naar de kandidaten en rangschikt op rijtijd
  • ETA-berekeningen op schaal: marktplaatsen met veel gelijktijdige orders bundelen ETAs in matrix-calls in plaats van duizenden single-route-requests af te vuren
  • VRP-solvers: vehicle routing problem solvers (OR-Tools, jsprit, commerciële optimalisatoren) vereisen een volledige cost matrix als input. De kwaliteit van de routingoplossing is begrensd door de kwaliteit van de matrix die je hem voert
  • Site selection en territoriumplanning: analisten berekenen matrices tussen kandidaatlocaties en klantenclusters om het magazijn te kiezen dat de totale rijtijd minimaliseert

In al deze is de matrix het bulk-rekenprimitief. Het is wat een systeem in staat stelt te redeneren over "de beste van velen" zonder de kosten van N maal M individuele routing-calls te betalen.

Valkuilen in productie

Distance matrices zijn makkelijk op dag één en worden snel lastiger.

Asymmetrie is de standaard. Echte wegennetten hebben eenrichtingsstraten, gescheiden rijbanen en asymmetrische afslagkosten. De cel op (A, B) is zelden gelijk aan de cel op (B, A). De matrix als symmetrisch behandelen om geheugen te besparen is een van de klassieke oorzaken van verkeerde routing in dispatchsystemen.

De N maal M-kosten. Een 100 bij 100-matrix heeft 10.000 cellen. Een 500 bij 500-matrix heeft 250.000 cellen. Kosten en latency groeien kwadratisch. De meeste productiesystemen splitsen matrices in chunks (50 bij 50 of 100 bij 100), parallelliseren de requests en cachen resultaten die niet vaak veranderen, zoals de matrix tussen een vaste set magazijnen en een vaste set winkels.

Variantie naar tijdstip. Een matrix berekend om 03:00 is niet geldig om 17:00. Als je dispatchlogica afhangt van verkeer, vraag dan een verkeers-bewuste matrix op tijdens beslismoment of pre-compute een kleine set tijd-gebucketeerde matrices (ochtendspits, dal, avondspits) en kies de juiste.

Batching en rate limits. Distance matrix APIs rekenen per element, niet per request, en de meeste providers cappen de grootte van een enkele call. Plan vanaf dag één voor chunking en backpressure in plaats van het te ontdekken op schaal.

Garbage in, garbage out bij coördinatenkwaliteit. Een matrix is alleen zo goed als de coördinaten die hem voeden. Een geocode die landde aan de verkeerde kant van een gescheiden snelweg produceert een wild verkeerde duur. Valideer inputcoördinaten voordat ze het matrix-request ingaan.

Distance matrices in MapAtlas

De MapAtlas Distance Matrix API berekent volledige N bij M-matrices van reistijd en afstand over een echt Europees en mondiaal wegennet. Hij ondersteunt auto-, vrachtwagen-, fiets- en voetgangerprofielen, accepteert verkeers-bewuste requests met een vertrektijd, en is gebouwd voor de batchgroottes die echte dispatch- en optimalisatieworkloads nodig hebben.

Voor workloads die verder gaan dan ranking, koppelt de Distance Matrix API natuurlijk met de Optimize Route API, die een matrix en een set stops neemt en een geordende route teruggeeft die de totale rijtijd minimaliseert, en met de Isochrone API voor "alles bereikbaar binnen X minuten"-filters die de kandidaatset al verkleinen voor de matrix-call.

Een distance matrix is niet glamoureus. Het is gewoon een raster van getallen. Maar het is het raster van getallen dat "vind de beste uit velen" verandert van een N maal M routing-nachtmerrie naar één bulk-request, en dat ene stuk data goed krijgen is wat een echt logistiek product onderscheidt van een demo met vijf pinnen op een kaart.

Veelgestelde vragen

Wat is een distance matrix?

Een distance matrix is een N bij M-raster van reistijden en afstanden tussen een set oorsprongen en een set bestemmingen. Elke cel beantwoordt één vraag: hoe lang duurt het om van oorsprong i naar bestemming j te komen, en hoe ver is het. Moderne distance matrix APIs berekenen de waarden over een echt wegennet in plaats van als hemelsbrede afstanden, dus de resultaten houden rekening met eenrichtingsstraten, afslagbeperkingen en routeerbare geometrie.

Wat is het verschil tussen afstand en duur?

Afstand is hoever je over het wegennet reist, in meters of kilometers. Duur is hoe lang het duurt, in seconden, rekening houdend met snelheidslimieten, verkeer en wegklasse. Ze zijn niet uitwisselbaar. Twee routes kunnen dezelfde afstand en zeer verschillende duur hebben, en de meeste productie-use-cases (ETA, dispatch, ranking) geven om duur. Een goede distance matrix API geeft beide terug voor elke cel.

Wanneer moet ik een distance matrix gebruiken in plaats van losse routes?

Gebruik een distance matrix wanneer je veel kandidaten moet vergelijken: de dichtstbijzijnde vijf winkels uit vijftig rangschikken, een bezorging toewijzen aan de dichtstbijzijnde beschikbare chauffeur uit twintig, of een vehicle routing problem solver voeden. Een single routing endpoint N bij M keer aanroepen is traag en duur. Een matrix-endpoint geeft dezelfde data terug in één request, geoptimaliseerd voor bulkberekening.

Zijn distance matrices symmetrisch?

Bijna nooit in echte wegennetten. De rit van A naar B is zelden hetzelfde als B naar A vanwege eenrichtingsstraten, gescheiden snelwegen, afslagbeperkingen en asymmetrisch verkeer. Een productie-distance-matrix-API geeft een volledig N bij M-raster terug, geen driehoekige helft. Als je de matrix inklapt om geheugen te besparen, stuur je chauffeurs aan de verkeerde kant van de weg.

Was dit nuttig? Deel het.

Over de auteur

Brent van der Heiden

Geschreven door

Brent van der Heiden

Co-Founder & CEO at MapAtlas

Brent built MapAtlas out of a conviction that developers deserve location APIs with fair pricing and genuine end-user privacy. He writes about geospatial infrastructure, AI search visibility, and how location data powers the products people rely on every day.

Alle artikelen bekijken
Terug naar blog