Fehler und Fehlerbehebung

Die Isochrones API gibt Fehler im standardmäßigen Google Cloud-JSON-Format google.rpc.Status zurück:

{
  "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"
  }
}

Verwenden Sie das Feld status (oder HTTP code), um Fehler programmatisch zu beheben. Der Text message ist für Entwickler gedacht und kann sich ändern. Er sollte daher nicht geparst werden.

Bei der Arbeit mit der Isochrones API können die folgenden häufigen Fehlerstatuscodes auftreten:

  • 400 INVALID_ARGUMENT: Die Anfrage enthält ungültige Parameter oder eine fehlerhafte Syntax:
    • Dauerbegrenzungen: Achten Sie darauf, dass travelDuration mindestens "1s" beträgt, mit "s" endet (z. B. "1800s") und das Limit für den Modus nicht überschreitet: 3600s (60 Minuten) für DRIVE und TWO_WHEELER oder 7200s (120 Minuten) für WALK und BICYCLE. Null ("0s"), negative Werte und Werte unter einer Sekunde (z. B. "0.5s") werden abgelehnt.
    • Traffic-Präferenz: Achten Sie darauf, dass routingPreference nicht auf TRAFFIC_AWARE festgelegt ist, wenn travelMode den Wert WALK oder BICYCLE hat. Live-Traffic wird nur für DRIVE und TWO_WHEELER unterstützt.
    • Erforderliche Enums: Achten Sie darauf, dass sowohl travelMode als auch travelDirection (FROM oder TO) angegeben sind und nicht auf *_UNSPECIFIED festgelegt sind.
    • Ursprungskoordinaten (location): Legen Sie sowohl latitude (in [-90, 90]) als auch longitude (in [-180, 180]) fest. Ein weggelassenes Feld wird ohne Fehler als 0 behandelt: Wenn Sie beide weglassen, erhalten Sie (0, 0), was abgelehnt wird. Wenn Sie nur latitude weglassen, wird der Ursprung auf den Äquator gelegt. Wenn Sie nur longitude weglassen, wird er auf den Nullmeridian gelegt.
    • Format der Orts-ID (place): place muss eine Orts-ID oder ein places/{place_id}-Ressourcenname (z. B. "places/ChIJIQBpAG2ahYAR_6128GcTUEo") ohne zusätzliche Pfadsegmente sein und auf eine gültige Orts-ID verweisen.
    • Feldmaske (X-Goog-FieldMask): Falls angegeben, muss der Header auf gültige Antwortpfade wie isochrone, isochrone.geoJson oder * verweisen.
    • Ungültiger API-Schlüssel (API_KEY_INVALID): Ein fehlerhafter oder nicht erkannter API-Schlüssel in X-Goog-Api-Key oder ?key= gibt 400 INVALID_ARGUMENT mit dem Grund API_KEY_INVALID zurück.
  • 403 PERMISSION_DENIED: Authentifizierung oder Autorisierung fehlgeschlagen:
    • In der Anfrage wurden keine Authentifizierungsdaten (X-Goog-Api-Key-, ?key=- oder Authorization: Bearer-Token) angegeben.
    • Die Isochrones API (isochrones.googleapis.com) ist in Ihrem Google Cloud-Projekt nicht aktiviert oder die Abrechnung ist nicht aktiviert.
    • Für Ihren API-Schlüssel gelten Einschränkungen für API-Ziele, IP-Adressen oder HTTP-Referrer, die Anfragen an isochrones.googleapis.com blockieren.
  • 404 NOT_FOUND: Der Startpunkt konnte nicht aufgelöst oder am Straßennetz ausgerichtet werden:
    • place konnte keinem Standort zugeordnet werden. Prüfen Sie, ob die Orts-ID gültig und aktuell ist.
    • Der Schwerpunkt des Startpunkts location oder place liegt weiter von einem für den Modus kompatiblen Straßensegment entfernt als die maximale Einrastentfernung (ca. 200 Meter oder weniger für WALK und BICYCLE). Verschieben Sie die Koordinate näher an eine öffentliche Straße oder übergeben Sie die Koordinaten des Straßeneingangs anstelle der Orts-ID eines großen Parks oder einer Sehenswürdigkeit.
    • Die Koordinate befindet sich in einem Gebiet ohne Straßendaten (z. B. auf dem offenen Meer).
  • 429 RESOURCE_EXHAUSTED: Ihr Projekt hat das Kontingentlimit pro Minute überschritten (standardmäßig 300 Anfragen pro Minute):

    {
      "error": {
        "code": 429,
        "message": "Quota exceeded for quota metric 'Requests' and limit 'Requests per minute' of service 'isochrones.googleapis.com'.",
        "status": "RESOURCE_EXHAUSTED"
      }
    }
    

    Drosseln Sie die Anforderungsraten von Clients und wiederholen Sie 429-Antworten mit exponentiellem Backoff mit zufälligem Jitter.

  • 503 UNAVAILABLE: Der Dienst ist vorübergehend nicht verfügbar oder überlastet. Wiederholen Sie die Anfrage mit exponentiellem Backoff.

  • 500 INTERNAL: Ein interner Serverfehler ist aufgetreten, z. B. eine Backend-Zeitüberschreitung. Wiederholen Sie die Anfrage mit exponentiellem Backoff.