Проверьте, находится ли местоположение пользователя рядом с некоторыми точками
У меня есть вопрос по поводу GPS-сигнализации.
У меня есть несколько точек (широта и долгота). Мне нужен способ проверить, находится ли местоположение пользователя рядом с некоторыми из этих точек (примерно 1800 точек).
Если я правильно помню, есть лучший способ сделать это: получать уведомления, когда GPS-положение находится в определенном регионе. Это позволяет оптимизировать работу аккумулятора.
Можете ли вы дать мне какие-либо предложения?
2 ответа
1800 баллов за 1800 различных регионов для мониторинга?
Это невозможно. Смотрите здесь:
По этой причине базовое местоположение ограничивает до 20 регионов, которые могут одновременно контролироваться одним приложением.
Если у вас есть более 20 регионов для мониторинга, это то, что вы можете сделать:
- Когда пользователь запускает ваше приложение, узнайте местоположение пользователя и отправьте его на ваш сервер.
- После того, как сервер получает местоположение пользователя, собирает все точки в радиусе N километров.
- Если количество баллов в пределах N KM меньше 20, отправьте все баллы своему пользователю для мониторинга.
- Если точки в пределах N KM больше 20, ваш сервер должен уменьшить количество точек на основе меньшего радиуса (например, N-1 KM)
Я сам разработал приложение для мониторинга региона, и это то, что мы делаем.
Определите, что вы подразумеваете под некоторыми из этих пунктов.
Вы можете использовать формулу haversine для расчета расстояния между вашим текущим местоположением и каждым из набора контрольных точек. Вычисление включает в себя достаточное количество триггерных функций, поэтому может потребовать значительных вычислительных ресурсов, но в зависимости от вашего приложения может не потребоваться пересчет чаще, чем раз в минуту или около того.