获取用户最终位置IOS

时间:2017-01-26 20:54:32

标签: ios cllocationmanager cllocation

我正在进行查询:

- (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations{
    if (!gotLocation){
        gotLocation = true;
        [locationManager stopUpdatingLocation];
        // DO QUERY
    }
}

但我想知道何时设置最终位置,或者何时制作更准确的位置。我只想查询一次,需要一个精确的查询位置。我知道我可以使用[locations lastObject],但如何确定何时设置最终位置或更精确的位置。

1 个答案:

答案 0 :(得分:0)

您可以查看位置horizontalAccuracy。值越小越准确。您应该保留对收到的最后一个位置的引用,然后当新位置进入时更准确,horizontalAccuracy更小,更新您的参考。

然后,当您收到horizontalAccuracy足够接近您的用例的位置后,您可以拨打stopUpdatingLocation,因为您有自己的位置,然后进行查询。

例如:

CLLocation *location = [locations lastObject];
if (location.horizontalAccuracy < self.lastLocation.horizontalAccuracy) {
    self.lastLocation = location;
    if (self.lastLocation.horizontalAccuracy <= kDesiredLocationAccuracy) {
        // execute query or additional logic
        [locationManager stopUpdatingLocation];
    }
}

希望有所帮助!