トラブルシューティング

エラー

エラーが発生した場合は、標準形式のエラー レスポンスの本文が返され、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\" パラメータに無効な値が含まれています: Ж" リクエストに無効な引数が含まれています。このエラーの原因として最も可能性が高いのは、以下のとおりです。
  • path パラメータに問題があります。
    ポイント数が 1 以上 100 未満であることを確認してください。各ポイントは、カンマで区切った数字のペアにする必要があります(例: 48.409114,-123.369158)。各ポイントはパイプ記号(|)で区切ります。
  • リクエストに無効な placeId が含まれています。
  • リクエストに placeIdpath の両方が含まれています。各リクエストで指定できるパラメータは 1 つのみです。

存在しない道路や道路ではない場所に対して placeId が渡された場合、このエラーは返されません。

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

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 秒など)を使用すると、道路へのスナップ アルゴリズムで、走行した道路を十分な精度で特定できない場合があります。
  • 地図を手動でクリックしてポイントを作成する場合、スナップ アルゴリズムで適切に処理されないポイントやスパースなポイントが少ないパスを簡単に作成できます。スナップ アルゴリズムは、互いに近い位置にあるポイントに最適に機能します。Snap to Roads のデモを試すか、Roads Inspector を使用してパスをテストします。
ズームインすると、スナップされたパスがギザギザになったり、道路から少し外れているのはなぜですか?
  • スナップされた緯度と経度のペアを表示する前に、その精度を切り捨てるのですか?スナップされた緯度と経度のペアを小数点以下 7 桁未満の精度で格納すると、スナップされたパスが地図上に表示される際に精度エラーが発生します。
  • エンコードされたポリラインを使用している場合:エンコードされたポリラインは、緯度と経度のペアが小数点以下 5 桁に切り捨てられるため、数メートルの誤差が発生し、ズームレベルが高いと、ギザギザになったり、道路から少し外れた線が表示されたりします。

上記のいずれにも該当しない場合は、地図タイルが最近更新されたために、スナップに使用される道路インデックスと同期しなくなった可能性があります。影響を受けるクエリが数件しかない場合は、これが原因と考えられます。Google マップは定期的に更新されているため、この更新は時折発生する可能性があり、たとえば、数週間前にスナップされたパスなど、地図上の古いパスを定期的に確認すると頻繁に発生する可能性があります。地図を最適に可視化するには、地図に表示する直前に古い道をスナップし、スナップに使用される道路インデックスと地図タイルの不整合を最小限に抑える必要があります。

道路 X の制限速度が正しく表示されない原因は次のうちどれですか。
速度制限は、いくつかの要因によって設定されており、精度や通信可能範囲は異なります。一定のパターン(特定の道路の種類や特定の地域での制限速度が一貫して間違っているなど)を見つけた場合は、次の手順で Google までお知らせください。
  1. パソコンで Google マップまたは Android 向け Google マップ アプリを開きます。
  2. 左側のメニューを開きます。
  3. [フィードバックを送信] を選択します。注: ログインを求められる場合があります。
  4. [地図を編集] を選択します。
  5. 編集する道路セグメントを選択します。
  6. [次へ] を選択します。
  7. [その他] で、その道路の制限速度が間違っていることを示します。
  8. [送信] を選択します。
その他の問題を報告することもできます(道路名が間違っている、間違って描かれている、通行止め、私道など)。
スナップしたパスが道路をたどるのではなく、曲がっているのはなぜですか?
この問題を解決するには、以下の点を確認してください。
  • interpolate パラメータが true に設定されていることを確認します。
  • 元のデータポイントが十分な間隔(1 ~ 10 秒ごと)でサンプリングされていることを確認します。
制限速度の変更がない道路で、スナップされたパスで多くの道路区間が返されるのはなぜですか?
interpolate パラメータが true に設定されている場合、道路をスナップするクエリは、曲がり角、曲線、ロータリーを中心とした道路に沿ったポリラインを返します。道路がカーブしている場合、制限速度が変更されていなくても複数の道路セグメントが返されます。これは、道路の形状に沿ったポリラインを作成するためです。