エラー
エラーが発生した場合は、標準形式のエラー レスポンスの本文が返され、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\" パラメータに無効な値が含まれています: ☃」 | リクエストに無効な引数が含まれていました。このエラーの最も考えられる原因は次のとおりです。
このエラーは、存在しない道路、または道路ではない場所に対して |
| 403 | PERMISSION_DENIED |
登録されていないリクエストがブロックされました。Google Developers Console を使用して登録してください。 | リクエストが拒否された理由は次のいずれかです。
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 人または少数の ユーザーが 1 日の割り当てを使い果たすのを防ぎながら、すべてのユーザーが合理的に アクセスできるように構成する必要があります。これらの上限を構成するには、API の使用量の上限設定 をご覧ください。 |
指数バックオフ
リクエストが失敗した場合は、指数バックオフを使用してリクエストを再試行する必要があります。たとえば、リクエストが 1 回失敗した場合は 1 秒後に再試行し、再度失敗した場合は 2 秒後に再試行します。その後は 4 秒後、8 秒後と再試行します。これにより、多くのクライアントがリクエストを非常に迅速に再試行しようとするため、破損したリクエストや大規模な障害によって Google のサーバーが過負荷になるのを防ぐことができます。
トラブルシューティングに関するよくある質問
導入に関する問題
- 車両の位置情報をサンプリングする頻度はどのくらいにすればよいですか?
- 道路へのスナップの品質を高めるには、1 ~ 10 秒ごとにサンプリングすることをおすすめします。
- 1 つのクエリで送信できるポイントの数に上限はありますか?
- はい。1 つのクエリに含めることができるポイントは 100 個までです。
- スナップされた緯度/経度ペアを保存する際の精度はどのくらいにすればよいですか?
- スナップされたパスがすべてのズームレベルで道路に沿うようにするには、最大ズームレベルでも、スナップされた緯度/経度ペアを小数点以下 7 桁の精度で保存する必要があります。
- エンコードされたポリラインを使用して、スナップされたパスを表示できますか?
- エンコードされたポリラインは小数点以下 5 桁の精度で指定されるため、誤差は約 2 メートルになります。そのため、スナップされたパスを高ズームレベルで道路に沿わせたい場合は、エンコードされたポリラインは適していません。
一般的な問題
- 一部のポイントがスナップされない、またはスナップされたパスにギャップがある。どうすれば修正できますか?
-
- ポイントを一定の間隔でサンプリングしている場合は、ポイントを短い間隔(1 ~ 10 秒ごと)でサンプリングしてください。間隔が長い場合(60 秒など)、道路へのスナップ アルゴリズムで、走行した道路を十分な精度で特定できないことがあります。
- 地図を手動でクリックしてポイントを作成する場合、ポイントが少ないパスや、スナップ アルゴリズムで適切に処理されない疎なポイントを含むパスを簡単に作成できます。スナップ アルゴリズムは、ポイントが近い場合に最適に機能します。道路への スナップのデモを試すか、道路 インスペクタを使用してパスをテストしてください。
- スナップされたパスを拡大すると、ギザギザになったり、道路からわずかにずれたりするのはなぜですか?
-
- スナップされた緯度/経度ペアの精度を切り捨ててから表示していますか?スナップされた緯度/経度ペアを小数点以下 7 桁未満の精度で保存すると、スナップされたパスが地図に表示されたときに精度の誤差が生じます。
- エンコードされたポリラインを使用していますか?エンコードされたポリラインは、緯度/経度ペアを小数点以下 5 桁に切り捨てるため、数メートルの誤差が生じ、高ズームレベルでギザギザになったり、道路からわずかにずれたりする線になります。
上記に当てはまらない場合は、地図タイルが最近更新され、スナップに使用される道路インデックスとの同期が取れていない可能性があります。クエリの一部のみが影響を受けている場合は、これが原因である可能性があります。Google マップは定期的に更新されるため、このようなことが発生することがあります。地図上の古いパス(数週間前にスナップされたパスなど)を定期的に確認する場合は、より頻繁に発生する可能性があります。最適な視覚化を行うには、地図タイルとスナップに使用される道路インデックスの不整合を最小限に抑えるため、地図に表示する直前に古いパスを再スナップする必要があります。
- 道路 X の制限速度が正しく表示されないのはなぜですか?
- 制限速度は、精度とカバレッジが異なる複数のソースから取得されます。
特定の道路タイプや特定のエリアの制限速度が常に間違っているなどのパターンが見つかった場合は、次の手順で Google にお知らせください。
- パソコンで Google マップを開くか、Android 用の Google マップ アプリを開きます。
- 左側のサイドメニューを開きます。
- [フィードバックを送信] を選択します。注: ログインを求められることがあります。
- [地図を編集] を選択します。
- 編集する道路区分を選択します。
- [次へ] を選択します。
- [その他] フィールドに、その道路の制限速度が間違っていることを示します。
- [送信] を選択します。
- スナップされたパスが道路に沿わずに角を曲がっているのはなぜですか?
-
この問題を解決するには、次の点を確認してください。
interpolateパラメータがtrueに設定されていることを確認します。- 元のデータポイントが十分に近い間隔(1 ~ 10 秒ごと)でサンプリングされていることを確認します。
- 制限速度が変更されていない道路のスナップされたパスに、多くの道路区分が返されるのはなぜですか?
interpolateパラメータがtrueに設定されている場合、道路へのスナップ クエリは、角、カーブ、ラウンドアバウトに沿って道路をたどるポリラインを返します。道路がカーブしている場合は、制限速度が変更されていなくても、道路のジオメトリに沿ったポリラインを作成するために、複数の道路区分が返されます。