2013-01-17 38 views
17

进入我开发Android应用程序时,用户通过使用经纬度(即谷歌地图)
在特定位置进入
用户可以指定位置,这给通知获取通知我知道怎么弄纬度&经度,但我的问题是,当用户在特定位置输入时,它将不会与先前指定的纬度经度&完全匹配。 enter image description here安卓:当用户在特定位置

如图所示假设用户在用户输入区域(约20米)时指定名为“我的地点”的位置,则应用程序应向用户发送通知。
我想知道如何比较纬度&哪个用户指定的经度(我的地方)和当前纬度&哪个应用程序通过GPS获取的经度。 这样做的比较,如果用户在20米左右的地方附近的话,是正确的。 (这20米是近似值。) 我可以在android中设置精确度,例如: 20米。
谢谢。

回答

16

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

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

希望这会有所帮助。

+0

当GPS关闭时这是否工作? – chinmish

6

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

+0

有没有更好的解决方案,需要更少的电池电量? 谢谢... –

+1

不是。基本上,你需要做它做的事情 - 检查每次GPS位置更新时,通过在你的位置和目标之间进行距离检查来查看你是否在范围内。使用电源是因为在执行此操作时您需要持续开启GPS。只需确保在不需要它时删除警报。 –

+0

所以你说使用addProximityAlert()的Instendof我应该应该用lat来检查距离。和lon。具体位置和当前位置。我是否正确或其他任何东西? –

1

可以使GPS池具有空间距离函数计算

有从Bluedotinnovation具有从雷达更精确和更少电池消耗也类似自由SDK

雷达地理围栏是点SDK(机器人& IOS)比原生iOS或Android geofencing更强大,跨平台支持无限地理围栏,多边形地理围栏,停止检测以及低至30米的精度。

他们也有ReactNative支持。