トラブルシューティング

エラー

エラーが発生した場合は、標準形式のエラー レスポンスの本文が返され、HTTP ステータス コードがエラー ステータスに設定されます。

レスポンスには、次のキーを持つ単一の error オブジェクトを持つオブジェクトが含まれます。

  • code: レスポンスの HTTP ステータスと同じです。
  • message: エラーの簡単な説明。
  • status: エラーの性質を示すステータス コード。

たとえば、無効な placeId パラメータを送信すると、次のエラーが返されます。

{
  "error": {
    "code": 400,
    "message": "\"placeId\" value is malformed: \"aChIJqaknMTeuEmsRUYCD5Wd9ARM\"",
    "status": "INVALID_ARGUMENT"
  }
}

考えられるエラーは次のとおりです。

コード ステータス メッセージ トラブルシューティング
400 INVALID_ARGUMENT 指定したキーが無効です。 API キーが無効であるか、リクエストに含まれていません。キー全体を指定していることと、このキーに対して API が有効になっていることを確認してください。
400 INVALID_ARGUMENT "\"path\" パラメータに無効な値が含まれています: 「こう」 リクエストに無効な引数が含まれていました。このエラーの原因として最も可能性が高いのは、次のようなものです。
  • path パラメータに問題があります。
    1 ポイント以上、100 ポイント未満にしてください。各ポイントは、48.409114,-123.369158 のように、カンマで区切られた数値のペアである必要があります。ポイントはパイプ「|」で区切る必要があります。
  • リクエストに無効な placeId が含まれていました。
  • リクエストに placeIdpath の両方が含まれている。リクエストごとに指定できるパラメータは 1 つのみです。

存在しない道路や道路ではない場所に対して placeId が渡された場合、このエラーは返されません。

403 PERMISSION_DENIED 未登録のリクエストがブロックされました。Google Developers Console を使用して登録してください。 以下のいずれかの理由でリクエストが拒否されました。
  • API キーがないか、無効です。
  • アカウントで課金が有効になっていません。
  • ご自身で設定した使用量の上限を超えています。
  • 指定したお支払い方法が無効になっている(クレジット カードの有効期限が切れているなど)。

Google Maps Platform サービスを使用するには、アカウントで課金を有効にし、すべてのリクエストに有効な API キーが含まれている必要があります。この問題を解決する手順は次のとおりです。

404 NOT_FOUND このサービスには HTTPS が必要です。 リクエストが http://roads.googleapis.com/ ではなく https://roads.googleapis.com/ に送信されていることを確認します。
429 RESOURCE_EXHAUSTED プロジェクト リクエスト数の上限に達したため、リクエストがスロットリングされました。 Google Cloud Platform コンソールで構成したリクエストの上限を超えています。この上限は通常、1 日あたりのリクエスト数、100 秒あたりのリクエスト数、ユーザーごとの 100 秒あたりのリクエスト数として設定されます。この制限は、1 人または少人数のユーザー グループが 1 日の割り当てを使い切るのを防ぎながら、すべてのユーザーに相応のアクセスを許可するように設定する必要があります。これらの上限を構成するには、API 使用量の上限を設定するをご覧ください。

指数バックオフ

リクエストが失敗した場合は、指数バックオフを使用してリクエストを再試行する必要があります。たとえば、リクエストが 1 回失敗した場合は 1 秒後に再試行し、再び失敗した場合は 2 秒後に再試行し、その後 4 秒後に再試行します。これにより、多くのクライアントが迅速にリクエストを再試行するため、不完全なリクエストや大規模な障害によって Google のサーバーが飽和状態になることはありません。

トラブルシューティングに関するよくある質問

設定に関する問題

車両位置情報はどの頻度でサンプリングすればよいですか?
質の高い道路スナップの精度を上げるには、1 ~ 10 秒ごとに測定することをおすすめします。
1 回のクエリで送信できるポイント数に制限はありますか?
はい。1 つの質問につき最大 100 ポイントまで獲得できます。
スナップした緯度と経度のペアを保存するには、どの程度の精度を使用する必要がありますか?
最大ズームレベルであっても、スナップされたパスがすべてのズームレベルの道路に沿ったようにするには、スナップした緯度と経度のペアを小数点以下 7 桁の精度で保存する必要があります。
エンコードされたポリラインを使用して、スナップされたパスを表示できますか?
エンコードされたポリラインは、小数点以下 5 桁までの精度で指定されるため、約 2 メートルの誤差が生じます。そのため、スナップされたパスを高いズームレベルで道路に沿って移動する場合、エンコードされたポリラインは適していません。

よくある問題

一部のポイントがスナップされない、またはスナップされたパスに隙間がある。修正するにはどうすればよいですか?
  • 時間間隔でポイントをサンプリングする場合は、短い間隔(1 ~ 10 秒ごと)でポイントをサンプリングします。より長い間隔(例: 60 秒)を使用すると、通行する道路を十分な精度で特定できないことがあります。
  • 地図を手動でクリックしてポイントを作成する場合、スナップ アルゴリズムで適切に処理されないポイントの少ないパスや、まばらなポイントを簡単に作成するのは簡単です。スナップのアルゴリズムは、近接するポイントで最適に機能します。Snap to Road デモを試すか、道路インスペクタを使用してパスをテストします。
ズームインすると、スナップされたパスがギザギザになったり、道路から少しずれたりします。なぜですか?
  • スナップされた緯度と経度のペアを表示する前に、その精度を切り捨てていますか?スナップされた緯度と経度のペアを小数点 7 桁未満の精度で保存すると、スナップされたパスが地図に表示されるときに精度エラーが発生します。
  • エンコードされたポリラインを使用していますか?エンコードされたポリラインでは、緯度と経度のペアが小数点以下 5 桁に切り捨てられるため、数メートルの誤差が生じます。その結果、ズームレベルの高い道路では、線がギザギザになったり、道路から少しずれたりします。

上記のいずれにも該当しない場合は、地図タイルが最近更新されたため、スナップに使用する道路インデックスと同期していない可能性があります。影響を受けるクエリが少数の場合、これが原因と考えられます。Google マップは定期的に更新されるため、こうした状況はときどき発生することがあります。たとえば、数週間前にスナップしたパスなど、地図上の古いパスを定期的に確認すると、この問題が頻繁に発生する可能性があります。最適な可視化を行うには、地図タイルとスナップに使用する道路インデックスとの不整合を最小限に抑えるため、古いパスを地図に表示する直前に再度スナップする必要があります。

道路 X の速度制限が正しく表示されない原因として何が考えられますか。
制限速度は複数の要因によって設定されており、その精度や適用範囲はさまざまです。特定の種類の道路や特定のエリアで常に制限速度が間違っているなど、一定のパターンが見られる場合は、次の手順に沿って Google までお知らせください。
  1. デスクトップ パソコンで Google マップを開くか、Android 向け Google マップ アプリを開きます。
  2. 左側のメニューを開きます。
  3. [フィードバックを送信] を選択します。注: ログインを求められる場合があります。
  4. [地図を編集] を選択します。
  5. 編集する道路セグメントを選択します。
  6. [次へ] を選択します。
  7. [その他] で、その道路の制限速度が間違っていることを示します。
  8. [送信] を選択します。
その他の問題(道路名が間違っている、間違って描かれている、通行止め、私道など)を報告することもできます。
スナップされたパスが道路に沿うのではなく、角を切ってしまうのはなぜですか?
この問題を解決するには、以下の点を確認してください。
  • interpolate パラメータが true に設定されていることを確認します。
  • 元のデータポイントが十分な間隔(1 ~ 10 秒ごと)でサンプリングされていることを確認します。
制限速度が変更されていない道路で、スナップされたパスで多くの道路セグメントが返されるのはなぜですか?
interpolate パラメータを true に設定すると、道路へのスナップクエリにより、道路の角、カーブ、ラウンドアバウトを通るポリラインが返されます。道路がカーブしている場合は、制限速度が変更されていなくても、道路のジオメトリに密接に沿うポリラインを作成するために、複数の道路セグメントが返されます。