2013-11-21 52 views
0

假设我必须使用一个提供商,比如说说GPS。我有一个最低精度要求和我需要一个信号满足它。什么是最佳实践?以最低精度要求请求地理位置

我在做的是我打电话给“requestLocationUpdates”以获得连续的位置,然后检查每一个的准确性,最后当我得到一个好的时候调用“removeUpdates”。

我应该用minTimeminDistance才会设置为0,因为精度随机自带足够这样做呢?或者我应该为它设置一些特殊的值,因为根据GPS的性质,除非我离开(比如说从建筑物?),否则它可能继续给我类似的准确度,或者我给它时间(比如随机大气条件或卫星位置更改?)?如果是这样,它会是哪个值?

注意:根据this text,GPS使用更多的电力来获得修复,而不是获取地点后缀。对我而言,这意味着“requestSingleUpdate”对于精度要求是不好的。这是正确的吗?

如果您使用NETWORK而不是,它会以相同的方式工作吗?

+0

我也提到网络,因为我们的准确性要求(35m)有时可以满足(根据我们的测试)。我们希望最好使用NETWORK来节省电力,但每当第一次开始持续给出不准确的精度时,就切换到GPS并返回。 – Vituel

+0

有趣......在我的经验中,NETWORK通常在WiFi的范围内提供〜100m的精确度,而在仅使用手机信号塔的情况下,通常会提供1000m的精度。 – Michael

回答

0

在你的情况下唯一的解决方案的工作原理:

集提供给GPS只,设定的时间和准确度最好的(0), 并从位置读取属性estimatedAccuracy自己决定,e.g。

它的确如此,初始定位需要大部分功率,所以每20秒启用和禁用GPS都没有意义。不幸的是,我不知道在几分钟内的阈值是在临时禁用GPS时节省电池的地方。

目前仅对GPS(3-6m)和网络(GSM小区:1000m)之间的区分有意义,但WLAN有时会比GSM小区定位更好,但通常不可用,而且可靠性较差。 如果您为了您的应用程序决定需要更多或更少的敏捷位置,那么除“最佳”之外的准确性要求是没有意义的。