2013-05-10 91 views
2

我有一个服务,运行在后台,观察位置变化,然后我在地图上绘制“路线”。位置管理器说,当它没有位置改变

问题是,当我看着地图上的路线时,它显示了我停在一段时间(几分钟)的位置,我的位置在该位置附近跳动,而不是静止的,所以路线看起来很糟糕。

有没有办法阻止这个,让我有一个很好的连续路径?

我试图改变位置更新之间的最小距离,但似乎并没有做任何事情

locationManager = (LocationManager) this.getSystemService(LOCATION_SERVICE); 

    Criteria criteria = new Criteria(); 
    criteria.setAccuracy(Criteria.ACCURACY_FINE); 

    String provider = locationManager.getBestProvider(criteria, true); 

    if(provider == null){ 
     provider = LocationManager.NETWORK_PROVIDER; 
    } 
    locationManager.requestLocationUpdates(provider,25000,50, this); 
+0

有关更多选项,请参阅我的答案更新如何定义设备是否真正移动。我希望我可以帮助:) – Naskov 2013-05-10 19:32:36

+0

你是否找到了另一种解决方案?这不适合我。请参阅我对答案的评论。 – 2014-07-17 13:46:28

回答

2

问题不在于你的代码,但它与卫星和GPS的精度的。它不能告诉你确切的位置。所以你需要做出类似的事情(如果位置改变在5米以下,不要通知我)。

更新

您也可以使用location.getSpeed();来获得设备与这样你就可以定义移动速度,如果位置发生改变,是否可靠。如果卫星有一个小故障或GPS准确度,该设备可能会以3480834公里/小时或类似的方式移动。

+0

我正在使用网络提供商。并设置onLocationChanged:if(loc!= null && loc.getSpeed()!= 0.0)。最小的移动距离是1米,我移动设备以提高速度。但位置不显示我的祝酒! – 2014-07-17 13:45:28