我们试图跟踪用户位置并绘制准确的用户线 - 他们在整个录制过程中的位置。 问题是我们有几个严重的困难:
冷启动。我们的用户没有时间等待获得稳定的卫星连接。在那段时间里,我们从用户所在的位置可以看到距离最远20公里的<strong>“shoots”。通常这种异常伴随着严重的位置偏离.getAccuracy&gt; 200,但不是所有时间。
建筑物内的位置。这种类型与location.getAccuracy =(10-150)一样严重,与退出建筑物时的“射击”坐标一样。
在截止点上丢失一些位置:如果我们切断所有位置.getAccuracy&gt; 50,我们将失去一些“好”的位置。此外,在某些情况下,location.getAccuracy在“拍摄”位置小于。
我们开始削减所有位置,如果他们的速度超过16,7公里/小时,但有时“射击”位置由于修复之间的滞后而具有良好的速度。
private boolean isPossibleSpeed(Location masterLocation, Location testedLocation){
double maxPossibleSpeed = 16.7;
double currentSpeed = (masterLocation.distanceTo(testedLocation)) /
(masterLocation.getTime() - testedLocation.getTime());
LogUtil.log("CSB", currentSpeed + "/");
if (currentSpeed<maxPossibleSpeed){
return true;
}else{
return false;
}
}
这是冷启动的图片。一次投掷。
http://postimg.org/image/tn43nf0k9/
有关如何改进录音的任何建议吗?有人遇到同样的问题吗?我确信有一些好的算法可以在实时中处理这个。 感谢。