19

我正在开发 android 应用程序,当用户输入特定位置时会发出通知
用户可以使用纬度经度指定位置(即谷歌地图)
我知道如何获取纬度和经度但我的问题是当用户输入特定位置时它会与先前指定的纬度和经度不完全匹配。 在此处输入图像描述

如图所示,假设用户在进入区域(约 20 米)时指定名为“My Place”的位置,则应用程序应向用户发送通知。
我想知道如何比较用户指定的纬度和经度(我的位置)以及应用程序通过 GPS 获取的当前纬度和经度。 以这样的方式进行比较,如果用户在我的地方附近 20 米的区域内,它将是真实的。(这 20 米是近似值。)我可以在 android 中设置精度,例如 20 米。
谢谢你。

4

3 回答 3

19

解决此问题的最佳方法是使用 GeoFences 功能。请参阅https://developer.android.com/training/location/geofencing.html了解更多详情。

大纲: - 应用程序向底层操作系统注册 - 说 - 这是我希望你监控的地理围栏列表(特定位置 + 距离该位置的半径)。- 如果我的用户进入这个地理围栏 - 叫醒我并告诉我。- 在那个时间点 - 您可以继续执行任何步骤(调用服务器并询问您需要向用户显示哪些信息)或只是发送推送通知(在应用程序通知中)以完成必要的工作。

希望这可以帮助。

于 2015-06-08T05:53:03.753 回答
7

查看 LocationManager.addProximityAlert 函数。它几乎完全符合您的要求。警告,它确实使用了大量的电池。

于 2013-01-17T05:56:40.690 回答
1

您可以使用空间距离函数进行 gps 池化计算

Bluedotinnovation 的 point sdk (android & ios) 具有更高的准确性和更少的电池消耗,也类似于 Radar 的免费 sdk

雷达地理围栏比原生 iOS 或 Android 地理围栏更强大,跨平台支持无限地理围栏、多边形地理围栏、停止检测,精度低至 30 米。

他们也有 ReactNative 支持。

于 2017-08-06T14:24:45.417 回答