首页 > 解决方案 > 如何将 google place 自动完成 api 结果仅限于纽约?

问题描述

我正在使用google place 自动完成 API在我的应用程序中搜索地址。我想将 google place 自动完成结果限制在特定城市(即仅在纽约搜索地址)。

我知道这可以通过绑定坐标来完成,但我不知道如何找到它(即纽约特定的绑定坐标)

我在文档中搜索了如何将结果限制在特定城市(即仅限纽约),但这非常令人困惑。

注意:我将 GMSAutoCompleteController 用于谷歌自动完成 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)
    }
}

标签: iosswiftgoogle-mapscore-location

解决方案


有两个属性GMSAutocompleteViewController可用于限制和偏向您的位置搜索。

GMSCoordinateBounds包含northEastsouthWest协调的用户。所以你需要northEastsouthWest纽约市的坐标。

controller.autocompleteBounds = Instance of GMSCoordinateBounds

然后你需要设置之后

controller.autocompleteBoundsMode = .restrict

这将搜索您有界区域内的地点。


推荐阅读