我创建了一个应用程序,每隔1分钟将手机位置(使用GPS卫星)发送到我的mysql数据库。
有时候,一个地方可能会给你带来不同的结果,例如st。 x#5或st。 x#2-8。 这对我来说是个问题,因为如果我在同一个地方停留12个小时(睡觉时)我的数据库将充斥着几乎相同的位置。
我的问题是我如何避免这种情况,在整个12小时内我会得到一个位置,如果可能最准确(不太重要)..也许有一个选项来检查手机是否在移动?如果不要停止追踪?
答案 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得到结果。