#iphone #objective-c #location
#iPhone #objective-c #Расположение
Вопрос:
Мне нужно оценить возможную точность служб определения местоположения iOS в аэропортах. У кого-нибудь есть относительный опыт? В аэропортах есть шумы и металлическая обстановка, просто любопытно, какую возможную точность можно получить при использовании сотовой связи и GPS? ИМХО, даже GPS может быть недостаточно для отслеживания пользователя с точностью до метров, когда он находится в туннеле или на более низких площадках. Есть мысли и предложения?
Ответ №1:
Ну, вам просто нужно использовать GPS, и да, точность не будет точной с точностью до метра.
Вы можете получить точность от CLLocation
объекта в методе – locationManager:didUpdateToLocation:fromLocation:
делегирования CLLocationManager:
- (void) locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation {
if (signbit(newLocation.horizontalAccuracy)) {
dbgPrint(@"No location");
return;
}
if (newLocation.horizontalAccuracy <= 200) {
// new location is 200 meters in a circle.
}
}
Комментарии:
1. Спасибо. Как вы думаете, какова может быть максимальная или средняя точность, если будет использоваться сотовый метод?
2. примерно от 800 до 500 метров, просто попробуйте сами, войдите
horizontalAccuracy
в– locationManager:didUpdateToLocation:fromLocation:
метод.
Ответ №2:
Я использую режим BestForNavigation только в своем приложении. Если вы находитесь снаружи, то мой опыт показывает, что практическая точность на самом деле намного лучше, чем то, что сообщается в поле horizontalAccuracy . Обычно практическая горизонтальная точность лучше, чем 5 метров. Это опыт из разных точек Европы (Швеция, Нидерланды, Австрия, Италия).
Я видел проблемы с точностью только при медленном движении (например, при скорости ходьбы). В этом случае Apple выполняет «оптимизацию»: когда iPhone думает, что вы стоите на месте, он замораживает события определения местоположения. То есть он будет сообщать об одном и том же местоположении в каждом событии. Он сообщит о новом местоположении только после того, как вы переместите значительное расстояние (порядка 30-50 метров).). Я предполагаю, что Apple делает это, чтобы избежать дрожания отображаемой карты при стоянии на месте, но это, несомненно, раздражает, когда вы двигаетесь медленно.