【发布时间】:2012-09-12 07:11:48
【问题描述】:
当用户改变他的方向时,我正在尝试旋转地图视图,即如果用户左转和右转,它应该相应地旋转。我正在根据当前位置旋转地图视图,它正在正确旋转但它在抖动。这里是我用于旋转的代码
public void onGPSUpdate(Location location)
{
boolean check=isBetterLocation(location, tempLoc);
tempLoc=location;
if(check){
showLocation(location);
}
}
isBetterLocation method is copied from google docs for better location.
private void showLocation(Location loc){
mRotateView.rotate(-loc.getBearing());
}
我注册了一个位置更新,时间间隔为 0,最小距离为 10 以进行频繁更新。这里我的问题是地图视图总是抖动,谁能告诉我如何像 waze 地图等其他应用程序一样平滑地旋转地图视图.谢谢...
【问题讨论】:
-
您需要澄清问题是否出在您从 gps 跳来跳去的方位上。或者实际旋转到新轴承,这就是 Konrad 所说的。
-
@lfor 是的,你纠正了我得到的轴承正在跳来跳去。你对此有什么想法吗?
-
我知道你走得越快就会越好。您需要对获得的值进行某种过滤。
-
@lfor 是的,你知道我们应该在这里使用哪个过滤器吗?
-
嗯,我不会在我的应用程序中做任何过滤做同样的事情。过滤只会让它在开始移动时更慢地获得一个好的方向。如果我要过滤,我会做一个简单的 new_heading = (old_heading * (1-filter)) + (gps_heading * filter) 样式,然后尝试从 0.25 开始的过滤器值。这将需要一些调整以应对 359-0 不连续性,但如果差异 > 180 度,一些简单的加法或减法 360 应该对其进行排序。
标签: android google-maps geolocation