エラーとトラブルシューティング

Isochrones API は、標準の Google Cloud google.rpc.Status JSON 形式を使用してエラーを返します。

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

status(または HTTP code)フィールドを使用して、エラーをプログラムで処理します。message テキストはデベロッパー向けであり、変更される可能性があるため、解析しないでください。

Isochrones API を使用すると、次の一般的なエラー ステータス コードが発生することがあります。

  • 400 INVALID_ARGUMENT: リクエストに無効なパラメータまたは不正な構文が含まれています。
    • 期間の範囲: travelDuration が "1s" 以上で、"s" で終わる("1800s" など)ことを確認します。また、モードの上限(DRIVE と TWO_WHEELER の場合は 3600s(60 分)、WALK と BICYCLE の場合は 7200s(120 分))を超えないようにします。ゼロ("0s")、負の値、1 秒未満のサブ秒値("0.5s" など)は拒否されます。
    • トラフィック設定: travelMode が WALK または BICYCLE の場合、routingPreference が TRAFFIC_AWARE に設定されていないことを確認します。ライブ トラフィックは DRIVE と TWO_WHEELER でのみサポートされています。
    • 必須の列挙型: travelMode と travelDirection(FROM または TO)の両方が指定され、*_UNSPECIFIED に設定されていないことを確認します。
    • 原点座標(location): latitude([-90, 90] 単位)と longitude([-180, 180] 単位)の両方を設定します。省略されたフィールドは、エラーなしで 0 として扱われます。両方を省略すると (0, 0) になり、拒否されます。latitude のみを省略すると、原点は赤道上に配置されます。longitude のみを省略すると、原点は本初子午線上に配置されます。
    • プレイス ID の形式(place): place がプレイス ID または places/{place_id} リソース名(例: "places/ChIJIQBpAG2ahYAR_6128GcTUEo")であり、余分なパス セグメントがなく、有効なプレイス ID を参照していることを確認します。
    • フィールド マスク(X-Goog-FieldMask): 指定する場合、ヘッダーは isochrone、isochrone.geoJson、* などの有効なレスポンス パスを参照する必要があります。
    • 無効な API キー(API_KEY_INVALID): X-Goog-Api-Key または ?key= の API キーの形式が正しくないか、認識されない場合、400 INVALID_ARGUMENT が返され、理由が API_KEY_INVALID になります。
  • 403 PERMISSION_DENIED: 認証または認可に失敗しました。
    • リクエストに認証情報(X-Goog-Api-Key、?key=、Authorization: Bearer トークン)が指定されていません。
    • Google Cloud プロジェクトで Isochrones API (isochrones.googleapis.com) が有効になっていないか、課金が有効になっていません。
    • API キーに API ターゲット、IP アドレス、または HTTP リファラーの制限が設定されているため、isochrones.googleapis.com へのリクエストがブロックされています。
  • 404 NOT_FOUND: 出発地を解決できなかったか、道路ネットワークにスナップできませんでした。
    • place を場所に解決できませんでした。プレイス ID が有効かつ最新であることを確認します。
    • 出発地の location または place の重心が、モード対応の道路セグメントから最大スナップ距離(約 200 メートル、WALK と BICYCLE の場合はそれ以下)よりも離れています。座標を公道に近づけるか、大きな公園やランドマークのプレイス ID ではなく、道路の入り口の座標を渡してください。
    • 座標が道路データのないエリア(外洋など)にある。
  • 429 RESOURCE_EXHAUSTED: プロジェクトが 1 分あたりの割り当て上限(デフォルトは 1 分あたり 300 リクエスト)を超えました。

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

    クライアントのリクエスト率をスロットリングし、ランダム化されたジッターを含む指数バックオフを使用して 429 レスポンスを再試行します。

  • 503 UNAVAILABLE: サービスが一時的に利用できないか、過負荷状態になっています。指数バックオフを使用してリクエストを再試行します。

  • 500 INTERNAL: バックエンドのタイムアウトなど、内部サーバーエラーが発生しました。指数バックオフを使用してリクエストを再試行します。