Как ограничить результат API полного заполнения Google Place только в Нью-Йорке? - PullRequest
0 голосов
/ 04 июня 2019

Я использую google place auto complete API для поиска адресов в моем приложении.Я хотел ограничить результаты автозаполнения Google в определенном городе (например, поиск адресов только в Нью-Йорке).

Я знаю, что это можно сделать через Связанные координаты , но я не знаю, как его найти (т. Е. Координаты, привязанные к Нью-Йорку)

Я искал черездокументация о том, как ограничить результаты определенным городом (например, только Нью-Йорк), но это очень запутанно.

Примечание. Я использую GMSAutoCompleteController для google auto complete API.

Пожалуйста, дайте мне знать, как это сделать.

// Code :

 @IBAction func textfieldDidTapped(_ sender: Any) {
        listingAddressTextfield.resignFirstResponder()
        let controller = GMSAutocompleteViewController()
        let filter = GMSAutocompleteFilter()
        filter.type = .address
        controller.autocompleteFilter = filter
        controller.delegate = self
        present(controller, animated: true, completion: nil)
    }


// Delegate Methods...

extension ViewController: GMSAutocompleteViewControllerDelegate {
    func viewController(_ viewController: GMSAutocompleteViewController, didAutocompleteWith place: GMSPlace) {
        listingAddressTextfield.text = place.name
        dismiss(animated: true, completion: nil)
    }
    func viewController(_ viewController: GMSAutocompleteViewController, didFailAutocompleteWithError error: Error) {
        print("Error: ", error.localizedDescription)
    }
    func wasCancelled(_ viewController: GMSAutocompleteViewController) {
        dismiss(animated: true, completion: nil)
    }
}

1 Ответ

2 голосов
/ 04 июня 2019

Существует два свойства GMSAutocompleteViewController, доступных для ограничения и смещения поиска местоположения.

Пользователь GMSCoordinateBounds, который содержит northEast и southWest координаты. Таким образом, вам нужна northEast и southWest координата Нью-Йорка.

controller.autocompleteBounds = Instance of GMSCoordinateBounds

Затем после того, как вам нужно установить

controller.autocompleteBoundsMode = .restrict

, который будет искать места в пределах вашей ограниченной области.

...