以上で完了です。

開発を始めるには、デベロッパー ドキュメント をご覧下さい。

Google Maps Geocoding API をアクティベートする

まず初めに Google Developers Console で次の作業を行います。

  1. プロジェクトを作成または選択する
  2. Google Maps Geocoding API をアクティベートする
  3. 適切なキーを作成する
続ける

住所をジオコーディングするときのベスト プラクティス

ジオコーディングとは、住所(番地など)を地理的座標(緯度と経度など)に変換するプロセスです。変換した座標は、マップ上に場所の目印を付ける場合や、位置指定を行う場合に使用できます。このドキュメントでは、住所をジオコーディングするときの考慮事項について説明しています。また、Google Maps Geocoding API を使用する最適なタイミングに加えて、Places API プレイス オートコンプリート サービスや Places API テキスト検索サービスが役立つケースについても説明しています。

一般に、完全な住所(たとえば、「48 Pirrama Rd, Pyrmont, NSW, Australia」)をジオコーディングするときに Google Maps Geocoding API を使用します。一方、あいまいな(不完全な)住所をジオコーディングするときや、ユーザー入力に応答する場合などの高レイテンシ シナリオに対しては、Places API プレイス オートコンプリート サービスを使用します。オートコンプリートの候補からアイテムを選択するユーザーがいないときに、自動システムであいまいな住所をジオコーディングする場合は、プレイス オートコンプリートではなく、Places API テキスト検索サービスを使用します。

ユースケースと推奨 API

ユースケース 推奨 API
完全かつ明確な住所 Google Maps Geocoding API ウェブサービス。
ユーザー入力によるあいまいなクエリ(不完全な住所や書式が不適切な住所など) Places API プレイス オートコンプリート サービスがプレイス ID を取得すると、Geocoding API はプレイス ID を latlng にジオコーディングします。
自動システムで入力されたあいまいなクエリ(たとえば、不完全な住所や書式が不適切な住所) Places API テキスト検索サービスがプレイス ID を取得すると、Geocoding API はプレイス ID を latlngs にジオコーディングします。
ユーザー入力に対するリアルタイムな応答 Places API プレイス オートコンプリート サービスがプレイス ID を取得すると、Geocoding API はプレイス ID を latlng にジオコーディングします。
目的地、出発地、またはウェイポイントを住所文字列として指定し、Google Maps Directions API または Distance Matrix API を使用したときのレイテンシに関する問題 Places API プレイス オートコンプリート サービスを使用して、プレイス ID を取得してから、プレイス ID を Directions API または Distance Matrix API に渡すことにより、ジオコーディングのレイテンシを短縮します。

完全な住所

完全な住所文字列(たとえば、「48 Pirrama Rd, Pyrmont, NSW, Australia」)などの明確なクエリは、Geocoding API ウェブサービスによって最適に処理されます。住所のジオコーディング バックエンドは世界中の住所に対応しており、これらの完全かつ明確なクエリタイプに対して高精度な結果を返すように最適化されています。

あいまいなクエリ

あいまいなクエリとは、書式が不適切な住所、不完全な住所、または不要な住所コンポーネントが含まれるクエリのことです。Geocoding API ウェブサービス ジオコーダはあいまいなクエリを処理するように設計されていないため、特に複数のスペルミスや住所以外の無関係な用語が含まれるあいまいなクエリに対しては、不正確な結果を生成したり、結果がまったく生成されないことがあります。

ユーザーがあいまいなクエリ(「123 Main Street」など)を入力する可能性があるユースケースの場合、Places API のプレイス オートコンプリート サービスを使用することをお勧めします。このサービスでは、可能性のある複数のオプションが返され、ユーザーはそれらのオプションを選択できます。Places API では、商業施設やサービスを除外して、ジオコードまたは住所のみを検索するように制限することも可能です。また、オートコンプリートの参照関数は、位置固有の結果を優先して返すことができます。Places API は、完全に明確な位置として Geocoding API ウェブサービスに渡すことが可能なプレイス ID を返します。プレイス ID が渡されると、このウェブサービスは住所の詳細をすべて返し、その住所を latlng にジオコーディングします。詳細については、AndroidiOSJavaScriptPlaces API Web Service のプレイス オートコンプリート サービスの説明をご覧ください。

自動システムで住所のジオコーディングが必要なケースにおいて、複数の予測結果の中から住所を選択するユーザーがおらず、かつクエリがあいまいまたは不完全になる可能性がある場合は、プレイス オートコンプリート サービスの代わりに、Places API テキスト検索サービスを使用できます。また、プレイス検索はあいまいなクエリを Geocoding API よりも適切に処理できます。プレイス検索では検索範囲を指定の領域に制限したり、結果を距離順に並べたりできるため、あいまいなクエリや不完全なクエリの結果をより正確にフィルタリングおよびランク付けすることができます。

ユーザー入力への応答

ユーザー入力に対してリアルタイムで応答するアプリケーションにおいては、API を選択する上で次の 2 つの主要なポイントを考慮する必要があります。

  1. 通常、ユーザーは住所を徐々に入力するため、不完全であいまいな住所をジオコーディングできると、結果がユーザーにすばやく表示されるというメリットがあります。
  2. ユーザー入力に応答するアプリケーションはレイテンシの影響を受けやすくなります。

これらの 2 つの点を考慮すると、ユーザー入力に応答するユースケースでは、Places API のプレイス オートコンプリート サービスを使用するのが最適です。Geocoding API の住所のジオコーディングは、レイテンシが非常に大きく、不完全なクエリやあいまいなクエリの結果が不正確になるため、ユーザー入力にリアルタイムで応答する必要のあるアプリケーションに対して使用することはお勧めしません。詳細については、AndroidiOSJavaScriptPlaces API Web Service のプレイス オートコンプリート サービスの説明をご覧ください。

Directions API および Distance Matrix API のレイテンシの短縮

出発地、目的地、ウェイポイントが住所文字列として指定されている場合は、Google Maps Directions APIDistance Matrix API はルートを計算する前に、Geocoding API と同じバックエンドを使用して、これらの住所をジオコーディングします。この処理は、同じ位置を latlngs またはプレイス ID として指定する場合と比べて、レイテンシを大幅に増加させます。

ユーザー入力に応答するときなど、レイテンシの影響を受けやすい状況でアプリケーションが Directions API または Distance Matrix API を使用しており、出発地、目的地、ウェイポイントが最初に住所文字列として指定されている場合は、Places API のプレイス オートコンプリート サービスを使用して、住所文字列をプレイス ID に変換してから、プレイス ID を Directions API または Distance Matrix API に渡すことにより、レイテンシを最小限にすることをお勧めします。詳細については、AndroidiOSJavaScriptPlaces API Web Service のプレイス オートコンプリート サービスの説明をご覧ください。プレイス オートコンプリートとルートの JavaScript サンプルもご覧ください。

まとめ

ユースケースに応じて、Geocoding API または Places API を使用するか、プレイス オートコンプリート サービスまたはプレイス サービスを Geocoding API と併用すると、レイテンシが小さく、ユーザーに正確なジオコーディングの結果を提供するアプリケーションを作成できます。

エラーの対処と再試行

UNKNOWN_ERROR 応答を受け取った場合、原因は一時的なエラーであるため、しばらく待ってから再試行すると適切に処理されます。Google Maps APIs ウェブサービスのクライアント ライブラリには、リトライ ロジックが含まれており、Google Maps APIs Premium Plan の認証をサポートしているため、こちらを使用することをお勧めします。Google Maps Services 向けの Java ClientPython ClientGo Client、および Node.js Client はコミュニティがサポートするクライアント ライブラリであり、GitHub からダウンロードや更新ができます。インストール手順とサンプルコードも GitHub で入手可能です。

OVER_QUERY_LIMIT ステータス コードを応答として受け取った場合は、API の使用制限を超過しています割り当てを有効利用するための対策を試すことをお勧めします。

フィードバックを送信...

Google Maps Geocoding API
Google Maps Geocoding API
ご不明な点がありましたら、Google のサポートページをご覧ください。