トラブルシューティング

エラー

エラーが発生すると、標準形式のエラー レスポンス本体が返され、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\" パラメータに無効な値が含まれています: ☃" リクエストに無効な引数が含まれています。このエラーの最も可能性の高い原因は次のとおりです。
  • path パラメータに問題がある。
    1 つ以上 100 未満の地点を指定していることを確認してください。各ポイントは、48.409114,-123.369158 のように、カンマ区切りの数値のペアである必要があります。地点と地点の間は、パイプ「|」で区切ります。
  • リクエストに無効な placeId が含まれています。
  • リクエストに placeIdpath の両方が含まれています。1 回のリクエストで指定できるのは、どちらかのパラメータのみです。

存在しなくなった道路や道路以外の場所の placeId を渡しても、このエラーは返されません。

403 PERMISSION_DENIED 未登録のリクエストがブロックされました。Google Developers Console からサインアップしてください。 リクエストは、以下のいずれかの理由で拒否されました。
  • API キーがないか、無効です。
  • お客様のアカウントで課金が有効になっていません。
  • ご自身で設定した使用量の上限を超えている
  • 設定したお支払い方法が無効になっている(クレジット カードの期限切れなど)

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 の制限速度が正しく表示されない原因として考えられるものは何ですか?
制限速度は、精度と範囲が異なる複数のソースから取得されます。特定の道路タイプや特定の地域の制限速度が常に間違っているなど、パターンが見つかった場合は、次の手順に沿ってお知らせください。
  1. パソコンで Google マップを開くか、Android 版 Google マップ アプリを開きます。
  2. 左側のメニューを開きます。
  3. [フィードバックを送信] を選択します。注: ログインを求められることがあります。
  4. [地図を編集] を選択します。
  5. 編集する道路セグメントを選択します。
  6. [次へ] を選択します。
  7. [その他] フィールドに、その道路の制限速度が間違っていることを記載します。
  8. [送信] を選択します。
その他の問題(道路の名前が間違っている、道路の描画が間違っている、道路が通行止めになっている、道路が私道であるなど)もここで報告できます。
スナップされたパスが道路に沿って走行せず、角を切り取るのはなぜですか?
この問題を解決するには、以下の点を確認してください。
  • interpolate パラメータが true に設定されていることを確認します。
  • 元のデータポイントが十分に近い間隔(1 ~ 10 秒ごと)でサンプリングされていることを確認します。
速度制限が変更されていない道路のスナップされたパスに、多くの道路区間が返されるのはなぜですか?
interpolate パラメータが true に設定されている場合、道路スナップ クエリは、道路の角、カーブ、ロータリーなどの周囲に沿ったポリラインを返します。道路がカーブしている場合、速度制限が変更されていなくても、道路のジオメトリに沿ったポリラインを作成するために、複数の道路区間が返されます。