2016-04-11 16 views
0

MapKit ve CoreLocation kullanarak bir iOS uygulaması yapıyorum. Ben arayarak kullanıcının mevcut konumunu elde edebilirsiniz:Kullanıcının gerçekte ne zaman hareket ettiğini kontrol edin

override func viewDidLoad() { 
    super.viewDidLoad() 
    // Do any additional setup after loading the view, typically from a nib. 
    self.setupUI() 

    locationManager.delegate = self 
    locationManager.desiredAccuracy = kCLLocationAccuracyBest 
    self.mapView.delegate = self 
    self.locationManager.startUpdatingLocation() 
    self.mapView.showsUserLocation = true 
    geoCoder = CLGeocoder() 
} 

func locationManager(manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) { 
     let location: CLLocation = locations.last! 
     //  self.addressView.text = "\(location.coordinate.latitude) \(location.coordinate.longitude)" 

     geoCode(location) 
     if (zoomed == false) { 
      zoomToUserLocationAnimated(true) 
      zoomed = true 
     } 
    } 

Ama kullanıcı hareket etmez bile bu işlev denir. OSX'de iOS simulatörü kullanıyorum ve bir lokasyonu simüle ettim, bu yüzden simülatörün hareket etmediğinden gayet eminim, fakat yine de bu fonksiyon deniliyor, kullanıcının yapılıp yapılmadığını kontrol etmenin bir yolu olup olmadığını bilmek istiyorum gerçek bir hareket?

Teşekkür

+0

Konum Yöneticisi Hizmetini nasıl başlatıyorsunuz? – Abizern

+0

benim düzenlemelerimi görün :) –

+0

[startMonitoringSignificantLocationChanges()] 'ı kullanmayı deneyin (https://developer.apple.com/library/ios/documentation/CoreLocation/Reference/CLLocationManager_Class/#//apple_ref/occ/instm/CLLocationManager/startMonitoringSignificantLocationChanges) startUpdatingLocation() ' – Abizern

cevap

0

Geçerli konumu ile önceki konumu karşılaştırmak gerekir. Ancak, konumun kesinlikle kesin olmadığını ve bu nedenle bazı hatalarla karşılaştırdığınızdan emin olmanız gerektiğini unutmayın.

örn. location.distanceTo(prevLocation) > 3.

Ayrıca CLLocation.horizontalAccuracy ve CLLocation.verticalAccuracy görüyoruz. Konumu genellikle GPS'den hesaplanır ve GPS uyduları da hareket olduğunu

Not.

Başka bir seçenek de XX hızının sıfır olup olmadığını kontrol etmektir (yine sıfırdan emin olmak çok güvenli değildir).

+0

yerine downvoter yorum yapabilir misiniz? – Sulthan

İlgili konular