エラー
エラーが発生した場合は、標準の形式のエラー レスポンス本文が返され、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 を使用して登録してください。 | リクエストは、次の 1 つ以上の理由で拒否されました。
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 回目の失敗の場合は 2 秒後に再試行します。これにより、リクエストの失敗や広範囲での障害が Google のサーバーにあふれ出すことがなくなります。これは、多くのクライアントがリクエストを非常にすばやく再試行しようとするためです。
トラブルシューティングに関するよくある質問
実装に関する問題
- 車両の位置情報はどの頻度でサンプリングすればよいですか。
- 道路へのスナップを高画質にするには、1 ~ 10 秒に 1 回することをおすすめします。
- クエリごとに送信できるポイントの数に制限はありますか?
- はい。クエリで使用できるポイントは 100 個までです。
- 緯度/経度のペアを保存する際、どの程度の精度を使用する必要がありますか?
- スナップされたパスがすべてのズームレベルの道路に沿うようにするには、スナップした緯度/経度のペアを小数点以下 7 桁まで保存する必要があります。
- スナップされたパスをエンコードしたポリラインを使用して表示できますか?
- エンコードされたポリラインは小数点以下 5 桁までの精度で指定されるため、誤差は約 2 メートルになります。したがって、スナップされたパスを高ズームレベルの道路に沿って表示する場合、エンコードされたポリラインは適していません。
一般的な問題
- スナップされていないポイントがある、またはスナップされたパスにスナップがないこの問題を解決するにはどうすればよいですか?
-
- ポイントを時間間隔でサンプリングする場合は、短い間隔(1 ~ 10 秒ごと)でポイントをサンプリングするようにしてください。これより長い間隔を使用した場合(60 秒など)、道路へのスナップ アルゴリズムが十分な精度で走行した道路を判断することができない可能性があります。
- 手動で地図をクリックしてポイントを作成する場合、スナップ アルゴリズムでは対応できないポイントやスパース ポイントを含むパスは簡単に作成できます。スナップ アルゴリズムは、近接するポイントに最も適しています。Snap to Roads デモを試すか、Roads Inspector を使用して経路をテストします。
- ズームインすると、スナップされたパスが道路からギャグまたはわずかに離れるのはなぜですか?
-
- 緯度と経度のスナップペアの表示前に切り捨てられますか?緯度と経度のスナップペアを小数点以下 7 桁未満に保存すると、スナップされたパスが地図上に表示されるときに精度エラーが発生します。
- エンコードされたポリラインを使用していますか?エンコードされたポリラインは、緯度/経度のペアが小数点以下 5 桁に切り捨てられます。これにより、数メートルの誤差が発生し、高ズームレベルで道路からギアがずれたり少しずれたりすることがあります。
上記のいずれにも該当しない場合は、地図タイルが最近更新されたために、スナップに使用された道路インデックスと同期しなくなっている可能性があります。影響を受けるクエリが少ない場合は、これが原因である可能性があります。Google マップは定期的に更新されるため、更新が頻繁に行われることがあります。ただし、地図上の古い経路(数週間前にスナップした経路など)を定期的に調べた場合には、そうした状況が頻繁に発生する可能性があります。最適な可視化のために、マップで表示する直前に古い経路を再スナップする必要があります。これは、地図タイルとスナップに使用される道路インデックスの不整合を最小限に抑えるためです。
- 道路 X の制限速度が誤って表示される原因は次のうちどれですか。
- 制限速度は、いくつかのソースから取得されますが、その精度とカバレッジは異なります。道路の種類や制限速度が一貫していないなどのパターンが見つかった場合は、次の手順を行ってお知らせください。
- パソコンまたは Android 向け Google マップ アプリで Google マップを開きます。
- 左側のメニューを開きます。
- [フィードバックを送信] を選択します。注: ログインを求められる場合があります。
- [地図を編集] を選択します。
- 編集する道路区間を選択します。
- [次へ] を選択します。
- [その他] で、その道路の制限速度が間違っていることを指定します。
- [送信] を選択します。
- 道路にスナップしたが、道路をたどるのではなく、角が曲がっているのはなぜですか?
-
この問題を解決するには、次の点を確認してください。
interpolate
パラメータがtrue
に設定されていることを確認します。- 元のデータポイントが十分な間隔(1 ~ 10 秒ごと)でサンプリングされていることを確認します。
- 速度制限なしの道路のスナップされたパスで、多数の道路セグメントが返されるのはなぜですか?
interpolate
パラメータをtrue
に設定すると、道路へのスナップクエリで、道路の隅、曲線、環状交差点に沿ったポリラインが返されます。道路の曲線の場合、速度制限が変更されていなくても、複数の道路セグメントが返されます。これにより、道路のジオメトリに厳密に従ったポリラインが作成されます。