如何将Google Place自动完成api结果限制为仅纽约?

时间:2019-06-04 13:08:46

标签: ios swift google-maps core-location

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

我知道可以通过边界坐标完成此操作,但是我不知道如何找到它(即纽约特定的边界坐标)

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

  

注意:我正在使用GMSAutoCompleteController进行Google自动完成   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 个答案:

答案 0 :(得分:2)

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

用户GMSCoordinateBounds,其中包含northEastsouthWest坐标。因此,您需要纽约的northEastsouthWest坐标。

controller.autocompleteBounds = Instance of GMSCoordinateBounds

然后需要设置

controller.autocompleteBoundsMode = .restrict

它将搜索您的边界区域内的地点。