В настоящее время я использую 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];
}
Спасибо за любые оптимизационные трюки, чтобы ускорить это.