我的应用程序跟踪用户的位置,并为由 API 返回的附近商店设置接近警报,以实现自动小鸡类型的功能。当接近警报由网络位置触发时,我正试图弄清楚如何提高准确性。我需要一些方法来确认用户在该位置,方法是在几分钟内再次检查,或者通过 GPS 确认他们的当前位置。
部分问题是处理接近警报的上下文是一个意图服务,因此当警报快速连续触发时,任何异步工作都会导致问题。显然有一种方法可以正确执行此操作(例如 Google+ 签入通知),但我不知道下一步该往哪里看。
我的经验是网络定位通常不如 GPS 定位准确,尽管两者都不是 100% 可靠的。有时 GPS 会是完美的,但在其他时候,我可能 50 米或更多是错误的。为了解决这个问题,我认为最好的方法是使用简单的卡尔曼滤波器组合两个位置源,这样网络或 GPS 都不会直接触发邻近警报,而是使用卡尔曼滤波的结果。有关可能起作用的卡尔曼滤波器的完整详细信息,请参阅我对平滑 GPS 数据的回答。