位置服务计算

时间:2013-01-11 14:38:39

标签: java android geolocation

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

有时候,一个地方可能会给你带来不同的结果,例如st。 x#5或st。 x#2-8。 这对我来说是个问题,因为如果我在同一个地方停留12个小时(睡觉时)我的数据库将充斥着几乎相同的位置。

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

2 个答案:

答案 0 :(得分:0)

根据Android开发人员的建议like this

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

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

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

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

您可以确定当前位置是否比新位置更好 然后将其发送到服务器。

答案 1 :(得分:0)

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

如果自上一个时间间隔后数据库发生任何更改,则只应插入数据库。

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

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

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