エラー
エラーが発生した場合は、標準形式のエラー レスポンスの本文が返され、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 Cloud Console を使用して登録してください。 | リクエストは、次の 1 つ以上の理由で拒否されました。
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 回のクエリで送信できるポイント数に制限はありますか?
- はい、1 つのクエリに指定できるポイントは最大 100 個です。
- スナップされた緯度と経度のペアを保存するには、どの程度の精度を使用すればよいですか?
- スナップされたパスが、最大ズームレベルであっても、すべてのズームレベルで道路に沿って進むようにするには、スナップした緯度と経度のペアを小数点以下 7 桁の精度で保存する必要があります。
- エンコードされたポリラインを使用して、スナップされたパスを表示できますか?
- エンコードされたポリラインは、小数点以下 5 桁までの精度にしか指定されないため、約 2 メートルの誤差が生じます。したがって、スナップしたパスを高ズームレベルで道路に沿って配置する場合、エンコードされたポリラインは適していません。
一般的な問題
- 一部のポイントがスナップされない、またはスナップされたパスにギャップがある。これを修正するにはどうすればよいですか?
-
- 一定の時間間隔でポイントをサンプリングする場合は、ポイントのサンプリング間隔を短くします(1 ~ 10 秒ごと)。より長い間隔(60 秒など)を使用すると、道路をスナップするアルゴリズムが走行する道路を十分な精度で特定できない場合があります。
- 地図を手動でクリックしてポイントを作成する場合、スナップ アルゴリズムで適切に処理されないポイントまたはスパースなポイントを含むパスを簡単に作成できます。スナップ アルゴリズムは、ポイント同士が近付いている場合に最適に機能します。道路にスナップのデモを試すか、道路インスペクタを使用して経路をテストします。
- ズームインすると、スナップされたパスがギザギザになったり、道路から少し外れたりするのはなぜですか?
-
- スナップされた緯度と経度のペアを表示する前に、精度を切り捨てていますか?スナップされた緯度と経度のペアを小数点以下 7 桁未満の精度で格納すると、スナップされたパスが地図上に表示される際に精度エラーが発生します。
- エンコードされたポリラインを使用していますか?エンコードされたポリラインでは、緯度と経度のペアが小数点以下 5 桁に切り捨てられるため、数メートルの誤差が生じるため、ズームレベルが高いと線がギザギザになったり、道路から少し外れたりします。
上記のいずれも該当しない場合は、地図タイルが最近更新されたために、スナップに使用された道路インデックスとの同期が取れていない可能性があります。影響を受けるクエリが数件しかない場合、これが原因である可能性があります。Google マップは定期的に更新されているため、この現象はときどき発生することがあります。また、地図上の古い道(数週間前に撮影した道など)を定期的に確認すると、より頻繁に発生します。最適な表示を実現するには、古い道を地図に表示する直前に再度スナップすることで、スナップに使用される地図タイルと道路インデックスの不整合を最小限に抑える必要があります。
- 道路 X の制限速度が正しく表示されない原因は何ですか。
- 速度制限はいくつかのソースで設定されており、精度と対応範囲はさまざまです。特定のパターン(特定の道路種別や特定の地域での速度制限が常に間違っているなど)を見つけた場合は、以下の手順に沿って Google にお知らせください。
- パソコンで Google マップまたは Android 向け Google マップ アプリを開きます。
- 左側のメニューを開きます。
- [フィードバックを送信] を選択します。注: ログインを求められる場合があります。
- [地図を編集] を選択します。
- 編集する道路セグメントを選択します。
- [次へ] を選択します。
- [その他] で、その道路の制限速度が間違っていることを指定します。
- [送信] を選択します。
- スナップされたパスが道路に沿っているのではなく、曲がり角を曲がっているのはなぜですか?
-
この問題を解決するには、次の点を確認します。
interpolate
パラメータがtrue
に設定されていることを確認します。- 元のデータポイントが十分な間隔(1 ~ 10 秒ごと)でサンプリングされていることを確認します。
- 制限速度が変更されていない道路について、スナップされたパスに道路セグメントが多数返されるのはなぜですか?
interpolate
パラメータがtrue
に設定されている場合、道路へのスナップ クエリは、曲がり角、カーブ、ロータリー交差点を走る道路に従うポリラインを返します。道路がカーブしている場合、制限速度が変更されていなくても複数の道路セグメントが返されます。これにより、道路の形状にほぼ沿ったポリラインが作成されます。