定位服务计算

Posted

技术标签:

【中文标题】定位服务计算【英文标题】:Location service calculations 【发布时间】:2013-01-11 14:38:39 【问题描述】:

我创建了一个应用程序,它每 1 分钟将手机位置(使用 GPS 卫星)发送到我的 mysql 数据库。

一个位置有时可能会给您不同的结果,例如 st。 x # 5 或圣。 ×#2-8。 这对我来说是个问题,因为如果我在同一个位置停留 12 小时(睡觉时),我的数据库将被几乎相同的位置淹没。

我的问题是我如何避免这种情况,在整个 12 小时内,我将获得一个位置,如果可能是最准确的(不太重要)。也许有一个选项可以检查手机是否在移动?如果不停止跟踪​​?

【问题讨论】:

if (currentSituation.equals(previousSituation)) doNothing(); else sendLocation(); 有什么问题 android 开发者建议like this 如果您的位置没有改变,请不要将其加载到服务器。 您将在 GPS 位置中获得差异,您必须对其进行补偿(gabe 建议的 minDistance 方法是一个很好的解决方案)。请参阅en.wikipedia.org/wiki/… 了解更多信息。 嘿,gabe,很抱歉编辑,只是为了修复显示不太好的链接。 【参考方案1】:

Android 开发者建议like this

requestLocationUpdate() 方法中使用最小距离。

要确定最小距离,您可以评估最后一个位置的准确度并将阈值设置为准确度的 1.5 倍。

此外,您可以设置minTime,具体取决于您想要更新位置的频率。还有一个代码教程。

http://developer.android.com/guide/topics/location/strategies.html#BestEstimate

您可以在哪里确定当前位置是否优于新位置,并且仅 然后发送到服务器。

【讨论】:

谢谢你,但有一些我不明白的地方,我向 requestLocationUpdate 发送了一个 30 米的参数,当我的手机不移动时,我一直在获取位置.. 怎么会? 可能是gps不太准确,室内肯定有问题。您使用的是哪个位置提供商?网络还是GPS?不看代码就很难提供帮助。 代码是线条的基调,所以我会用 GPS 来总结:) 我不使用网络提供商,因为它提供的位置非常不准确,但有时(主要是室内)gps 可以'不生成位置,所以我正在考虑添加网络提供商。是的,它在室内进行了测试。【参考方案2】:

我将从数据库的角度回答你的问题。

如果自上次间隔以来数据库有任何更改,您应该只插入数据库。

例如,在您睡觉的前一天晚上,您将 x1, y1 发送到带有时间戳 t1 的数据库。您将继续从 t2、t3、t4 将 x1、y1 发送到数据库。您可以将其从数据库中丢弃。一旦开始移动,您将在 t1000 处插入 x2、y2。

在数据库中,只有 t1 和 t1000 两条记录。

如果你想知道 t10 的位置,那么你应该从 t1 得到结果。

【讨论】:

以上是关于定位服务计算的主要内容,如果未能解决你的问题,请参考以下文章

云计算包括哪几层服务?

云计算三大服务模式:IaaS/PaaS/SaaS

使用c++制作微服务计算服务

计算机管理里面的“服务”怎么删除?

云计算服务都有哪些 主要包含三部分

边缘计算与云计算服务提供商