Interfejs Isochrones API zwraca błędy w standardowym formacie JSON google.rpc.Status 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"
}
}
Aby obsługiwać błędy automatycznie, użyj pola status (lub HTTP code). Tekst message jest przeznaczony dla deweloperów i może ulec zmianie, więc nie należy go analizować.
Podczas pracy z interfejsem Isochrones API możesz napotkać te typowe kody stanu błędów:
400 INVALID_ARGUMENT: żądanie zawiera nieprawidłowe parametry lub nieprawidłową składnię:- Limity czasu trwania: upewnij się, że wartość
travelDurationwynosi co najmniej"1s", kończy się na"s"(np."1800s") i nie przekracza limitu trybu:3600s(60 minut) w przypadkuDRIVEiTWO_WHEELERlub7200s(120 minut) w przypadkuWALKiBICYCLE. Wartości zerowe ("0s"), ujemne i mniejsze niż 1 sekunda (np."0.5s") są odrzucane. - Ustawienie ruchu: upewnij się, że parametr
routingPreferencenie jest ustawiony naTRAFFIC_AWARE, gdy parametrtravelModema wartośćWALKlubBICYCLE. Ruch na żywo jest obsługiwany tylko w przypadkuDRIVEiTWO_WHEELER. - Wymagane typy wyliczeniowe: upewnij się, że określono zarówno
travelMode, jak itravelDirection(FROMlubTO) i że nie są one ustawione na*_UNSPECIFIED. - Współrzędne punktu początkowego (
location): ustawlatitude(w[-90, 90]) ilongitude(w[-180, 180]). Pominięte pole jest traktowane jako0bez błędu: pominięcie obu daje(0, 0), co jest odrzucane; pominięcie tylkolatitudeumieszcza punkt początkowy na równiku, a pominięcie tylkolongitudeumieszcza go na południku zerowym. - Format identyfikatora miejsca (
place): upewnij się, żeplaceto identyfikator miejsca lub nazwa zasobuplaces/{place_id}(np."places/ChIJIQBpAG2ahYAR_6128GcTUEo") bez dodatkowych segmentów ścieżki i że odnosi się do prawidłowego identyfikatora miejsca. - Maska pola (
X-Goog-FieldMask): jeśli jest podana, nagłówek musi odwoływać się do prawidłowych ścieżek odpowiedzi, takich jakisochrone,isochrone.geoJsonlub*. - Invalid API key (
API_KEY_INVALID): nieprawidłowo sformatowany lub nierozpoznany klucz interfejsu API wX-Goog-Api-Keylub?key=zwraca400 INVALID_ARGUMENTz przyczynąAPI_KEY_INVALID.
- Limity czasu trwania: upewnij się, że wartość
403 PERMISSION_DENIED: nie udało się przeprowadzić uwierzytelniania lub autoryzacji:- W żądaniu nie podano danych uwierzytelniających (
X-Goog-Api-Key,?key=ani tokenaAuthorization: Bearer). - Isochrones API (
isochrones.googleapis.com) nie jest włączony w projekcie Google Cloud lub nie są włączone płatności. - Klucz interfejsu API ma ograniczenia dotyczące celu interfejsu API, adresu IP lub strony odsyłającej HTTP, które blokują żądania do
isochrones.googleapis.com.
- W żądaniu nie podano danych uwierzytelniających (
404 NOT_FOUND: nie udało się rozpoznać miejsca początkowego lub przyciągnąć go do sieci dróg:- Nie udało się ustalić lokalizacji na podstawie tych danych:
place. Sprawdź, czy identyfikator miejsca jest prawidłowy i aktualny. - Punkt początkowy
locationlub środek ciężkościplaceznajduje się dalej od segmentu drogi zgodnego z trybem niż maksymalna odległość przyciągania (około 200 metrów lub mniej w przypadkuWALKiBICYCLE). Przesuń współrzędne bliżej drogi publicznej lub podaj współrzędne wjazdu na drogę zamiast identyfikatora miejsca dużego parku lub punktu orientacyjnego. - Współrzędne znajdują się na obszarze bez danych o drogach (np. na otwartym oceanie).
- Nie udało się ustalić lokalizacji na podstawie tych danych:
429 RESOURCE_EXHAUSTED: Twój projekt przekroczył limit na minutę (domyślnie 300 żądań na minutę):{ "error": { "code": 429, "message": "Quota exceeded for quota metric 'Requests' and limit 'Requests per minute' of service 'isochrones.googleapis.com'.", "status": "RESOURCE_EXHAUSTED" } }Ogranicz częstotliwość żądań klientów i ponawiaj próby odpowiedzi
429, stosując wzrastający czas do ponowienia z losowym jitterem.503 UNAVAILABLE: usługa jest tymczasowo niedostępna lub przeciążona. Ponów żądanie, stosując wzrastający czas do ponowienia.500 INTERNAL: wystąpił wewnętrzny błąd serwera, np. przekroczenie limitu czasu backendu. Ponów żądanie, stosując wzrastający czas do ponowienia.