L'API Isochrones restituisce gli errori utilizzando il formato JSON standard di Google Cloud google.rpc.Status:
{
"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"
}
}
Utilizza il campo status (o HTTP code) per gestire gli errori in modo programmatico. Il testo message è destinato agli sviluppatori e potrebbe cambiare, quindi non analizzarlo.
Quando utilizzi l'API Isochrones, potresti riscontrare i seguenti codici di stato di errore comuni:
400 INVALID_ARGUMENT: la richiesta contiene parametri non validi o una sintassi non corretta:- Limiti di durata: assicurati che
travelDurationsia almeno"1s", termini con"s"(ad esempio"1800s") e non superi il limite della modalità:3600s(60 minuti) perDRIVEeTWO_WHEELERo7200s(120 minuti) perWALKeBICYCLE. Zero ("0s"), i valori negativi e i valori inferiori a 1 secondo (ad esempio"0.5s") vengono rifiutati. - Preferenza di traffico: assicurati che
routingPreferencenon sia impostato suTRAFFIC_AWAREquandotravelModeèWALKoBICYCLE. Il traffico in tempo reale è supportato solo perDRIVEeTWO_WHEELER. - Enum obbligatori: assicurati che siano specificati sia
travelModesiatravelDirection(FROMoTO) e che non siano impostati su*_UNSPECIFIED. - Coordinate di origine (
location): imposta sialatitude(in[-90, 90]) sialongitude(in[-180, 180]). Un campo omesso viene trattato come0senza errori: l'omissione di entrambi restituisce(0, 0), che viene rifiutato; l'omissione dilatitudeposiziona l'origine sull'Equatore; l'omissione dilongitudela posiziona sul meridiano di Greenwich. - Formato dell'ID luogo (
place): assicurati cheplacesia un ID luogo o un nome della risorsaplaces/{place_id}(ad esempio"places/ChIJIQBpAG2ahYAR_6128GcTUEo"), senza segmenti di percorso aggiuntivi, e che faccia riferimento a un ID luogo valido. - Maschera di campo (
X-Goog-FieldMask): se fornita, l'intestazione deve fare riferimento a percorsi di risposta validi comeisochrone,isochrone.geoJsono*. - Chiave API non valida (
API_KEY_INVALID): una chiave API non corretta o non riconosciuta inX-Goog-Api-Keyo?key=restituisce400 INVALID_ARGUMENTcon motivoAPI_KEY_INVALID.
- Limiti di durata: assicurati che
403 PERMISSION_DENIED: autenticazione o autorizzazione non riuscita:- Nella richiesta non sono state fornite credenziali di autenticazione (token
X-Goog-Api-Key,?key=oAuthorization: Bearer). -
thought
L'API Isochrones (
isochrones.googleapis.com) non è abilitata nel tuo progetto Google Cloud o la fatturazione non è abilitata. - La tua chiave API ha limitazioni relative alla destinazione dell'API, all'indirizzo IP o al referrer HTTP che bloccano le richieste a
isochrones.googleapis.com.
- Nella richiesta non sono state fornite credenziali di autenticazione (token
404 NOT_FOUND: non è stato possibile risolvere l'origine o agganciarla alla rete stradale:- Impossibile risolvere
placein una località. Verifica che l'ID luogo sia valido e aggiornato. - Il baricentro dell'origine
locationoplacesi trova più lontano da un segmento stradale compatibile con la modalità rispetto alla distanza massima di aggancio (circa 200 metri o meno perWALKeBICYCLE). Sposta la coordinata più vicino a una strada pubblica o passa le coordinate di ingresso della strada anziché un ID luogo di un grande parco o di un punto di riferimento. - La coordinata si trova in un'area senza dati stradali (ad esempio in mare aperto).
- Impossibile risolvere
429 RESOURCE_EXHAUSTED: il tuo progetto ha superato il limite di quota al minuto (per impostazione predefinita, 300 richieste al minuto):{ "error": { "code": 429, "message": "Quota exceeded for quota metric 'Requests' and limit 'Requests per minute' of service 'isochrones.googleapis.com'.", "status": "RESOURCE_EXHAUSTED" } }Limita i tassi di richieste dei client e riprova le risposte
429utilizzando il backoff esponenziale con jitter randomizzato.503 UNAVAILABLE: il servizio è temporaneamente non disponibile o sovraccarico. Riprova a effettuare la richiesta utilizzando il backoff esponenziale.500 INTERNAL: si è verificato un errore interno del server, ad esempio un timeout del backend. Riprova a effettuare la richiesta utilizzando il backoff esponenziale.