Android: получать уведомление при входе пользователя в определенное место
Я разрабатываю приложение для Android, которое дает уведомление, когда пользователь входит в определенное место
Пользователь может указать местоположение с использованием долготы широты (например, карты Google)
Я знаю, как получить широту и долготу, но моя проблема в том, что когда пользователь вводит в определенном месте, то он не будет точно соответствовать ранее заданной широте и долготе.
![enter image description here]()
Как показано на рисунке, пользователь должен указать местоположение "My Place", когда пользователь вводит область (около 20 метров), тогда приложение должно отправить уведомление пользователю.
Я хочу знать, как я могу сравнить широту и долготу, которые пользователь указал (Мое место) и текущую широту и долготу, которые приложение извлекает с помощью GPS.
Сравнение сделано таким образом, что это будет верно, если пользователь рядом с моим местом в районе 20 метров.
(Этот 20 метров приблизительный.)
Могу ли я установить точность в android, например. 20 метров.
Спасибо.
Ответы
Ответ 1
Лучший подход к этой проблеме - использование функции GeoFences. Подробнее см. https://developer.android.com/training/location/geofencing.html.
Outline:
- Приложение регистрируется с базовой операцией ОС - вот мой список геофотоснимков (конкретное местоположение + радиус из местоположения), который я хочу, чтобы вы следили.
- Если мой пользователь входит в этот гео-забор - разбудите меня и скажите мне об этом.
- В этот момент времени вы можете выполнить любой шаг (либо вызвать сервер, и спросить, какую информацию вам нужно отобразить для пользователя), либо просто отправить push-уведомление (в уведомлении приложения) для выполнения необходимой работы.
Надеюсь, что это поможет.
Ответ 2
Посмотрите на функцию LocationManager.addProximityAlert. Это в значительной степени то, что вы хотите. Предупреждение, оно использует хорошее количество батареи.
Ответ 3
Вы можете сделать вычисление пула gps с помощью функций пространственного расстояния
Существует точка sdk (android и ios) от Bluedotinnovation, которая имеет более высокую точность и меньше разряжает батарею и аналогичный свободный sdk от Radar
Геолокация радара более мощная, чем встроенная геоинформация iOS или Android, с кросс-платформенной поддержкой неограниченных геообъектов, геологий многоугольников, обнаружением остановки и точностью до 30 метров.
Также у них есть поддержка ReactNative.