Aller au contenu principal

GET /v1/route

Vue d'ensemble​

Calcule le meilleur itinéraire entre deux points du réseau routier : distance, durée, géométrie, et instructions de navigation optionnelles en français ou en anglais.

Coût : 2 crédits par requête. Disponibilité : tous les plans. Le profil car est inclus partout ; bike et foot nécessitent le plan Startup ou supérieur, truck et moto le plan Growth ou supérieur.

Requête​

GET https://api.geocodeme.net/v1/route

Header requis : X-Api-Key: gm_YOUR_API_KEY

Paramètres​

ParamètreTypeRequisDéfautDescription
fromstringOuiaucunPoint de départ au format lon,lat (par ex. 2.3522,48.8566)
tostringOuiaucunDestination au format lon,lat (par ex. 4.8357,45.7640)
profilestringNoncarProfil de véhicule : car, bike, foot, truck ou moto (selon le plan, voir ci-dessus)
geometriesstringNongeojsonFormat de la géométrie : geojson, polyline ou polyline6
stepsbooleanNonfalseInclure les instructions de navigation
languagestringNonenLangue des instructions (en ou fr), utile uniquement avec steps=true
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
Règles des options de coût
  • truck_height / truck_width / truck_weight ne sont valides qu'avec profile=truck ; avec tout autre profil, l'API renvoie un 400 INVALID_PARAMETER.
  • use_tolls ne s'applique qu'aux profils motorisés ; le combiner avec bike ou foot renvoie un 400 INVALID_PARAMETER.

Les requêtes rejetées par ces validations ne sont jamais facturées en crédits.

Exemples de code​

curl -H "X-Api-Key: gm_YOUR_API_KEY" \
"https://api.geocodeme.net/v1/route?from=2.3522,48.8566&to=2.2945,48.8584&profile=car&steps=true&language=fr"

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.).

Avec geometries=geojson (défaut) et steps=true (géométrie raccourcie pour la lisibilité) :

{
"coordinates": [
[2.3522, 48.8566],
[2.3488, 48.8589],
[2.3305, 48.8630],
[2.3079, 48.8621],
[2.2945, 48.8584]
],
"distance_meters": 6284.0,
"duration_seconds": 941.0,
"steps": [
{
"instruction": "Roulez vers l'ouest sur Rue de Rivoli.",
"distance_meters": 1520.0,
"duration_seconds": 210.0,
"type": 1,
"street_names": ["Rue de Rivoli"]
},
{
"instruction": "Tournez à droite sur Quai des Tuileries.",
"distance_meters": 980.0,
"duration_seconds": 145.0,
"type": 10,
"street_names": ["Quai des Tuileries"]
},
{
"instruction": "Vous êtes arrivé à destination.",
"distance_meters": 0.0,
"duration_seconds": 0.0,
"type": 4,
"street_names": []
}
],
"attribution": "Route data (c) OpenStreetMap contributors",
"meta": {
"took_ms": 38,
"cache_hit": false
}
}

Avec geometries=polyline (ou polyline6), la géométrie est renvoyée dans geometry_polyline (chaîne encodée) et coordinates est absent.

remarque

Cet endpoint omet les champs qui ne s'appliquent pas à votre requête au lieu de les renvoyer à null : coordinates et geometry_polyline sont mutuellement exclusifs, et steps n'est présent qu'avec steps=true.

Schéma​

ChampTypeDescription
coordinatesarrayGéométrie de l'itinéraire au format [[longitude, latitude], ...], présent avec geometries=geojson
geometry_polylinestringPolyline encodée, présent avec geometries=polyline ou polyline6
distance_metersfloatDistance totale de l'itinéraire en mètres
duration_secondsfloatDurée de trajet estimée en secondes
stepsarrayManœuvres de navigation, présent uniquement avec steps=true
steps[].instructionstringInstruction lisible, dans la langue demandée via language
steps[].distance_metersfloatLongueur de la manœuvre en mètres
steps[].duration_secondsfloatDurée de la manœuvre en secondes
steps[].typeintegerCode de type de manœuvre (convention du moteur de routage : départ, virage, arrivée, ...)
steps[].street_namesarrayNoms des rues concernées par la manœuvre
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

Réponses d'erreur​

Profil non inclus dans votre plan​

{
"error": {
"code": "PLAN_UPGRADE_REQUIRED",
"message": "The 'truck' profile is not included in your plan. Upgrade to unlock it.",
"field": "profile",
"upgrade_url": "https://geocodeme.net/dashboard/billing"
}
}

Coordonnée mal formée​

{
"error": {
"code": "INVALID_PARAMETER",
"message": "'from' must be 'lon,lat' (e.g. 2.3522,48.8566)",
"field": "from"
}
}

Dimensions camion sans le profil truck​

{
"error": {
"code": "INVALID_PARAMETER",
"message": "truck_height/truck_width/truck_weight require profile=truck",
"field": "profile"
}
}
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.