CoreLocation: отслеживать только определенные регионы одновременно

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


person rano    schedule 19.07.2010    source источник
comment
Вы успешно реализовали мониторинг регионов, контролируя только определенные регионы за раз, останавливая и регистрируя их на лету? Сколько регионов вы отслеживаете одновременно? Я работаю над аналогичной задачей больше недели, но все еще борюсь. Я также использую мониторинг значительных изменений, но получаю очень неточные результаты определения местоположения (горизонтальная точность может достигать 8,5 км), когда приложение находится в фоновом режиме.   -  person Centurion    schedule 14.11.2011
comment
У меня есть ~400 мест, которые нужно контролировать. Нет информации о максимальном количестве отслеживаемых регионов, но я считаю, что 10 регионов в порядке. Еще одна проблема, с которой я сталкиваюсь, связана с некоторыми тяжелыми вычислениями, которые необходимо выполнить, чтобы пройтись по всем местам, найти и зарегистрировать 10 ближайших, а также отслеживать и отмечать время посещения. Итак, я не уверен, сколько времени у меня есть для этих вычислений, когда приложение находится в фоновом режиме и получает обратный вызов didEnterRegion/didExitRegion/didUpdateToLocation. У меня есть подозрение, что есть предел. Вы тоже сталкивались с этими проблемами?   -  person Centurion    schedule 14.11.2011


Ответы (1)


Что не так с -[CLLocationManager stopMonitoringForRegion:]?

person tc.    schedule 19.07.2010
comment
Я чувствую себя идиотом :D ty Я совсем пропустил это (может быть, меня ввело в заблуждение то, что регионы остаются даже между запусками приложений). Все равно спасибо. Вы знаете что-нибудь о производительности этого фреймворка? - person rano; 19.07.2010