Maps SDK for iOS で Places SDK for iOS と Geocoding API を使用して、地域を検索したり、場所の詳しい情報を取得したりすることができます。Places SDK for iOS と Geocoding API は、プレイス ID を取得できる便利で安定性の高いツールです。すでにプレイス ID を使用している場合、それらの ID を境界線用データドリブン スタイル設定に流用できます。
Places API と Geocoding API は、次の方法で Maps SDK for iOS のアプリに組み込むことができます。
- Places SDK for iOS は、HTTP リクエストを使用して場所に関する情報を返します。
- CLGeocoder クラスは、ユーザー入力から動的にジオコーディングとリバース ジオコーディングを実行できます。
- Geocoding API を使用すると、既知の住所を静的にジオコーディングできます。
Places API を使用する
Places API Text Search は、「渋谷 ピザショップ」「表参道 靴店」「123 番地」といった文字列に対して、場所のセットについての情報を返します。このサービスは、テキスト文字列や場所の優先度設定と合致するプレイスのリストをレスポンスとして返します。
Places Autocomplete サービスを使用すると、ユーザーが地域を簡単に検索できるようになります。指定したリージョン内の検索結果を表示するには、
GMSAutocompleteFilter
にlocationRestriction
を設定します。
地域の Place Details を取得する
地域の Place Details データも有効です。たとえば、次のようなことができます。
- 地名に基づいて境界線のプレイス ID を検索する。
- 境界線にズームするビューポートを取得する。
- 境界線の対象物タイプ(locality など)を取得する。
- フォーマット済みの住所を取得する。米国であれば「地名、州、国」に変換されます(例: 「Kirkland, WA, USA」)。
- 写真など、その他の便利なデータを取得する。
Geocoding API を使用する
Geocoding API を使用すると、住所、緯度と経度の座標、プレイス ID を地理座標に変換できます。また、その逆も可能です。次のような使用方法は、境界線用データドリブン スタイル設定との組み合わせに最適です。
- ジオコーディングを使用して地域のビューポートを取得する。
- ジオコーディングの呼び出しにコンポーネントのフィルタリングを適用して、行政区域 1 ~ 4、地域区分、または郵便番号のプレイス ID を取得する。
- リバース ジオコーディングを使用して緯度と経度の座標でプレイス ID を取得する、または特定の場所にあるすべてのコンポーネントのプレイス ID を返す。
次の例では、住所(エスケープ済み URL)を使用して Geocoding API に対するリクエストを行います。
https://maps.googleapis.com/maps/api/geocode/json?latlng=41.864182,-87.676930&key=YOUR_API_KEY
リバース ジオコーディングを使用してプレイス ID を見つけることができます。以下の例のジオコーディング サービスの関数は、指定された緯度と経度の座標にあるすべての住所コンポーネントのプレイス ID を返します。
https://maps.googleapis.com/maps/api/geocode/json?latlng=41.864182,-87.676930&result_type=locality&key=YOUR_API_KEY
リバース ジオコーディングにコンポーネント フィルタリングを組み合わせて、指定された場所の、以下の 1 つ以上のタイプの住所コンポーネントを取得します。
administrativeArea
country
locality
postalCode
schoolDistrict
次の例では、ジオコーディング サービスを使用して、リバース ジオコーディングにコンポーネントの制限を追加し、指定された場所の
locality
タイプの住所コンポーネントをすべて取得します。https://maps.googleapis.com/maps/api/geocode/json?latlng=41.864182,-87.676930&result_type=locality&key=YOUR_API_KEY