Точность GPS iPhone - Чтение Изменений даже несмотря на то, что устройство неподвижно - PullRequest
2 голосов
/ 04 октября 2011

Я работаю над приложением, которое рассчитывает расстояние, пройденное от начальной точки до конца. Я сделал все, чтобы получить меняющиеся координаты и измерить расстояние между этими координатами. Теперь настоящая проблема заключается в том, что даже если я оставляю свой iPhone неподвижным через несколько секунд, показания GPS показывают отклонение, а CLLocationDistance говорит мне, что я сдвинулся на несколько 100 метров, в то время как я тоже немного не сдвинулся. Что я могу сделать, чтобы повысить точность моего приложения?

Заранее спасибо.

Ответы [ 2 ]

2 голосов
/ 04 октября 2011

GPS на iPhone работает, чтобы сохранить батарею. Первый набор координат будет последним известным координатом телефона. И в зависимости от точности, которую вы хотите, он попытается найти лучшее решение, сначала будет использовать триангуляцию на Wi-Fi или вышках сотовой связи.

Через некоторое время поступает сигнал GPS, который дает вам более точное положение, и iOS прекратит обновление, только если вы сообщите об этом или если будет достигнута желаемая точность.

Что вы можете сделать, это проверить правильность полученной позиции и посмотреть, соответствует ли она вашим критериям. Невозможно сразу получить самое начисленное исправление, это займет некоторое время.

1 голос
/ 04 октября 2011

Невозможно улучшить точность вашего GPS в вашем приложении, но вы можете улучшить точность результатов.

Прежде всего, попробуйте поиграть с помощью filterFilter вашего CLLocationManger.

/*
 *  distanceFilter
 *  
 *  Discussion:
 *      Specifies the minimum update distance in meters. Client will not be notified of movements of less 
 *      than the stated value, unless the accuracy has improved. Pass in kCLDistanceFilterNone to be 
 *      notified of all movements. By default, kCLDistanceFilterNone is used.
 */
@property(assign, nonatomic) CLLocationDistance distanceFilter;

Также желаемая точность

/*
 *  desiredAccuracy
 *  
 *  Discussion:
 *      The desired location accuracy. The location service will try its best to achieve
 *      your desired accuracy. However, it is not guaranteed. To optimize
 *      power performance, be sure to specify an appropriate accuracy for your usage scenario (eg,
 *      use a large accuracy value when only a coarse location is needed). Use kCLLocationAccuracyBest to
 *      achieve the best possible accuracy. Use kCLLocationAccuracyBestForNavigation for navigation.
 *      By default, kCLLocationAccuracyBest is used.
 */
@property(assign, nonatomic) CLLocationAccuracy desiredAccuracy;

И, наконец, вы должны играть с точностью получаемых обновлений местоположения. Отказ от неправильного количества обновлений местоположения на основе их точности - это хороший способ избавиться от этих не очень действительных местоположений. Но также имейте в виду, что для получения действительно хорошего сигнала точности GPS потребуется некоторое время.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...