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