0

最後の場所から 200 メートル移動した場合に 10 分ごとに場所を生成するアプリケーションを作成しました。これは、ネットワークと 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;
            }
        }
    };
4

1 に答える 1

0

GPSプロバイダーで位置情報を取得する場合はより正確になるため、次にネットワークプロバイダーで位置情報を取得し、500メートル以上異なる場合は、位置情報がこの値よりも小さい場合は、これを値として保存します。ネットワークプロバイダーによって与えられますそれをスキップします。場所がGPSによって提供されている場合は、これを現在の場所として保存します。

于 2013-01-16T21:24:32.620 に答える