Places SDK for iOS と Geocoding API を Maps SDK for iOS とともに使用すると、地域を検索して、場所に関する詳細情報を取得できます。Places SDK for iOS と Geocoding API は、プレイス ID を取得できる強力で安定した代替手段です。すでにプレイス ID を使用している場合は、その ID を境界線用データドリブン スタイル設定で再利用できます。
プレイスとジオコーディングは、次の方法で 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 を検索する。
- 境界線にズームするビューポートを取得する。
- 境界線の対象物タイプ(地域区分など)を取得します。
- フォーマット済みの住所を取得します。米国地域の「地名、州、国」に解決されます(例: 「カークランド、ワシントン州、米国」)。
- 写真など、その他の便利なデータを取得する。
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