Aller au contenu principal

POST /v1/matrix

Vue d'ensemble​

Calcule les temps de trajet et les distances entre de nombreuses origines (sources) et destinations (targets) en une seule requête. Usages typiques : affectation au dépôt le plus proche, préparation de tournées de livraison (en entrée d'un optimiseur), classements par temps de trajet (« quelle agence est la plus proche pour chaque client ? »).

Coût : 1 crédit par bloc de 25 éléments entamé, avec éléments = sources × targets (une matrice 2×3 coûte 1 crédit, une 10×10 en coûte 4). Disponibilité : à partir du plan Startup. La taille maximale de la matrice dépend de votre plan : 25×25 (625 éléments) en Startup, 50×50 (2 500) en Growth, 100×100 (10 000) en Pro.

Requête​

POST https://api.geocodeme.net/v1/matrix
Content-Type: application/json

Headers requis :

  • X-Api-Key: gm_YOUR_API_KEY
  • Content-Type: application/json

Corps de la requête​

ChampTypeRequisDéfautDescription
sourcesarrayOuiaucunPoints d'origine au format [longitude, latitude] (1 à 100)
targetsarrayOuiaucunPoints de destination au format [longitude, latitude] (1 à 100)
profilestringNoncarProfil de véhicule : car, bike, foot, truck ou moto (selon le plan : bike/foot Startup+, truck/moto Growth+)
use_tollsbooleanNonaucunPrivilégier (true) ou éviter (false) les routes à péage. Profils motorisés uniquement
truck_heightfloatNonaucunHauteur du véhicule en mètres (0 à 10). Nécessite profile=truck
truck_widthfloatNonaucunLargeur du véhicule en mètres (0 à 5). Nécessite profile=truck
truck_weightfloatNonaucunPoids du véhicule en tonnes (0 à 100). Nécessite profile=truck
attention

Les coordonnées sont en ordre [longitude, latitude] (standard GeoJSON), pas [lat, lon].

Exemples de code​

curl -X POST \
-H "X-Api-Key: gm_YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"sources": [
[2.3522, 48.8566],
[2.2945, 48.8584]
],
"targets": [
[2.3730, 48.8443],
[4.8357, 45.7640]
],
"profile": "car"
}' \
"https://api.geocodeme.net/v1/matrix"

Réponse​

info

Toutes les réponses incluent les headers de limitation de débit (X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Monthly-Remaining, etc.).

{
"durations": [
[540.2, 16480.5],
[780.9, 16890.1]
],
"distances": [
[3620.0, 465800.0],
[5210.0, 468400.0]
],
"attribution": "Route data (c) OpenStreetMap contributors",
"meta": {
"took_ms": 84,
"cache_hit": false
}
}

Schéma​

ChampTypeDescription
durationsarraydurations[i][j] = temps de trajet en secondes de sources[i] vers targets[j], ou null si la paire est inroutable
distancesarraydistances[i][j] = distance en mètres de sources[i] vers targets[j], ou null si la paire est inroutable
attributionstringToujours "Route data (c) OpenStreetMap contributors"
meta.took_msintegerTemps de traitement serveur en millisecondes
meta.cache_hitbooleanIndique si la réponse a été servie depuis le cache

Cellules null : paires inroutables​

Un null dans durations[i][j] / distances[i][j] signifie que le moteur n'a pas pu relier cette paire source/destination. Le moteur de matrices est plus strict que /v1/route sur l'accrochage des points au réseau : un point situé dans une zone piétonne (ou loin de toute route praticable par le profil demandé) peut produire des cellules null dans une matrice alors que /v1/route trouve un itinéraire depuis ce même point. En cas de null inattendus, déplacez le point concerné vers la route ouverte à votre profil la plus proche, ou vérifiez-le d'abord avec /v1/nearest.

Réponses d'erreur​

Matrice au-dessus du plafond de votre plan​

{
"error": {
"code": "PLAN_UPGRADE_REQUIRED",
"message": "Your plan allows up to 625 matrix elements (sources x targets). Upgrade to raise the limit.",
"field": "sources",
"upgrade_url": "https://geocodeme.net/dashboard/billing"
}
}

Sur le plan Free, l'endpoint lui-même n'est pas disponible ("This feature is not included in your plan. Upgrade to unlock it.").

Coordonnée invalide​

{
"error": {
"code": "INVALID_PARAMETER",
"message": "Invalid coordinate at index 1 in 'targets' (expected [lon, lat])",
"field": "targets"
}
}
astuce

Tous les endpoints sont également soumis aux erreurs INVALID_API_KEY (401) et RATE_LIMIT_EXCEEDED / QUOTA_EXCEEDED (429). Consultez Codes d'erreur pour la référence complète.