首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >全球定位系统和网络定位

全球定位系统和网络定位
EN

Stack Overflow用户
提问于 2012-12-19 03:59:12
回答 2查看 782关注 0票数 1

我正在创建一个应用程序,我做了所有的事情都没有问题,直到我想出了这个。我读了很多关于GPS和网络定位的文章,但我还是有点困惑。我的应用程序将每X分钟在后台启动一次(根据用户的不同,从0分钟到120分钟),并将获得当前位置(无论是GPS还是网络,我仍然不知道)。我的目标是相对较好的电池,但我需要一个最低100米(350英尺)的精度,任何从5-100米的精度都是完美的。此外,如果不能提高精度,则丢弃测量并等待另一个X分钟。有什么建议吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-12-19 04:27:13

查找您的GPS定位的DOP (精度稀释)值:它根据用于计算位置的GPS卫星的数量来告诉您位置的精度。顺便说一句,用于计算位置的卫星数量很重要。

因此,一旦应用程序启动,就轮询GPS的位置,直到DOP值低于给定的阈值( DOP为3.0是非常精确的,大约20米)。如果你在指定的时间内没有得到这样的值,那么使用你收到的最佳位置。

几乎所有的GPS芯片现在都在使用A-GPS,特别是在android上,所以你很快就会得到修复(不到30秒)。如果您的A-GPS信息已过期(A-GPS文件是通过互联网连接下载的),您的第一次修复将需要更长时间:当GPS不知道其所在位置时,可能需要长达6分钟的时间来获取可用的修复。

因此,为了最大限度地减少电池使用量:等待第一个修复。如果6分钟内没有修复,则关闭应用程序,因为您将没有任何位置。一旦你有了第一个修复,轮询GPS 2到3分钟。如果DOP低于某个阈值(3.0是个不错的猜测,但请自己尝试一下),请停止轮询。如果DOP没有低于阈值,则使用DOP最低的位置。

请注意,等待的时间越长,定位的精度就越高,DOP取决于所有可见卫星的位置,有时可见卫星不够多,或者它们的位置不是最佳的,无法获得精确的位置。

如果DOP不可用(我不知道Android Location API的细节),用于计算位置的卫星数量可能不准确,但仍然是有用的信息(小于3,丢弃位置,3是糟糕的,超过4是平均,10是相当好的)。

阅读有关DOP here的更多信息。阅读有关A-GPS的更多信息,以及在general here中了解here

当然,android能够在没有任何GPS信号的情况下,通过使用GSM网络或周围Wifi网络的信息来定位你的设备,但我不能告诉你如何知道你的位置有多精确。

票数 1
EN

Stack Overflow用户

发布于 2013-02-26 10:03:05

最简单的方法是使用Location.getAccuracy()方法。关于解释结果,请参阅:How is location accuracy measured in Android?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13940548

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档