L'API Isochrones renvoie les erreurs au format JSON google.rpc.Status standard de Google Cloud :
{
"error": {
"code": 400,
"message": "Violation in GenerateIsochroneRequest.travel_duration: travel_duration must be at least 1 second and not exceed 3600 seconds (60 minutes) for DRIVE or TWO_WHEELER mode or 7200 seconds (120 minutes) for other modes",
"status": "INVALID_ARGUMENT"
}
}
Utilisez le champ status (ou HTTP code) pour gérer les erreurs de manière programmatique. Le texte message est destiné aux développeurs et peut changer. Ne l'analysez donc pas.
Lorsque vous utilisez l'API Isochrones, vous pouvez rencontrer les codes d'état d'erreur courants suivants :
400 INVALID_ARGUMENT: la requête contient des paramètres non valides ou une syntaxe incorrecte :- Limites de durée : assurez-vous que
travelDurationest au moins égal à"1s", se termine par"s"(par exemple,"1800s") et ne dépasse pas la limite du mode :3600s(60 minutes) pourDRIVEetTWO_WHEELER, ou7200s(120 minutes) pourWALKetBICYCLE. La valeur zéro ("0s"), les valeurs négatives et les valeurs inférieures à une seconde (telles que"0.5s") sont refusées. - Préférence de trafic : assurez-vous que
routingPreferencen'est pas défini surTRAFFIC_AWARElorsquetravelModeest défini surWALKouBICYCLE. Le trafic en temps réel n'est compatible qu'avecDRIVEetTWO_WHEELER. - Énumérations obligatoires : assurez-vous que
travelModeettravelDirection(FROMouTO) sont spécifiés et ne sont pas définis sur*_UNSPECIFIED. - Coordonnées d'origine (
location) : définissez à la foislatitude(en[-90, 90]) etlongitude(en[-180, 180]). Un champ omis est traité comme0sans erreur : l'omission des deux donne(0, 0), qui est rejeté ; l'omission delatitudeuniquement place l'origine sur l'équateur ; et l'omission delongitudeuniquement la place sur le méridien d'origine. - Format de l'ID de lieu (
place) : assurez-vous queplaceest un ID de lieu ou un nom de ressourceplaces/{place_id}(par exemple,"places/ChIJIQBpAG2ahYAR_6128GcTUEo"), sans segment de chemin supplémentaire, et qu'il fait référence à un ID de lieu valide. - Masque de champ (
X-Goog-FieldMask) : s'il est fourni, l'en-tête doit référencer des chemins de réponse valides tels queisochrone,isochrone.geoJsonou*. - Clé API non valide (
API_KEY_INVALID) : une clé API incorrecte ou non reconnue dansX-Goog-Api-Keyou?key=renvoie400 INVALID_ARGUMENTavec le motifAPI_KEY_INVALID.
- Limites de durée : assurez-vous que
403 PERMISSION_DENIED: échec de l'authentification ou de l'autorisation :- Aucun identifiant d'authentification (jeton
X-Goog-Api-Key,?key=ouAuthorization: Bearer) n'a été fourni dans la requête. - L'API Isochrones (
isochrones.googleapis.com) n'est pas activée dans votre projet Google Cloud, ou la facturation n'est pas activée. - Votre clé API comporte des restrictions de cible d'API, d'adresse IP ou de référent HTTP qui bloquent les requêtes vers
isochrones.googleapis.com.
- Aucun identifiant d'authentification (jeton
404 NOT_FOUND: l'origine n'a pas pu être résolue ou alignée sur le réseau routier :- Impossible de résoudre
placeen un emplacement. Vérifiez que l'ID de lieu est valide et à jour. - Le centroïde de l'origine
locationouplacese trouve plus loin d'un segment de route compatible avec le mode que la distance d'alignement maximale (environ 200 mètres, ou moins pourWALKetBICYCLE). Rapprochez la coordonnée d'une route publique ou transmettez les coordonnées d'une entrée de route au lieu d'un grand parc ou d'un ID de lieu d'un point de repère. - La coordonnée se trouve dans une zone sans données routières (par exemple, en pleine mer).
- Impossible de résoudre
429 RESOURCE_EXHAUSTED: votre projet a dépassé sa limite de quota par minute (par défaut, 300 requêtes par minute) :{ "error": { "code": 429, "message": "Quota exceeded for quota metric 'Requests' and limit 'Requests per minute' of service 'isochrones.googleapis.com'.", "status": "RESOURCE_EXHAUSTED" } }Limitez les taux de demandes client et relancez les réponses
429à l'aide d'un intervalle exponentiel entre les tentatives avec une gigue aléatoire.503 UNAVAILABLE: le service est temporairement indisponible ou surchargé. Relancez la requête avec un intervalle exponentiel entre les tentatives.500 INTERNAL: une erreur interne du serveur s'est produite, par exemple un délai avant expiration du backend. Relancez la requête avec un intervalle exponentiel entre les tentatives.