Мне нравятся ответы Майкла и Невана. Я хотел бы добавить больше информации из моего личного опыта/мнения о разработке приложения iOS на основе местоположения с мониторингом регионов, а также выделить некоторые важные моменты:
Будьте реалистичны в мониторинге регионов
Мониторинг региона использует глобальную систему позиционирования (GPS), Wi-Fi и другие технологии, чтобы определить, находится ли устройство внутри или за пределами контролируемого региона. Не забывайте, что наша земля составляет 510 квадратных километров и около 30% составляет суша (149 миллионов квадратных километров). Это огромная территория. Помните недавнее дело о пропаже MH370? Наши современные самые передовые технологии не могли даже точно определить предполагаемую область этого пропавшего самолета.
Если вы хотите отслеживать небольшой регион с радиусом 10 метров. Возможно, он мог бы работать в густонаселенном городе с множеством вышек сотовой связи и зонами, подключенными к Wi-Fi. Но в то же время сигнал может быть заблокирован высотными башнями, что может привести к потере сигнала на несколько секунд/минут, что приведет к задержке доставки уведомления.
Таким образом, вам действительно нужно рассмотреть приведенную выше информацию, прежде чем решить, насколько велика область, которую вы хотите отслеживать. Лично я считаю, что радиус 10 метров слишком мал.
Будьте реалистичны в отношении количества отслеживаемых регионов
Текущая технология Core Location может отслеживать только максимум 20 регионов в одном приложении. Убедитесь, что контролируемые области также не слишком близко друг к другу.
Я лично протестировал 3 области радиусом около 100 метров, которые находятся примерно в 200 метрах друг от друга. Иногда я могу получать уведомления из всех этих трех регионов, когда проезжаю через них, но иногда я могу получать уведомления только из первого региона. Что может быть причиной? Я не мог знать. Регионы могут быть слишком близко друг к другу. Или вышки сотовой связи решают, что мое устройство на самом деле не входит в контролируемый регион.
На StackOverFlow был один человек, который хочет мониторить 1800 точек на нашей Земле. Не уподобляйтесь ему, поскольку он совершенно нереалистичен и, вероятно, не понимает ограничений текущей Core Location
технологии. Ссылка: Проверьте, местоположение пользователя находится рядом с некоторыми точками
Точная настройка LocationManager
Если вашему приложению необходимо контролировать небольшую область или часто обновлять местоположение. Вот потенциальные свойства вашего диспетчера местоположения.
self.locationManager.desiredAccuracy = kCLLocationAccuracyBestForNavigation;
self.locationManager.distanceFilter = kCLDistanceFilterNone;
self.locationManager.activityType = CLActivityTypeAutomotiveNavigation;
kCLLocationAccuracyBestForNavigation
потребляет больше энергии по сравнению с kCLLocationAccuracyBest
. Зато будет точнее.
Я обнаружил сбой в отслеживании регионов в iOS 7, когда одновременно срабатывает несколько уведомлений в разных отслеживаемых регионах. Я нашел решение, чтобы отфильтровать этот глюк. Для получения дополнительной информации посетите: Регион Мониторинг сбоев в iOS 7 — несколько уведомлений одновременно
Не будьте слишком амбициозны
Возможно, вы использовали некоторые приложения, которые могут отслеживать небольшой регион, очень точны и могут уведомлять вас в ту же секунду, когда вы входите в регион. И у вас есть вдохновение разработать точно такое же приложение, чтобы конкурировать с ними. Но понимаете ли вы, что происходит за кулисами? Какие дополнительные технологии они используют? И с какими партнерами они сотрудничают?
Я провел небольшое исследование и обнаружил, что некоторые технологии, которые они используют, недоступны для широкой публики. Некоторые из этих компаний хорошо финансируются и могут платить надбавку телекоммуникационным компаниям, чтобы получить максимальную точность определения местоположения для лучшего пользовательского опыта. Я не понимаю деталей того, как это работает. Я считаю, что большая часть определения местоположения на самом деле находится на стороне сервера (внутренняя часть), а не на мобильном устройстве (внешняя часть).
Таким образом, приложения, разработанные этими компаниями, не только могут определить наиболее точное местоположение, но и не потребляют много заряда батареи.
ПРИМЕЧАНИЕ. Я просто хочу поделиться своими 2 центами. Вышеизложенная информация состоит из моего опыта и личного мнения. Это может быть не на 100% точно, так как я все еще изучаю Основное местоположение и Мониторинг региона.
person
Ricky
schedule
03.06.2014
CLLocationManager
. Я могу последовательно воспроизвести проблему, используя различные радиусы областей. См. прилагаемый тестовый жгут в моем ответе ниже. - person memmons   schedule 29.05.2014