エラー
エラーが発生した場合は、標準形式のエラー レスポンスの本文が返され、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 コンソールで構成したリクエストの上限を超えています。この上限は通常、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 までお知らせください。
- デスクトップ パソコンで Google マップを開くか、Android 向け Google マップ アプリを開きます。
- 左側のメニューを開きます。
- [フィードバックを送信] を選択します。注: ログインを求められる場合があります。
- [地図を編集] を選択します。
- 編集する道路セグメントを選択します。
- [次へ] を選択します。
- [その他] で、その道路の制限速度が間違っていることを示します。
- [送信] を選択します。
- スナップされたパスが道路に沿うのではなく、角を切ってしまうのはなぜですか?
-
この問題を解決するには、以下の点を確認してください。
interpolate
パラメータがtrue
に設定されていることを確認します。- 元のデータポイントが十分な間隔(1 ~ 10 秒ごと)でサンプリングされていることを確認します。
- 制限速度が変更されていない道路で、スナップされたパスで多くの道路セグメントが返されるのはなぜですか?
interpolate
パラメータをtrue
に設定すると、道路へのスナップクエリにより、道路の角、カーブ、ラウンドアバウトを通るポリラインが返されます。道路がカーブしている場合は、制限速度が変更されていなくても、道路のジオメトリに密接に沿うポリラインを作成するために、複数の道路セグメントが返されます。