我已經使用下面的代碼來檢查GPS座標,但問題是,如果我站在同一個地方座標變化,距離是4到20 mts之間的任何地方。 只有當我移動了10分鐘時,我纔想改變它。GPS座標變化太頻繁
locationManager_gps = (LocationManager) this
.getSystemService(Context.LOCATION_SERVICE);
locationManager_gps.requestLocationUpdates(
LocationManager.GPS_PROVIDER, 0, 0,
new MyLocationListener_gps());
class MyLocationListener_gps implements LocationListener {
public void onLocationChanged(Location location) {
clat = location.getLatitude();
clon = location.getLongitude();
if (clat != plat || clon != plon) {
float[] results = new float[3];
Location.distanceBetween(plat, plon, clat, clon, results);
if (flag_gps == 0) {
flag_gps = 1;
} else {
GeoPoint geoPoint = new GeoPoint((int) (clat * 1E6),
(int) (clon * 1E6));
mapView.getController().animateTo(geoPoint);
draw = new MyOverLay(geoPoint);
mapView.getOverlays().add(draw);
dist_mtr += results[0];
}
plat = clat;
plon = clon;
}
}
如果我使用50作爲更新之間的最小距離,那麼它工作正常。我也試過把它做成30,但是在汽車旅行時,在4公里的時間段內數據也是錯誤的。
請建議我應該做什麼。
我已經給在5代碼的隨機值以PLAT和上述普隆和製成flag_gps = 0只是跳過第一位置變化更新 –