Доступ к текущему местоположению на картах Google

Я просматривал документацию 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")

    }
}

Убедитесь, что вы правильно настроили свой проект.

Sagar Chauhan 23.01.2019 05:55
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
1
66
1

Ответы 1

Вы добавили неправильный код в свой метод searchLocationPressed. Обновите его следующим образом.

@IBAction func searchLocationPressed(_ sender: UIBarButtonItem) {
    let autocomplete = GMSAutocompleteViewController()
    autocomplete.delegate = self
    self.present(autocomplete, animated: true, completion: nil)
}

Ваша ошибка в том, что вы представляете UISearchController вместо GMSAutocompleteViewController.

спасибо, мне было интересно, когда пользователь вводит местоположение, как мне переместить маркер в указанное место

user10676742 23.01.2019 11:27

@Menphis, рад помочь тебе.

Sagar Chauhan 23.01.2019 11:59

Вы знаете, как я могу иметь 2 поисковых контроллера для начала и конца путешествия?

user10676742 23.01.2019 22:16

ты понимаешь, что я имею в виду?

user10676742 23.01.2019 22:37

Я вас не понял, не могли бы вы объяснить это через пользовательский интерфейс? Пожалуйста, обновите изображение для того, что вы хотите.

Sagar Chauhan 24.01.2019 05:40

я объяснил свою ошибку в приведенном выше коде, не могли бы вы мне помочь, пожалуйста

user10676742 24.01.2019 22:14

Другие вопросы по теме