エラー
エラーが発生した場合は、標準形式のエラー レスポンスの本文が返され、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 秒後という間隔で再試行します。これにより、多くのクライアントが迅速にリクエストを再試行するため、破損したリクエストや大規模な障害によって Google のサーバーが飽和状態になることはありません。
トラブルシューティングに関するよくある質問
実装に関する問題
- 車両の位置情報をサンプリングする頻度はどのくらいに設定すればよいですか?
- 質の高い道路スナップの精度を上げるには、1 ~ 10 秒ごとに測定することをおすすめします。
- クエリごとに送信できるポイント数に上限はありますか?
- はい。1 つの質問につき最大 100 ポイントまで獲得できます。
- スナップされた緯度/経度ペアを保存する際の精度はどの程度にする必要がありますか?
- 最大ズームレベルであっても、スナップされたパスがすべてのズームレベルの道路に沿ったようにするには、スナップした緯度と経度のペアを小数点以下 7 桁の精度で保存する必要があります。
- エンコードされたポリラインを使用して、スナップされたパスを表示できますか?
- エンコードされたポリラインは小数点以下 5 桁の精度で指定されるため、約 2 メートルの誤差が生じます。そのため、ズームレベルが高い状態で道路に沿ってスナップされたパスを作成する場合、エンコードされたポリラインは適していません。
一般的な問題
- 一部のポイントがスナップされない、またはスナップされたパスにギャップがある。この問題を修正するにはどうすればよいですか?
-
- ポイントを一定の間隔でサンプリングする場合は、ポイントが短い間隔(1 ~ 10 秒ごと)でサンプリングされるようにします。より長い間隔(60 秒など)を使用すると、道路スナップ アルゴリズムが走行した道路を十分な精度で特定できない場合があります。
- 地図上で手動でクリックしてポイントを作成する場合は、ポイントが少ないパスやポイントがまばらなパスを簡単に作成できます。このようなパスは、スナップ アルゴリズムで適切に処理されません。スナップのアルゴリズムは、接近している地点間で最適に機能するようになっています。道路にスナップするデモを試すか、道路インスペクタを使用してパスをテストします。
- ズームインすると、スナップされたパスがギザギザになっている、または道路から少しずれているのはなぜですか?
-
- スナップされた緯度と経度のペアを表示する前に、精度を切り捨てていますか?スナップされた緯度と経度のペアを小数点 7 桁未満の精度で保存すると、スナップされたパスが地図に表示されるときに精度エラーが発生します。
- エンコードされたポリラインを使用していますか?エンコードされたポリラインでは、緯度と経度のペアが小数点以下 5 桁に切り捨てられるため、数メートルの誤差が生じ、ズームレベルが高いと線がギザギザになったり、道路から少しずれたりします。
上記のいずれにも当てはまらない場合は、地図タイルへの最近の更新により、スナップに使用される道路インデックスとの同期がずれている可能性があります。影響を受けているクエリが少数の場合は、この原因である可能性があります。Google マップは定期的に更新されるため、このような事象は時折発生することがあります。地図上で古い経路(数週間前にスナップされた経路など)を定期的に確認している場合は、発生頻度が高くなることがあります。最適な可視化を実現するには、地図に表示する直前に古いパスを再スナップして、地図タイルとスナップに使用される道路インデックスの不整合を最小限に抑える必要があります。
- 道路 X の制限速度が正しく表示されない原因として考えられるものは何ですか?
- 制限速度は、精度と範囲が異なる複数のソースから取得されます。特定の道路タイプや特定の地域の制限速度が常に間違っているなど、パターンが見つかった場合は、次の手順に沿ってお知らせください。
- パソコンで Google マップを開くか、Android 版 Google マップ アプリを開きます。
- 左側のメニューを開きます。
- [フィードバックを送信] を選択します。注: ログインを求められる場合があります。
- [地図を編集] を選択します。
- 編集する道路セグメントを選択します。
- [次へ] を選択します。
- [その他] フィールドに、その道路の制限速度が間違っていることを入力します。
- [送信] を選択します。
- スナップされたパスが道路に沿って走行せず、角を切り取るのはなぜですか?
-
この問題を解決するには、以下の点を確認してください。
interpolate
パラメータがtrue
に設定されていることを確認します。- 元のデータポイントが十分に近い間隔(1 ~ 10 秒ごと)でサンプリングされていることを確認します。
- 速度制限が変更されていない道路のスナップされたパスに、多くの道路区間が返されるのはなぜですか?
interpolate
パラメータがtrue
に設定されている場合、道路スナップ クエリは、道路の角、カーブ、ロータリーなどの周囲に沿ったポリラインを返します。道路がカーブしている場合、速度制限が変更されていなくても、道路のジオメトリに沿ったポリラインを作成するために、複数の道路区間が返されます。