0
我創建了一個應用程序,如果我從最後一個位置移動200米,每10分鐘就會生成一個位置。 它基於網絡和gps提供商。將網絡連接到GPS提供商
我的問題是如果我在相同的地方有很多時間出現錯誤。 我們假設gps提供商生成一個精度爲600的位置,網絡提供商以800的精度生成一個位置。 我的應用程序會選擇GPS提供商,下一次GPS生成位置時,我會通過200無線電,但看起來像網絡位置不斷產生的位置,其中一些可能會更準確,然後我的位置是當我在同一個地方時改變了。
這是一個問題,因爲住在幾個小時的同一個地方會產生我的位置而不是1(這是我正在尋找)的語氣。
我沒有附加代碼,因爲這是更理論化的問題,我猜。
EDIT代碼附着
更新請求:
mLocationManager.requestLocationUpdates(provider, TEN_SECONDS*6*10, TEN_METERS*20, listener);
的位置之間進行選擇:
if(gpsLocation == null || gpsLocation.getAccuracy() > 1000)
{
if(!(networkLocation == null || networkLocation.getAccuracy() > 1000))
location = networkLocation;
}
else
if(networkLocation == null)
{
if(gpsLocation.getAccuracy() < 1000)
location = gpsLocation;
}
else
if(gpsLocation.getAccuracy() < networkLocation.getAccuracy() && gpsLocation.getAccuracy() < 500)
location = gpsLocation;
else
if(networkLocation.getAccuracy() < 1000)
location = networkLocation;
if(location!=null)
{
Message.obtain(mHandler,
UPDATE_LATLNG,
location.getLatitude() + ", " + location.getLongitude()).sendToTarget();
if (mGeocoderAvailable)
doReverseGeocoding(location);
}
這裏是處理程序:
mHandler = new Handler()
{
public void handleMessage(Message msg)
{
if(msg.what == UPDATE_ADDRESS)
{
LocationService.this.address = (String) msg.obj;
new SendLocation(LocationService.this.id,(String)msg.obj); //sends location to the db
LocationService.this.gpsLocation = null;
LocationService.this.networkLocation = null;
}
}
};
請檢查我的帖子。 –