您可以使用地點介面集服務,並使用 搭配使用 Geocoding API 和 Maps SDK for Android 來搜尋區域,以及 取得更多地點的相關資訊。Places 服務和 Geocoding API 是功能強大且穩定的替代方案,可用於取得地點 ID。如果您已在使用地點 ID,就能透過界線資料導向樣式重複使用這些 ID。
如要將 Places 服務和 Geocoding 新增至 Maps SDK for Android 應用程式,請按照下列步驟操作:
- Places SDK for Android 是 Android 程式庫,其中包含用於傳回地點資訊的方法。
- Places API 會使用 HTTP 要求傳回地點資訊。
- 地理編碼器類別 可以根據使用者輸入的內容,動態進行地理編碼及反向地理編碼。
- Geocoding API 可讓您對已知靜態地址進行地理編碼。
使用 Places 服務
使用 Text Search (新版) 尋找地點 ID
您可以使用 Places API 中的 Text Search (新版) REST API,在欄位遮罩中指定 places.id
,取得包含區域資料的地點 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 尋找區域
Place Autocomplete
Places SDK for Android 中的服務可讓您以簡便的方式
您的使用者搜尋區域。如何設定 Places Autocomplete 服務
只傳回區域,請使用
AutocompleteSupportFragment.setTypesFilter(List)
將類型篩選器設為 PlaceTypes.REGIONS
。
取得區域的地點詳細資料
Place Details Places SDK for Android 中的服務傳回一個區域的資料 非常實用例如,您可以:
- 根據地點名稱搜尋界線地點 ID。
- 取得可視區域以縮放至界線。
- 取得界線的地圖項目類型 (例如
locality
)。 - 取得格式化地址,該地址會解析為「Place Name, State, Country」英吋 美國地區 (例如「歐特姆瓦, IA, 美國」)。
- 取得相片等其他實用資料。
使用 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地理編碼範例如下 service 函式會傳回位於 指定的經緯度座標:
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