境界線用データドリブン スタイル設定でプレイス サービスと Geocoding API を使用する

プラットフォームを選択: Android iOS JavaScript

Maps SDK for Android でプレイス サービスと Geocoding API を使用して、地域を検索したり、場所の詳しい情報を取得したりすることができます。プレイス サービスと Geocoding API は、プレイス ID を取得できる便利で安定性の高い代替ツールです。すでにプレイス ID を使用している場合、それらの ID を境界線用データドリブン スタイル設定に流用できます。

プレイス サービスとジオコーディングは次の方法で Maps SDK for Android のアプリに追加できます。

  • Places SDK for Android。場所に関する情報を返すメソッドが含まれる Android のライブラリです。
  • Places API。HTTP リクエストを使用して場所に関する情報を返します。
  • Geocoder クラス。ユーザー入力から動的にジオコーディングとリバース ジオコーディングを実行できます。
  • Geocoding API。既知の住所を静的にジオコーディングできます。

プレイス サービスを使用する

テキスト検索(新版)を使ってプレイス ID を取得する

Places API でテキスト検索(新版)の REST API を使用し、フィールド マスクに places.id を指定することで、地域データを含むプレイス ID を取得できます。テキスト検索(新版)を使ってプレイス ID をリクエストしても、料金は発生しません。詳細

たとえば、次の API 呼び出しでカリフォルニア州トリニダード市のプレイス ID を取得できます。

curl -X POST -d '{
  "textQuery" : "Trinidad, CA"
}' \
-H 'Content-Type: application/json' -H 'X-Goog-Api-Key: API_KEY' \
-H 'X-Goog-FieldMask: places.id' \
'https://places.googleapis.com/v1/places:searchText'

Places Autocomplete を使用して地域を検索する

Places SDK for Android の Place Autocomplete サービスを使用すると、ユーザーが地域を簡単に検索できるようになります。地域のみを返すように Places Autocomplete サービスを設定するには、AutocompleteSupportFragment.setTypesFilter(List) でタイプのフィルタを PlaceTypes.REGIONS に設定します。

地域内の場所の詳細を取得する

Places SDK for Android の Place Details サービスで返される地域データは非常に便利です。たとえば、次のことができます。

  • 地名に基づいて境界線のプレイス ID を検索する。
  • 境界線にズームするビューポートを取得する。
  • 境界線の対象物タイプ(locality など)を取得する。
  • フォーマット済みの住所を取得する。米国であれば「地名、州、国」に変換されます(例:「オタムワ、アイオワ、米国」)。
  • 写真など、その他の便利なデータを取得する。

Geocoding API を使用する

Geocoding API を使用して、住所を緯度と経度の座標やプレイス ID に変換したり、緯度と経度の座標やプレイス ID を住所に変換したりできます。境界線用データドリブン スタイル設定と組み合わせて、次のような用途に使用できます。

  • ジオコーディングを使用して地域のビューポートを取得する。
  • ジオコーディングの呼び出しにコンポーネントのフィルタリングを適用して、行政区域 1~4、地域区分、または郵便番号のプレイス ID を取得する。
  • リバース ジオコーディングを使用して緯度と経度の座標でプレイス ID を取得する、または特定の場所にあるすべてのコンポーネントのプレイス ID を返す。

次の例では、住所(エスケープ済み URL)を使用して Geocoding API に対するリクエストを行います。

https://maps.googleapis.com/maps/api/geocode/json?address=1600%20Amphitheatre%20Pkwy%20Mountain%20View%20CA&key=YOUR_API_KEY

リバース ジオコーディングを使用してプレイス ID を見つけることができます。以下の例のジオコーディング サービスの関数は、指定された緯度と経度の座標にあるすべての住所コンポーネントのプレイス ID を返します。

https://maps.googleapis.com/maps/api/geocode/json?latlng=41.864182,-87.676930&key=YOUR_API_KEY

リバース ジオコーディングにコンポーネント フィルタリングを組み合わせて、指定された場所の、以下の 1 つ以上のタイプの住所コンポーネントを取得します。

  • administrativeArea
  • country
  • locality
  • postalCode

次の例の関数では、ジオコーディング サービスでリバース ジオコーディングにコンポーネントの制限を追加して、指定された場所の locality タイプの住所コンポーネントのみをすべて取得します。

https://maps.googleapis.com/maps/api/geocode/json?latlng=41.864182,-87.676930&result_type=locality&key=YOUR_API_KEY