2017-09-04 90 views
0

我想在Swift 3.0中使用谷歌地方做Google自动完成。但我需要根据当前位置进行搜索。例如,如果我在印度加尔各答,然后键入搜索关键字“Ko”,它将显示加尔各答第一个结果使用本地搜索快速谷歌自动完成

任何人都可以帮助我。 这是我的代码。 我进口GooglePlaces在我的课

@IBAction func txtFieldLocationDidStartEditing(_ sender: Any) { 
    self.placeAutocomplete() 
} 
func placeAutocomplete() { 
    let autocompleteController = GMSAutocompleteViewController() 
     autocompleteController.delegate = self 
    present(autocompleteController, animated: true, completion: nil) 
} 

// MARK: - 自动完成委托

func viewController(_ viewController: GMSAutocompleteViewController, didAutocompleteWith place: GMSPlace) { 
    print("Place name: \(place.name)") 
    dismiss(animated: true, completion: nil) 
} 

func viewController(_ viewController: GMSAutocompleteViewController, didFailAutocompleteWithError error: Error) { 
    // TODO: handle the error. 
    print("Error: ", error.localizedDescription) 
} 

// User canceled the operation. 
func wasCancelled(_ viewController: GMSAutocompleteViewController) { 
    dismiss(animated: true, completion: nil) 
} 

// Turn the network activity indicator on and off again. 
func didRequestAutocompletePredictions(_ viewController: GMSAutocompleteViewController) { 
    UIApplication.shared.isNetworkActivityIndicatorVisible = true 
} 

func didUpdateAutocompletePredictions(_ viewController: GMSAutocompleteViewController) { 
    UIApplication.shared.isNetworkActivityIndicatorVisible = false 
} 

请人帮我解决一下。 在此先感谢。

+0

你可以与你的MapView的边框 – nathan

回答

1

GMSAutocompleteViewController提供的唯一的API就是设置GMSCoordinateBounds像这样(reference):

func placeAutocomplete() { 
    let visibleRegion = mapView.projection.visibleRegion() 
    let bounds = GMSCoordinateBounds(coordinate: visibleRegion.farLeft, coordinate: visibleRegion.nearRight) 

    let autocompleteController = GMSAutocompleteViewController() 
    acController.autocompleteBounds = bounds 
    autocompleteController.delegate = self 
    present(autocompleteController, animated: true, completion: nil) 
} 
+0

提供API谢谢@nathan,设置范围是工作的罚款。 –