Maps SDK for iOS で Places SDK for iOS と Geocoding API を使用すると、地域を検索したり、場所の詳しい情報を取得したりすることができます。Places SDK for iOS と Geocoding API は、プレイス ID を取得できる便利で安定性の高いツールです。すでにプレイス ID を使用している場合は、境界線用データドリブン スタイル設定でそれらの ID を再利用できます。
Maps SDK for iOS アプリに Places とジオコーディングを追加する方法は次のとおりです。
- Places SDK for iOS は、HTTP リクエストを使用して場所に関する情報を返します。
- CLGeocoder クラスは、ユーザー入力からジオコーディングとリバース ジオコーディングを動的に実行できます。
- Geocoding API を使用すると、既知の住所を静的にジオコーディングできます。
Places API を使用する
Places API Text Search は、「渋谷 ピザショップ」「表参道 靴店」「123 番地」といった文字列に対して、場所のセットについての情報を返します。テキスト文字列と、その時点で設定済みの地域バイアスをもとに、場所のリストを返すサービスです。
Places Autocomplete サービスを使用すると、ユーザーが地域を検索する際に便利な方法を提供できます。定義されたリージョン内の結果を表示するには、
GMSAutocompleteFilter
にlocationRestriction
を設定します。
地域の Place Details を取得する
地域の Place Details データも有効です。たとえば、次のようなことができます。
- 地名に基づいて境界線のプレイス ID を検索する。
- 境界線にズームするビューポートを取得する。
- 境界の対象物タイプ(地域など)を取得します。
- フォーマット済みの住所を取得する。米国であれば「地名、州、国」に変換されます(例:「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