2015-06-25 2 views
0

Я добавляю mapKit для своего приложения, и я устанавливаю середину карты как текущее местоположение лиц, в lat и lng. Я могу заставить его работать, однако он постоянно обновляется каждый раз. Я хочу, чтобы он обновлялся один раз, когда приложение загружается, а затем не обновляется. Возможно обновление каждые 2 минуты. Вот мой код:Обновление местоположения только один раз

func locationManager(manager: CLLocationManager!, 
    didUpdateLocations locations: [AnyObject]!) 
{ 
    var latestLocation = locations.last as! CLLocation 


    let location = CLLocationCoordinate2D(latitude: latestLocation.coordinate.latitude, longitude: latestLocation.coordinate.longitude) 
    let span = MKCoordinateSpanMake(0.015, 0.015) 

    //Let our point be the center of our span 
    //region holds value of span and location 
    let region = MKCoordinateRegion(center: location, span: span) 

    //set up region on mapView 
    mapView.setRegion(region, animated: true) 

    //MKPointAnnotation defines a concrete annotation 
    let annotation = MKPointAnnotation() 
} 

ответ

4

Если вы ориентируетесь только на iOS 9, посмотрите на новый метод requestLocation(). Он решает вашу проблему. Если вы должны быть ориентированы на более старые версии IOS, вы можете добавить stopMonitoringLocation() к

func locationManager(
    manager: CLLocationManager!, 
    didUpdateLocations locations: [AnyObject]! 
) 

Это остановит мониторинг, как только вы получите одно чтение ...

1

Я не уверен, что ваш стартовый вам менеджер местоположения с, но я думаю, что вы можете захотеть взглянуть на использование:

startMonitoringSignificantLocationChanges() 

, чтобы начать свой менеджер местоположения. Вот документация на эту тему по яблоку: https://developer.apple.com/library/prerelease/ios/documentation/CoreLocation/Reference/CLLocationManager_Class/index.html#//apple_ref/occ/instm/CLLocationManager/startMonitoringSignificantLocationChanges

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