CLLocationManager返回多个坐标

时间:2014-10-02 19:53:07

标签: swift cllocationmanager

我正在努力在加载时从设备获取位置(lat \ long),但每次返回不同数量的坐标(每个坐标在1到5之间)。我刚刚进入Swift并且我认为我遗失了一些东西,但是除了需要使用之外我还没有找到任何其他东西.stopUpdatingLocation()

我想我可能会在Swift中遗漏一些东西,但我不确定是什么。

var locationManager = CLLocationManager()


override func viewDidLoad() {
    super.viewDidLoad()

    if(CLLocationManager .locationServicesEnabled()){
        locationManager.delegate = self
        locationManager.desiredAccuracy = kCLLocationAccuracyHundredMeters
        locationManager.requestWhenInUseAuthorization()
        locationManager.startUpdatingLocation()
    }
}


func locationManager(manager: CLLocationManager!, didUpdateLocations locations:[AnyObject]! ) {
            var locationArray = locations as NSArray
            var locationObj = locationArray.lastObject as CLLocation
            var coord = locationObj.coordinate
            self.locationManager.stopUpdatingLocation()

            println(coord.latitude)
            println(coord.longitude)
    }

1 个答案:

答案 0 :(得分:0)

与Objective-c和Android相同,这是完全平常的。这些数字将自行稳定下来。

我通常做的是计算两次连续更新之间的变化,一旦变化非常小 - 这意味着到那时我得到了正确的坐标。

顺便说一下,一旦稳定,我总是减少位置更新的频率以节省能源。