0

私はJavaとAndroidの初心者です。いくつかのチュートリアルに従って、Android 2.3電話でGPSを機能させることができましたが、電話のGPSは40メートル以内でしか正確ではないことに気付きました。これは、緯度/経度の小数点以下第3位の精度に相当します。

デバッグログにこの変更が表示されます(ラップトップに座って入力している間)

LOCATION CHANGED(2137): 43.522701025009155
LOCATION CHANGED(2137): -72.13161981105804
LOCATION CHANGED(2137): 43.522695660591125
LOCATION CHANGED(2137): -72.13161981105804

これは私のコードです

  public void onLocationChanged(Location location) {
        if (location != null) {
        Log.d("LOCATION CHANGED", location.getLatitude() + "");
        Log.d("LOCATION CHANGED", location.getLongitude() + "");
        Toast.makeText(MainActivity.this,
            location.getLatitude() + "" + location.getLongitude(),
            Toast.LENGTH_LONG).show();
        }
        else{
           // Log.v(TAG,"LOCATION not found");

        }
       // Log.d("LOCATION is", location.getLatitude() + "");

    }

onLocationChanged()関数をpublic void onLocationChanged(Location location、minimumdistance_changed)のようなものに変更することは可能ですか?

ここで、minimumdistance_changedは、現在のgpsの精度の精度です。また、gps値が小数点以下第3位に変更されたときにのみ、onLocationChangedから読み取り値を取得することを意味する限り、minimumdistance_changed値を100メートルに設定するだけでも満足します。

4

1 に答える 1

1

ロケーション マネージャーからのロケーションの更新を要求すると、更新間の最小距離を指定できます。

lm.requestLocationUpdates(provider, timeBetweenUpdates, distBetweenUpdates, listener);

ただし、これはヒントにすぎません。システムがヒントに従う必要はありません。

于 2012-11-08T06:48:40.347 に答える