我在从谷歌地图地点自动完成中检索数据时遇到了问题,因为我的 View 在显示 map 时确实加载了纬度和经度 [Unity] 是默认值
let camera = GMSCameraPosition.camera(withLatitude: 30.7096, longitude: 76.7016, zoom: 12)
let mapView = GMSMapView.map(withFrame: CGRect(x: 0, y: 58, width: 320, height: 510), camera: camera)
let marker = GMSMarker()
marker.position = camera.target
marker.snippet = "Hello World"
marker.map = mapView
self.mapSize.addSubview(mapView)
}
@IBAction func autocompleteClicked(_ sender: UIButton)
{
let autocompleteController = GMSAutocompleteViewController()
autocompleteController.delegate = self as! GMSAutocompleteViewControllerDelegate
present(autocompleteController, animated: true, completion: nil)
}
@IBOutlet weak var mapSize: UIView!
最佳答案
您是否在父 View Controller 中实现了 GMSAutocompleteViewControllerDelegate 协议(protocol)?
extension ViewController: GMSAutocompleteViewControllerDelegate {
// Handle the user's selection.
func viewController(_ viewController: GMSAutocompleteViewController, didAutocompleteWith place: GMSPlace) {
print("Place name: \(place.name)")
print("Place address: \(place.formattedAddress)")
print("Place attributions: \(place.attributions)")
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
}
}
关于swift - 我如何通过搜索地点来检索坐标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45314182/