Почему я получаю неправильную позицию GPS после didFailWithError? - PullRequest
0 голосов
/ 26 апреля 2018

Я разработал приложение для Apple Watch 2-3, которое использует внутренний GPS для сохранения трека и получения скорости, расстояния и т. Д.

Приложение написано на Swift, XCODE 9 и использует CLLocation.

Иногда CLLocation отправляет didFailWithError, следующие 3-5 местоположений GPS совершенно неверны, в сотнях метров от реальной точки. Я устанавливаю BestForNavigation и проверяю горизонтальную точность <32м. Я фильтрую местоположения в прошлом. </p>

Это происходит в основном с часами в воде, даже несколько сантиметров.

Кто-нибудь испытывал это?

Спасибо

1 Ответ

0 голосов
/ 26 апреля 2018

спутниковые сигналы GPS довольно слабые; Они передаются со спутников, находящихся на орбите около 20000 км над вами. Для получения точного местоположения GPS-приемник должен получить сигнал от 4 спутников (менее точное исправление можно получить, используя всего 3 спутника).

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

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

Вам просто нужно приложить максимум усилий с данными, которые вы получаете.

...