トラブルシューティング

エラー

エラーが発生した場合は、標準形式のエラー レスポンスの本文が返され、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 Console で構成したリクエストの上限を超えています。通常、この上限は、1 日あたりのリクエスト数、100 秒あたりのリクエスト数、ユーザーごとの 100 秒あたりのリクエスト数として設定されます。この上限は、少数のユーザーが 1 日の割り当てを使い果たさないように設定する必要があります。ただし、すべてのユーザーが合理的なアクセスを許可されるようにする必要があります。これらの上限を構成するには、API 使用量の上限設定をご覧ください。

指数バックオフ

リクエストが失敗した場合は、指数バックオフを使用してリクエストを再試行するようにしてください。たとえば、リクエストが 1 回失敗した場合は 1 秒後に再試行し、再び失敗した場合は 2 秒後に再試行し、次に 4 秒後に再試行します。これにより、多くのクライアントがリクエストを非常に迅速に再試行しようとするため、破損したリクエストや大規模な障害が Google のサーバーに殺到することがなくなります。

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

実装に関する問題

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

一般的な問題

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

上記のいずれにも当てはまらない場合は、地図タイルが最近更新されたため、スナップに使用される道路インデックスと同期しなくなった可能性があります。影響を受けるクエリがごく一部の場合は、この原因である可能性が高くなります。Google マップは定期的に更新されるため、このような現象がまれに発生することがあります。また、地図上で古い経路(数週間前にスナップされた経路など)を定期的に確認している場合は、このような現象が頻繁に発生することがあります。最適な可視化を実現するには、地図に表示する直前に古いパスを再スナップして、地図タイルとスナップに使用される道路インデックスの不整合を最小限に抑える必要があります。

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