2012-09-11 47 views
1

我有這樣的:。獲取地點每秒

public class GpsUpdate extends Observable implements LocationListener { 

private int x_position; 
private int y_position; 
private float currentAccuracy; 
public GpsUpdate(Observer observer){ 
    addObserver(observer); 
} 


@Override 
public void onLocationChanged(Location location) { 
    int lat = (int) (location.getLatitude() * 1E6); 
    int lng = (int) (location.getLongitude() * 1E6); 
    setAccuracy(location.getAccuracy()); 
    setX_position(lat); 
    setY_position(lng); 
    setChanged(); 
    notifyObservers(); 



} 
@Override 
public void onProviderDisabled(String provider) { 
} 


@Override 
public void onProviderEnabled(String provider) { 
} 

@Override 
public void onStatusChanged(String provider, int status, Bundle extras) { 
} 

public int getX_position() { 
    return x_position; 
} 
public void setX_position(int x_position) { 
    this.x_position = x_position; 

} 
public int getY_position() { 
    return y_position; 

} 
public void setY_position(int y_position) { 
    this.y_position = y_position; 
} 

public void setAccuracy(float currentAccuracy) { 
    this.currentAccuracy = currentAccuracy; 
} 


public float getAccuracy(){ 
    return currentAccuracy; 
} 

}

這種方法(onLocationChanged())通知其他類的另一種方法(update()方法),其位置被改變,但我需要即使電流與以前相同,也要收集所有座標。

_GPSUPDATE = new GpsUpdate(this); 
    locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 1000, 1, _GPSUPDATE); 

    @Override 
     public void update(Observable observable, Object data) { 
      xCurrent = _GPSUPDATE.getX_position(); 
      yCurrent = _GPSUPDATE.getY_position(); 
        ..... 
      } 

那麼,我有什麼要添加/更改每秒得到位置?

+2

所以最新的問題? –

+1

爲什麼你想快速殺死用戶的電池? –

+0

無論如何;]它可以每隔10秒,但我需要獲得座標,即使它們沒有改變。 – aptyp

回答

3

這是比較糟糕的做法。即使您需要每秒存儲位置,然後重新定義您的應用程序邏輯以存儲時間戳的位置。這足以因爲(假設T是以秒爲增量時間),如果在T=0您接收並存儲locationA,在T=2您接收並存儲然後如果你想知道的是,在T=1什麼位置,然後沒有看到明確的記錄,你知道有沒有當時位置發生變化,因此您的位置等於上次存儲的位置最近的T,在這種情況下位於T=1您的位置(仍然)是locationA,因爲它從T=0開始沒有變化。這是更好的方法,並會爲你節省很多存儲空間。如果你把這個存儲在數據庫中,那麼獲得正確的結果也是微不足道的 - 只需要搜索條目,時間戳小於或等於爲必填項,按時間戳順序排序,限制爲1.

+0

我明白了,謝謝。 – aptyp