我目前正在使用CoreLocation + CLLocationManager来将用户当前位置与N个其他位置进行比较.我面临的问题是我正在处理位置彼此接近的城市区域,所以我需要在不牺牲太多时间的情况下准确地指出用户的位置.我的计算是准确的,问题是,收集10个样本需要太长时间.我将在下面粘贴我的过滤器/精确度相应的代码.如果有人可以评论我如何加快速度,那就太好了.直到我加速,它在我的应用程序中相当无用,因为它目前需要大约3-4分钟来收集信息,这是我的目标人群不接受的持续时间.
代码看起来像这样:
[self.locationManager setDistanceFilter:kCLDistanceFilterNone];
[self.locationManager setDesiredAccuracy:kCLLocationAccuracyBest];
- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation
{
if (newLocation.horizontalAccuracy > 0.0f &&
newLocation.horizontalAccuracy < 120.0f) { // roughly an accuracy of 120 meters, we can adjust this.
[myLocs addObject:newLocation];
}
Run Code Online (Sandbox Code Playgroud)
感谢任何优化技巧,以加快这一进程.