2010-07-19 5 views
0

В моем приложении iPhone я хотел бы отслеживать, если пользователь входит в определенные географические области одновременно и действует соответственно. Теперь я увидел, что с новым iOS 4 можно зарегистрировать некоторые области интереса (CLRegion) в CLLocationManager, поэтому он будет выполнять некоторую работу для меня, но ... Мне также необходимо динамически изменять набор регионах (таким образом, сигнализируя пользователю только о некоторой области в какое-то время), но кажется, что регионы могут быть добавлены только. Прежде чем замечать это изменение в iOS 4, я планировал использовать R-Tree для индексации всех регионов (в виде прямоугольников в 2d-пространстве) и запрашивать его по требованию, явно добавляя/удаляя узлы. Вот мои вопросы: - Кто-нибудь знает, использует ли CLLocationManager что-то похожее на R-Tree? - Является ли это эффектно эффективным? (Я мог бы поместить все регионы, зарегистрированные в какой-то момент, и применить фильтр, например, просмотр в NSS-файле сцен, доступных в данный момент) - Я бы хотел удалить, по крайней мере, все контролируемые регионы в CL, это возможно? Как?CoreLocation: мониторинг только определенных регионов за раз

+0

Успешно ли вы осуществляли мониторинг региона, контролируя только определенные регионы за раз, останавливая и регистрируя их на лету? Сколько регионов вы контролируете одновременно? Я работаю над подобной задачей уже более недели, но все еще боюсь. Я также использую значительный мониторинг изменений, но я получаю очень неточные результаты поиска (horizontalAcccuracy может достигать 8,5 км), когда приложение находится в фоновом режиме. – Centurion

+0

У меня есть ~ 400 мест, которые необходимо контролировать. Нет информации о максимальном количестве контролируемых регионов, но я нашел 10 регионов в порядке. Еще одна проблема, с которой я столкнулся, - это некоторые «тяжелые» вычисления, которые необходимо выполнить для того, чтобы занять все места, найти и зарегистрировать 10 ближайших, а также отслеживать и отмечать время посещения. Итак, я не уверен, сколько времени у меня есть для этих вычислений, когда приложение находится в фоновом режиме и получает обратный вызов didEnterRegion/didExitRegion/didUpdateToLocation. У меня есть подозрение, что есть предел. Вы тоже столкнулись с этими проблемами? – Centurion

ответ

2

Что случилось с -[CLLocationManager stopMonitoringForRegion:]?

+0

Я чувствую себя идиотом: D Я полностью пропустил это (возможно, меня обманули тем, что регионы остаются даже между запусками приложений). Все равно спасибо. Знаете ли вы что-то о производительности этой структуры? – rano

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