iphone - сомнения по геозонам - PullRequest
7 голосов
/ 31 марта 2012

Я слышал о геозоне и у меня есть некоторые сомнения.Надеюсь, вы сможете ответить на некоторые из них.

- Это новое для iOS 5.1, но в чем разница между геозонами и использованием регионов?Из того, что я прочитал, почти то же самое, разряд батареи?

-Почему я не могу найти документацию Apple по геозонам?

-Как вы определяете регионы?я могу добавить их удаленно, через веб-сервис?

Спасибо.

Ответы [ 2 ]

11 голосов
/ 18 октября 2012

Geofencing фактически существует с iOS 4. Вы можете найти документацию по нему в Руководстве по программированию Apple Location Awareness . Он также называется «мониторинг региона».

Регионы довольно просты в использовании. Создайте CLRegion с центральной точкой (широта, длина), радиусом и уникальным идентификатором. Затем позвоните -startMonitoringForRegion. Конечно, вам нужно будет зарегистрировать CLLocationManagerDelegate для прослушивания обратных вызовов -didEnterRegion и -didExitRegion, но это также довольно легко сделать.

Вы не можете добавить их удаленно. Только с устройства. Я узнал кое-что о них за последние пару лет. Надеюсь, это избавит вас от неприятностей в будущем.

  • Не все устройства могут отслеживать регионы, поэтому убедитесь, что вы проверили наличие
  • Существует минимальный и максимальный размер региона. Если вы зарегистрируете регион выше или ниже этих значений, по умолчанию будет установлено значение мин / макс. Минимум 100M, максимум примерно 1/3 размера земного шара. Довольно большой.
  • Максимальное количество регионов, которое может отслеживать одно устройство. Этот «пул» регионов используется всеми приложениями, и старые заборы будут очищены, чтобы освободить место для новых заборов. Так что будьте готовы к этому. Максимальное число близко к 100. Но оно распределяется между приложениями, книгами напоминаний и другими приложениями ... может сгореть довольно быстро.
  • Убедитесь, что у вас есть только один экземпляр вашего делегата менеджера местоположения, несколько экземпляров получат несколько вызовов делегатов, все они слушают.

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

UPDATE Некоторая информация здесь немного устарела. Количество регионов, которые вы можете отслеживать, теперь составляет 20 и ограничено приложением. Кроме того, минимальный размер не 100M, он может быть меньше, но точность не гарантируется при меньших числах.

3 голосов
/ 22 июля 2013

«Геозона» всегда была вокруг, начиная с iOS 4 в форме «Мониторинг региона».Он использует проверку расстояния, чтобы увидеть, вошли ли вы в круг. Это не настоящее геозонирование , поскольку истинное геозонирование проверяет, попадает ли точка в многоугольник (называемый точкой в ​​многоугольнике).

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

Если вы собираетесь использовать подход «точка-в-поли», я бы порекомендовал приведение лучей.Есть класс Objective C, который реализует это действительно хорошо.Она называется objc-BorderPatrol .

Что касается отправки ограждений из веб-службы, может быть возможно сделать что-то похожее на потоковый API Twitter, но это может быть слишком интенсивно.Лучше использовать существенное местоположение, чтобы обновить свои заборы.Если вы собираетесь отправлять заборы из веб-службы, я бы рекомендовал использовать MySQL или PostGRE SQL, поскольку оба имеют действительно хорошие геопространственные расширения.

Несколько предостережений: -> -[CLRegion containsCoordinate:] никогда не вызывается никаким объектом CoreLocation.Вся проверка расстояния является внутренней.-> Значительное местоположение обновляется каждые 500 м или 5 минут, в зависимости от того, что наступит раньше.Существенное местоположение использует IP-адрес из вышки сотовой связи для определения местоположения.-> Геозоны и регионы могут перекрываться, следите за этим.

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