您可以搭配使用 Places 服務和 Geocoding API,以及 Maps SDK for Android 來搜尋區域,並取得地點的詳細資訊。地點介面集服務 和 Geocoding API 是功能強大且穩定的替代方案,可協助您取得 地點 ID。如果您已在使用地點 ID,就能透過界線資料導向樣式重複使用這些 ID。
如要將 Places 服務和 Geocoding 新增至 Maps SDK for Android 應用程式,請按照下列步驟操作:
- Places SDK for Android 是 Android 程式庫,內含用來傳回 例如減少干擾
- Places API 會使用 HTTP 要求傳回地點資訊。
- 地理編碼器類別可根據使用者輸入內容,動態進行地理編碼及反向地理編碼。
- Geocoding API 可讓您對已知靜態地址進行地理編碼。
使用地點介面集服務
使用 Text Search (新版) 尋找地點 ID
您可以使用 Text Search (新版)
Places API 中的 REST API,取得包含區域的地點 ID
只要在欄位遮罩中指定 places.id
,即可儲存這些資料。如果僅使用 Text Search (新版) API 要求地點 ID,就不會產生任何費用。瞭解詳情。
舉例來說,如要取得加州千里達的地點 ID,您可以進行下列操作: API 呼叫:
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 中的 Places Autocomplete 服務可讓使用者輕鬆搜尋區域。如何設定 Places Autocomplete 服務
只傳回區域,請使用
AutocompleteSupportFragment.setTypesFilter(List)
敬上
將類型篩選器設為 PlaceTypes.REGIONS
。
取得區域的地點詳細資料
Places SDK for Android 中的 Place Details 服務會傳回區域資料,十分實用。例如,您可以:
- 根據地點名稱搜尋界線地點 ID。
- 取得可視區域以縮放至界線。
- 取得界線的地圖項目類型 (例如
locality
)。 - 取得格式化地址,在美國區域中,這個地址會解析為「地點名稱, 州, 國家」,例如「Ottumwa, IA, USA」。
- 取得相片等其他實用資料。
使用 Geocoding API
Geocoding API 可讓您 轉換為經緯度座標和地點 ID,或將地址轉換成 經緯度座標或地點 ID。以下應用實例適合搭配界線資料導向樣式:
- 透過地理編碼取得區域的可視區域。
- 針對地理編碼呼叫進行元件篩選,取得行政區 1 到 4、縣市或郵遞區號的地點 ID。
- 透過反向地理編碼,按經緯度座標尋找地點 ID,甚至是針對特定位置的所有元件傳回地點 ID。
以下範例使用位址 (網址逸出) 向 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
搭配元件篩選使用反向地理編碼,即可取得指定位置上一或多種下列類型的地址元件:
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