2017-02-04 4 views
0

Мое приложение EXTREMELY зависит от местоположения пользователя, настолько, что точность очень важна для использования приложения. Говоря с моей командой, мы поняли сценарий, что, если пользователь находится в непосредственной близости от другой геозоны, которую мы создали, CoreLocation может не распознать разницу. Существуют ли в настоящее время какие-либо рамки, которые лучше работают для CL или LocationManager в iOS. Я проверяю библиотеку Cocoapods, но все они кажутся довольно близкими друг к другу по функциональности.определение местоположения пользователя с точностью до pinoint iOS

ответ

2

Вы не можете преодолеть физические и технологические ограничения системы GPS. Если вы вызываете CLLocationManager requestLocation, когда менеджер местоположения настроен с наивысшей желаемой степенью desiredAccuracy (а именно kCLLocationAccuracyBestForNavigation), ответ в locationManager(_:didUpdateLocations:) будет таким же точным, как вы собираетесь получить. Использование «библиотеки» не изменит этого.

0

Вы можете установить точность в kCLLocationAccuracyBestForNavigation, а затем вы получите лучшие доступные данные. Если вы не довольны обработкой геосинхронизаций iOS, вы можете попытаться реализовать эту функцию, просто подписавшись на методы делегата.

Таким образом, вы можете также фильтровать CLLocations с низкой точностью и игнорировать их, например.

0

Как говорили другие, нет никакой волшебной пули, чтобы дать вам точность лучше, чем то, что GPS может обеспечить.

Что вы можете сделать, это

  1. Установите desiredAccuracy по максимуму
  2. Проверьте значение точности вы получаете назад от обновлений местоположения, и отклонять показания с горизонтальным значением «точность», которая является слишком большой (так как показание «точность» на самом деле представляет собой «круг путаницы» или радиус в метрах, где телефон действительно может быть расположен.

Обратите внимание, что шаг 2 может занять много времени, чтобы получить приемлемое исправление местоположения , или вы не сможете получить вообще не читается. Основываясь на те испытаниях, которые я провел несколько лет назад, мне было лучше, чем 16 метров, и я смог получить только это качество сигнала на открытой площадке, свободной от зданий и без большого количества древесного покрова. (Однако я не пробовал это в открытой прерии.)

Смежные вопросы