私は私のAndroid携帯電話の一定の位置の更新を必要とするプロジェクトに取り組んでいます。それは問題なく動作しますが、非常に不正確です。屋内では、(getAccuracy()を介して)フェッチされた場所の精度を約60(私が知る限りメートル単位)にしていますが、精度を(最大で)2〜3メートルにしたいのです。まず、(2〜3メートル)の精度を常に得ることはできませんか?はいの場合、どのように?
以下は、ユーザーの場所を取得するために使用しているコード部分です。
public boolean getLocation(Context context, LocationResult result)
{
//I use LocationResult callback class to pass location value from MyLocation to user code.
locationResult = result;
if(lm==null)
lm = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE);
//exceptions will be thrown if provider is not permitted.
try{gps_enabled=lm.isProviderEnabled(LocationManager.GPS_PROVIDER);}catch(Exception ex){}
try{network_enabled=lm.isProviderEnabled(LocationManager.NETWORK_PROVIDER);}catch(Exception ex){}
//don't start listeners if no provider is enabled
if(!gps_enabled && !network_enabled)
return false;
if(gps_enabled)
lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, locationListenerGps);
if(network_enabled)
lm.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, locationListenerNetwork);
timer1=new Timer();
timer1.schedule(new GetLastLocation(), 10000);
return true;
}
また、デバイスが常に静的な場所に配置されているという別の問題が発生していました。取得された2つの連続するGPS位置間の距離は非常に信頼性が低く、0.0メートルから16メートルに変化します。これは、デバイスが常に移動していることを意味します。
誰かがこれについて、できれば正確さを達成する方法について何か考えがあれば、私を助けてください。
ありがとう