Прекратите возвращать кэшируемое местоположение CLLocationManager

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

Спасибо за любую справку!

5
задан PF1 14 February 2010 в 18:18
поделиться

3 ответа

Лучше будет дополнительно хранить тэги в последовательности прямо в таблице публикаций, чтобы предотвратить дополнительные соединения и группировку. Так же, как денормализация производительности.

-121--4716312-

Как уже упоминалось, Python имеет несколько хороших интерактивных оболочек, я бы рекомендовал bpython для начала, а не ipython, преимущество bpython здесь является поддержка автозавершения и диалоги помощи, чтобы помочь вам знать, какие аргументы принимает функция или что она делает (если у нее есть строки).

-121--4538120-

Невозможно остановить кэширование, но не трудно отфильтровать кэшированные данные. Основное расположение включает метку времени со своими расположениями. Сравните временную метку расположения с временной меткой, сохраненной при запуске приложения, и вы сможете указать, какие расположения являются старыми (кэшированными, найденными до того, как ваше приложение заявило), а какие новыми. Выбросьте старые.

Отметка времени расположения - NSDate, поэтому просто получите значение [NSDate date] при запуске приложения и используйте его в качестве точки отсчета при фильтрации расположений. Можно даже выбросить ссылочное значение, когда вы начнете получать новые данные, и рассматривать нулевую ссылочную дату как подразумевающую, что новые расположения должны быть доверенными.

13
ответ дан 18 December 2019 в 08:27
поделиться

См. Мой ответ здесь: Как удалить кэш cllocation? {{1} } о том, "как удалить кэш cllocation". это должно решить вашу проблему, связанную с кешем CLLocationManager.

0
ответ дан 18 December 2019 в 08:27
поделиться

Вы можете использовать это свойство CLLocationManager:

@property(readonly, NS_NONATOMIC_IPHONEONLY) CLLocation *location;

Значение этого свойства nil, если данные о местоположении никогда не были получены, в противном случае, это место, где CoreLocation кэширует свои данные. Поэтому, если вы всегда хотите начать с нуля, просто проверьте, равно ли это свойство nil или нет. Если оно nil, то все в порядке; в противном случае вам нужно остановить менеджер местоположения и запустить его снова: это приведет к обновлению, в результате которого кэшированное значение будет перезаписано свежим, которое вы только что запустили.

0
ответ дан 18 December 2019 в 08:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: