2016-05-09 2 views
0

Как я могу использовать LocationManager для локализации места реже?Захват местоположения реже с помощью CLLocationManager

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

    print(locations) 

    var truckLocation:CLLocation = locations[0] 

    var latitude = truckLocation.coordinate.latitude 
    var longitude = truckLocation.coordinate.longitude 
    var latitude2 = 37.331469 
    var longitude2 = -122.029825 
    ref.childByAppendingPath("users/\(ref.authData.uid)/lat").setValue(latitude) 
    ref.childByAppendingPath("users/\(ref.authData.uid)/lon").setValue(longitude) 


    var latDelta: CLLocationDegrees = 0.01 
    var lonDelta: CLLocationDegrees = 0.01 

    var span:MKCoordinateSpan = MKCoordinateSpanMake(latDelta, lonDelta) 
    var location: CLLocationCoordinate2D = CLLocationCoordinate2DMake(latitude, longitude) 
    var location2: CLLocationCoordinate2D = CLLocationCoordinate2DMake(latitude2, longitude2) 
    var region: MKCoordinateRegion = MKCoordinateRegionMake(location, span) 
    self.map.setRegion(region, animated: false) 

    var locA: CLLocation = CLLocation(latitude: latitude, longitude: longitude) 
    var locB: CLLocation = CLLocation(latitude: latitude2, longitude: longitude2) 

} 

В другой части моего кода кнопка включает и выключает мониторинг местоположения. Однако, когда активен, я в настоящее время нажимаю новые данные о местоположении в Firebase примерно один раз в секунду, что намного больше, чем мне нужно. Как я могу сделать эти обновления намного реже, скажем, 5 минут?

+0

https://developer.apple.com/library/ios/documentation/CoreLocation/Reference/CLLocationManager_Class/#//apple_ref/occ/instm/CLLocationManager/allowDeferredLocationUpdatesUntilTraveled:timeout: –

+0

@Joe Sloan, ты особенно после менее частых обновлений местоположения, или для вас важны значительные изменения в местоположении? – paulvs

+0

@paulvs Значительное изменение местоположения будет действительно идеальным! –

ответ

0

Вот как я получаю свое местоположение один раз. Если вы прочтете документацию в Xcode, она сообщит, что manager.location возвращает последнее найденное местоположение пользователя.

func locationManager(manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) { 
     if let userLocation = manager.location { 
     let locValue: CLLocationCoordinate2D = manager.location!.coordinate 
     print("locations = \(locValue.latitude) \(locValue.longitude)") 
     } else { 
     print("we dont need user location for testing") 
     } 

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