Как работает CLVisit?

Я работаю над приложением, которое в значительной степени зависит от мониторинга посещений пользователей в возможно нескольких регионах / областях. В настоящее время я экспериментирую с региональным мониторингом, который работает очень хорошо, однако обратный вызов местоположения не так точен, как я хочу. Я видел CLVisit, но документация там не очень хорошо объясняет, особенно его использование.

One Solution collect form web for “Как работает CLVisit?”

Я думаю, вы неправильно понимаете концепцию CLVisits. На самом деле нет объекта посещения, который нужно создать. Метод делегирования CLLocationManager запускается алгоритмом, который определил яблоко (см. Wwdc lecture для получения дополнительной информации). Это объясняется в документации CLLocationManager …

Получение посещенных мест

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

Чтобы начать доставку событий, связанных с посещением, назначьте делегата объекту менеджера местоположений и вызовите его метод startMonitoringVisits. Поскольку диспетчер местоположений генерирует события посещения, он передает эту информацию в свой менеджер locationManager: didVisit :. Данные о событиях, переданные вашему делегату, включают только информацию, которая произошла после того, как вы начали доставку событий. Другими словами, если вы начнете доставку событий после того, как пользователь прибыл в интересное место, событие, доставленное системой, когда пользователь покинет это место, не отражает фактическое время прибытия. Если система завершает работу вашего приложения, эта служба возобновляет его, когда новые события посещений готовы к доставке.

Тем не менее, если вы посмотрите на эту статью из NSHipster , она ссылается на некоторые текущие проблемы с CLVists (для iOS 8.1). В нем, в основном, говорится, что если вы хотите, чтобы инфраструктура была чрезвычайно точной, не используйте CLVisit. Похоже, вы делаете это правильно (на данный момент, по крайней мере).

CLVisit, как и в iOS 8.1, не все точные. Хотя начальные и конечные времена обычно точны в течение минуты или двух, линии становятся размытыми по краям того, что есть и что не является визитом. Уклонение в угловой кафе в течение минуты может не вызвать визит, но ожидание на очень длинном светофоре может. Вероятно, Apple улучшит качество обнаружения посещения в будущих обновлениях ОС, но на данный момент вы, возможно, захотите остановиться, полагаясь на CLVisit, в пользу вашего собственного обнаружения посещения для случаев использования, когда важно, чтобы ваши данные были настолько точными, насколько это возможно быть.

  • Каков наилучший способ уменьшить масштаб и вставить все аннотации в MapKit
  • Рассчитать ETA в Свифте
  • Как я могу решить Завершение из-за ошибки памяти
  • Как открыть программный вызов MKAnnotationView? (iPhone, MapKit)
  • Я получаю: Завершение приложения из-за неперехваченного исключения «NSInvalidUnarchiveOperationException», причина: «Не удалось создать экземпляр класса с именем MKMapView»
  • Как воспроизвести кнопку для переключения setUserTrackingMode в MapView под ios6?
  • iOS JSON Array и MapKit
  • iOS - Кнопка раскрытия подробных сведений о деталях на MKAnnotationView
  • iOS 7 - Создание набора коордов на MapKit с помощью MKOverlayRenderer
  • Вычисление заголовка компаса для определенной координаты вместо северного
  • iOS MapView находится под панелью навигации, панель состояния и контроллер панели вкладок
  • Interesting Posts

    Сброс программ UISearchbar программно

    Как защитить данные с помощью шифрования iOS на диске, когда блокировка пароля пользователя не включена?

    Гетерогенный литерал коллекции может быть выведен только в «»; добавьте явное аннотацию типа, если это преднамеренное

    Swift – заголовок в UITableView блокирует взаимодействие кнопок

    Передача обслуживания и универсальные ссылки не удалось на iOS 9

    Индекс аннотации MapViewPath?

    Сохранить обработчик завершения как объект

    отрицательные или нулевые размеры не поддерживаются в макете потока

    Как добавить заголовок раздела таблицы с индексами?

    iOS <-> Связь с ПК USB

    Невозможно вызвать функцию viewForAnnotation в MapKit

    Префикс необходим для методов в iOS?

    iOS 9 как программно использовать функцию «Вернуться к»

    Как заставить изображения запуска вместо запуска экрана на iOS 8?

    Почему пользователи загружают старые версии нашего приложения для iOS?

    PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.