2

我正在构建一个移动应用程序,它需要定期监控用户位置与多个位置标记之间的距离。从我在这里和其他网站上阅读的内容来看,我有三个选择:

1) 使用 distanceTo 和 distanceBetween 函数计算用户位置与每个位置标记之间的距离
2) 使用与每个标记位置关联的接近警报
3) 根据创建和监控地理 围栏使用与每个标记位置关联的地理围栏

鉴于 (a) 易于实施、(b) 电池消耗和 (c) gps / 定位精度,哪种方法最适合使用?鉴于我主要为移动设备设计,我假设 wifi 并不总是可用。

4

1 回答 1

2

关于 Google Play GeoFencing API 的重要说明。我发现 GeoFencing 从不智能地从 GPS 硬件中检索位置。GeoFence API 将观察操作系统提供的最准确位置,或者如果没有最近的位置读数可用,它将导致从 Wifi / Cellular 计算位置。(这很糟糕,因为蜂窝网络非常不准确,而且 wifi 经常不可用)

因此,要从地理围栏 API 中获得所有响应或准确的结果,您必须设置地理围栏,然后每隔一段时间轮询 GPS 硬件,甚至不对收到的结果做任何事情,以便在表面下提供有价值的数据到操作系统。

我无法具体说明 LocationManager.addProximityAlert 的行为,但我怀疑它的行为有什么不同。您可以真正使用其中任何一个,结果和性能可能会相同,因为繁重的工作是通过手动唤醒 GPS 来完成的。

至于如何实现您与栅栏的当前距离,没有一个接近 API 有一个接口来为您确定这一点。在我上面描述的情况下,当 GPS 轮询发生时,我不会对结果不做任何事情,而是将它与 distanceBetween 一起使用来更新我自己与我设置 GeoFences 的点之间的距离。

于 2014-05-08T16:31:44.600 回答