您可以使用 Places SDK for iOS 和 Geocoding API 搭配 Maps SDK for iOS 搜尋區域,並取得地點的詳細資訊。Places SDK for iOS 和 Geocoding API 是功能強大且穩定的替代方案,可用於取得地點 ID。如果您已在使用地點 ID,就能透過界線資料導向樣式重複使用這些 ID。
在 Maps SDK for iOS 應用程式中加入 Places API 和 Geocoding API 的方法如下:
- Places SDK for iOS 會使用 HTTP 要求傳回地點資訊。
- CLGeocoder 類別可根據使用者輸入內容,動態進行地理編碼及反向地理編碼。
- Geocoding API 可讓您對已知靜態地址進行地理編碼。
使用 Places API
Places API Text Search 可根據字串 (例如「台南魯肉飯」、「西門町附近的鞋店」或「中正路 123 號」),傳回一組地點的相關資訊。這項服務會傳回與文字字串和任何位置自訂調整設定相符的地點清單。
Place Autocomplete 服務可讓使用者輕鬆搜尋區域。如要顯示所定義區域內的結果,請在
GMSAutocompleteFilter
上設定locationRestriction
。
取得區域的地點詳細資料
區域的地點詳細資料資料也相當實用。例如,您可以:
- 根據地點名稱搜尋界線地點 ID。
- 取得可視區域以縮放至界線。
- 取得界線的地圖項目類型 (例如地區)。
- 取得格式化地址,在美國區域中,這個地址會解析為「地點名稱, 州, 國家」,例如「Kirkland, WA, USA」。
- 取得相片等其他實用資料。
使用 Geocoding API
您可以使用 Geocoding API 將地址、經緯度座標或地點 ID 轉換為地理座標,反之亦然。以下用途適合搭配界線資料導向樣式:
- 透過地理編碼取得區域的可視區域。
- 針對地理編碼呼叫進行元件篩選,取得行政區 1 到 4、縣市或郵遞區號的地點 ID。
- 透過反向地理編碼,按經緯度座標尋找地點 ID,甚至是針對特定位置的所有元件傳回地點 ID。
以下範例使用地址 (已以網址逃逸) 向 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
搭配元件篩選使用反向地理編碼,即可取得指定位置上一或多種下列類型的地址元件:
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