2016-05-16 17 views
2

誰もが融合したプロバイダ融合ロケーションプロバイダdoesntのプロット連続線

onLocationChanged方法を使用して、最後と現在位置の間の連続線をプロットするとこの種の問題で私を助けることができるのようになります。 :

public void plotroute (Location mylocation){ 
logEvent("------------Plotting route---------------"); 

mCurrentLocation = mylocation; 

LatLng lastLatLng = new LatLng(mlastLocation.getLatitude(),mlastLocation.getLongitude()); 
LatLng thisLatLng = new LatLng(mylocation.getLatitude(),mylocation.getLongitude()); 
map.addPolyline(new PolylineOptions().add(lastLatLng).add(thisLatLng).width(20).color(Color.RED)); 
} 

これが最後と現在位置とのlogcatから出力される

とあなたが見ることができるように、プロットされたラインが連続イマイチルート

をプロットしました。それが円滑に働くために私が変えなければならないものはありますか?

答えて

0

問題はgetLastLocation()を行末に使用しています。代わりに、onLocationChanged()で受け取った以前の場所を覚えておいて、前の場所から最新の場所に線を引く必要があります。

「最後の場所」は現在の場所の最善の見積もりであり、mCurrentLocationも現在の場所です。場合によってはこれらの2つがまったく同じで、線の代わりに点を描くこともあります。現実の生活では、しばしば少しばらついているので、お互いにつながっていない線がいくつかあります。基本的には、ちょうどonLocationChanged()で受け取った現在の場所と、getLastLocation()の後ろにあるロジックによって推定された現在の場所の違いをプロットしています。緯度経度lastLatLng =新緯度経度(mlastLocation:返信用

public void onLocationChanged(Location mylocation) { 

    logEvent("onLocationChanged"); 

    //mlastLocation = LocationServices.FusedLocationApi.getLastLocation(mGoogleApiClient); 
    mlastLocation = mCurrentLocation; 
    mCurrentLocation = mylocation; 
    if (mlastLocation != null) { 
     plotroute(mylocation);  
    }   
    mLastUpdateTime = DateFormat.getTimeInstance().format(new Date()); 
} 
+0

おかげで、私はそのようにそれを変更すると、その後、私はplotrouteメソッドの内部で、このラインでNULL値を取得する:

コードが何かのようである可能性があります。 getLatitude()、mlastLocation.getLongitude()); –

+0

ああ、申し訳ありません。コードが最初に実行されたとき、 'mCurrentLocation'はまだ' null'なので、 'mLastLocation'は' null'になります。コードは 'mCurrentLocation'がまだ' null'であるかどうかをチェックし、その場合は代わりに 'myLocation'を代入することができます。あるいは、 'mlastLocation'がnullの場合に' plotroute() 'を呼び出さないこともできます。 –

+0

Iveはif(mlastLocation == null)のようにチェックを作成しました{ mlastLocation = LocationServices.FusedLocationApi.getLastLocation(mGoogleApiClient);}とその修正はありましたが、そのポリラインにはいくつかの不具合があります(ご覧のとおり)(http://i.imgur.com/ZKDLI8T.png) –

関連する問題