Каков ваш опыт в отношении точности основных служб определения местоположения?

#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 делает это, чтобы избежать дрожания отображаемой карты при стоянии на месте, но это, несомненно, раздражает, когда вы двигаетесь медленно.