Я использую конечную точку autocompleteQuery
в режиме фильтра address
в своем приложении, чтобы пользователи могли искать места. Когда они выбирают место, я вызываю конечную точку lookUpPlaceID
, чтобы узнать подробности об этом месте, а затем анализирую возвращенные компоненты адреса, чтобы попытаться извлечь номер улицы + название. Я столкнулся с какой-то странностью, о которой нельзя было бы узнать по обычным каналам:
google place id ChIJUcZ-NbzMj4ARC4FFj9ogS3s - это «Городская ратуша Сан-Хосе»… у него есть набор адресов, но он не отображается при поиске с помощью фильтра «address».
идентификатор места в Google ChIJm-FhNrzMj4ARvjjHMCiJdM8 - это «здание муниципалитета Сан-Хосе»… у него нет адреса, но отображается при поиске с фильтром «адрес» .
Я не могу использовать их инструмент «Изменить это место», потому что он не распознает ChIJm-FhNrzMj4ARvjjHMCiJdM8 как место. По сути, это похоже на ошибку в Google Местах на карте, но я не могу нигде найти сообщение об ошибке: / В основном, просто отправляю сообщение здесь, если кто-то может заметить, что я что-то не так делаю:
func doSearch() {
let filter = GMSAutocompleteFilter()
filter.type = .address
GMSPlacesClient.shared().autocompleteQuery("San Jose City Hall", bounds: bound, filter: filter, callback: { results, error in ... }
}
func onResultSelected(_ result: GMSAutocompletePrediction) {
GMSPlacesClient.shared().lookUpPlaceID(result.placeID, callback: { result, error in ... }
}