我创建了一个用于测量速度的简单应用程序。问题是速度从ie更新。 0.0公里/米至0.9公里/小时和1.8公里/小时等。可以做什么,所以步长减少到0.1 km / h。
public void onGPSUpdate(Location location)
{
location.getLatitude();
location.getLongitude();
speed = location.getSpeed();
String speedString = "" + roundDecimal(convertSpeed(speed),2);
String unitString = measurementUnitString(measurement_index);
setSpeedText(R.id.info_message,speedString + " " + unitString);
}
答案 0 :(得分:0)
由于您的应用程序似乎实时显示速度文本值,因此插值时间要晚。 你必须显示当前的速度值,如果跳跃,这是数字设备的典型状态。
要进行互动,您可能会延迟显示文字。 一个简单的解决方案是延迟1秒,然后用n步进行线性插值。 n =(speedNew - speedOld / 0.1; 这给出了插值中使用的步数。 每步之间的时间延迟= 1 / n秒。
一旦有效,并且由于1s在想要获得当前速度时要延迟很多,所以你可以试着延迟0.5秒。这为interploat提供了时间。 但它变得更加困难。
另一种更先进的解决方案是估计当前速度,每十分之一秒。 您可以测量加速度(m /(s * s))并推断车辆不会改变下一秒的加速度。