Я просматривал документацию Google, чтобы получить текущее местоположение, но я изо всех сил пытаюсь указать местоположение в ViewDidLoad, как вы можете видеть, я установил фиксированное местоположение на Syndey Australia. В документации google doc при указании текущего местоположения они используют «location.coordinate по умолчанию», я не могу получить доступ к defaultLocation.coordinate в своем коде.
вот ссылка на документацию: https://developers.google.com/maps/documentation/ios-sdk/current-place-tutorial
это код внутри viewDidLoad
GMSServices.provideAPIKey("AIzaSyARsPfNs54hrUAC4yKtHeu2jXfGjeA0b-E")
GMSPlacesClient.provideAPIKey("AIzaSyARsPfNs54hrUAC4yKtHeu2jXfGjeA0b-E ")
let camera = GMSCameraPosition.camera(withLatitude: -33.86, longitude: 151.20, zoom: 6.0)
mapView = GMSMapView.map(withFrame: CGRect.zero, camera: camera)
view = mapView
// creating the marker //
let marker = GMSMarker()
marker.position = CLLocationCoordinate2D(latitude: -33.86, longitude: 151.20)
marker.title = "Sydney"
marker.snippet = "Australia"
marker.map = mapView
Это мой код расширения
extension MapsViewController: CLLocationManagerDelegate {
func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
let location : CLLocation = locations.last!
print("Location:\(location)")
let camera = GMSCameraPosition.camera(withLatitude: location.coordinate.latitude, longitude: location.coordinate.longitude, zoom: zoomLevel)
if mapView.isHidden {
mapView.isHidden = false
mapView.camera = camera
}
else {
mapView.animate(to: camera)
}
}
func locationManager(_ manager: CLLocationManager, didChangeAuthorization status: CLAuthorizationStatus) {
switch status {
case .restricted:
// display the map the default location
mapView.isHidden = false
case .denied :
print("User denied access to location")
mapView.isHidden = false
case .notDetermined :
print("Location status not deteremined")
case .authorizedAlways : fallthrough
case . authorizedWhenInUse :
print("Location status is OK")
}
}





Вы добавили неправильный код в свой метод searchLocationPressed. Обновите его следующим образом.
@IBAction func searchLocationPressed(_ sender: UIBarButtonItem) {
let autocomplete = GMSAutocompleteViewController()
autocomplete.delegate = self
self.present(autocomplete, animated: true, completion: nil)
}
Ваша ошибка в том, что вы представляете UISearchController вместо GMSAutocompleteViewController.
спасибо, мне было интересно, когда пользователь вводит местоположение, как мне переместить маркер в указанное место
@Menphis, рад помочь тебе.
Вы знаете, как я могу иметь 2 поисковых контроллера для начала и конца путешествия?
ты понимаешь, что я имею в виду?
Я вас не понял, не могли бы вы объяснить это через пользовательский интерфейс? Пожалуйста, обновите изображение для того, что вы хотите.
я объяснил свою ошибку в приведенном выше коде, не могли бы вы мне помочь, пожалуйста
Убедитесь, что вы правильно настроили свой проект.