エラー処理

リクエストを送信すると、エラーの詳細を含むレスポンスが返されることがあります。

2D タイルおよびストリートビュー画像

次のリストは、2D タイルやストリートビュー画像の使用時に発生する可能性のあるエラーの詳細を示しています。

エラーのリスト

次のリストに、Map Tiles API の使用時に発生する可能性のあるエラーを示します。

required
リクエストに URL パラメータがありません。エラー メッセージには、不足しているパラメータが表示されます。
notFoundinvalid

xyz の値が範囲外です。

  • 通常のマップタイルの場合、最大ズームレベルは、特定のマップタイルと、リクエストした地図オプションによって異なります。

  • 通常の地図タイルの場合、x 座標は [0, (2^zoom)-1] の範囲内にする必要があります。

  • 通常の地図タイルの場合、y 座標は [0, (2^(zoom-1))-1] の範囲内にする必要があります。

  • ストリートビュー タイルの場合、ズームは 0 ~ 5 の範囲で指定する必要があります。

  • Street View Tiles の場合、x 座標と y 座標の範囲は、レベル 5 のズームまで通常の地図タイルと同じです。この時点で、最大値は imageHeight または imagewidthtileHeight または tileWidth で割った値になります。

forbidden: リクエストに有効な API キーがありません。

expired
お客様の session トークンの有効期限が切れています。セッション トークンの有効期間は、作成時から 2 週間です。ただし、この設定は予告なく変更される場合があります。このエラーが発生した場合は、セッション トークンの使用の説明に従って、新しいセッション トークンを取得する必要があります。
badRequest

リクエストの形式が正しくありません。一般的な理由には、以下のようなものがあります。

  • roadmap レイヤを含めずに terrain マップタイプを指定しました。

  • 道路地図以外の地図タイプに styles 配列が含まれています。

  • ストリートビュー メタデータ リクエストで緯度/経度値とパノラマ ID を送信しました。

quotaExceededrateLimitExceeded

アプリケーションが許可された割り当てを超えた、または 1 秒あたりの許可されたクエリ数を超えた。

エラーの例

{
  "error": {
    "code": 403,
    "message": "The request is missing a valid API key.",
    "errors": [
      {
        "message": "The request is missing a valid API key.",
        "domain": "global",
        "reason": "forbidden"
      }
    ],
    "status": "PERMISSION_DENIED"
  }
}

リクエストの再試行

リクエストが quotaExceededrateLimitExceeded で失敗した場合は、多くのクライアントがリクエストを連続して再試行しようとするため、破損したリクエストや大規模な障害が Google サーバーをフラッディングしないように、リクエストを再試行する必要があります。つまり、リクエストを再試行するときに指数バックオフを使用します。指数バックオフでは、サーバーが復旧する時間を確保するために、リクエストを時間的に分散する必要があります。

たとえば、リクエストが失敗した場合は、1 秒後に再試行します。それでも失敗した場合は、2 秒後にリクエストを再試行します。そのリクエストも失敗した場合は、4 秒後にもう一度お試しください。つまり、リクエスト間の時間を 2 倍にすることで、連続するリクエストを効果的に分散できます。

3D タイル

レンダラを介してフォトリアルなタイルにアクセスするため、Google のサーバーからのエラーが明らかでない場合があります。レンダラはサーバーエラーの処理を担当します。

タイル レンダラのエラー

たとえば、CesiumJS レンダラは通常、サーバーエラーが発生するとサイレント エラーが発生します。これにより、クラッシュ、空白の画面、特定のタイルが読み込まれないなどの問題が発生する可能性があります。

サーバーエラーのデバッグに使用する手法は、使用するレンダラによって異なります。CesiumJS などのブラウザベースのレンダラの場合、ほとんどのブラウザに組み込まれているツールを使用してネットワーク トラフィックを検査できます。たとえば、Chrome DevTools を使用できます。

一般的なエラー

発生する可能性のある一般的なエラーの詳細は次のとおりです。

400: 引数が無効です
無効な API キー、クエリ パラメータ、タイル/タイルセット ID、期限切れのセッション トークン。
403: 権限が拒否されました
API キーが指定されていない、SSL 接続が指定されていない、または API キーが 3D タイルの許可リストに追加されていない。Map Tiles API の 3D Tiles 機能の許可リストに登録するには、プロジェクト ID を添えて Google サポートにお問い合わせください。
429: Too many requests
割り当てが使い切れました。割り当てを増やすには、Google サポートにお問い合わせください。