我正在进行查询:
- (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations{
if (!gotLocation){
gotLocation = true;
[locationManager stopUpdatingLocation];
// DO QUERY
}
}
但我想知道何时设置最终位置,或者何时制作更准确的位置。我只想查询一次,需要一个精确的查询位置。我知道我可以使用[locations lastObject]
,但如何确定何时设置最终位置或更精确的位置。
答案 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];
}
}
希望有所帮助!