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

Maps JavaScript API でプレイス サービスと 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