2016-07-27 5 views
0

Я получил этот код:Получение Мое местоположение с Google Maps быстры

override func viewDidLoad() { 
    super.viewDidLoad() 

    locationManager.delegate = self 
    locationManager.requestWhenInUseAuthorization() 
    locationManager.desiredAccuracy = kCLLocationAccuracyBest 
    locationManager.startUpdatingLocation() 

} 

и этот код:

func locationManager(manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) { 
    let userLocation = locations.last 
    print(userLocation) 
    let camera = GMSCameraPosition.cameraWithLatitude(userLocation!.coordinate.latitude, 
                 longitude: userLocation!.coordinate.longitude, zoom: 12.5) 

    self.mapView.camera = camera 
    self.mapView.myLocationEnabled = true 
    // self.mapView.settings.myLocationButton = true 

    locationManager.stopUpdatingLocation() 
} 

Это работало раньше, но теперь, похоже locationManager даже не будучи называемый как оператор печати, не возвращает никакой информации вообще. В коде нет ошибок, и я не могу понять, почему функция не вызывается. Может ли кто-нибудь заметить что-то очевидное, что я пропал?

Спасибо

+0

Проверьте этот вопрос [SO вопрос] (http://stackoverflow.com/questions/26192480/cannot-get-my-location-to-show-up-in-google-maps-in-ios-8?rq=), если это может вам помочь. – KENdi

+0

@ KENdi, к сожалению, это не та же проблема, о которой я думаю. По какой-то причине функция просто не вызывается. Есть идеи? – tryingtolearn

ответ

0

Я просто реализовать это, и я собираюсь сказать вам, что я сделал

Во-первых, необходимо создать переменную locationManager

let locationManager: CLLocationManager = CLLocationManager()

Вы должны разрешение на запрос в viewDidLoad()

viewMap.delegate = self 
locationManager.delegate = self as? CLLocationManagerDelegate 
locationManager.requestWhenInUseAuthorization() 

Затем я создал расширение и я реализовал делегат

extension MyView: CLLocationManagerDelegate { 

    func locationManager(_ manager: CLLocationManager, didChangeAuthorization status: CLAuthorizationStatus) { 
    //here you configure the locationManager 

    locationManager.startUpdatingLocation() 

    viewMap.isMyLocationEnabled = true 
    viewMap.settings.myLocationButton = true 
} 

    func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) { 

    } 

} 

Я надеюсь, что это поможет вам, здесь работает должным образом.

Смежные вопросы