2017-12-08 27 views
0

Googleマップを実装したアンドロイドアプリを開発中です。私は(Googleマップのナビゲーションのように)移動方向にマーカーを回転させようとしましたが、すべてのコードが失敗しました。以下はコードです。なにか提案を。 (注)(IAMは、位置、速度及びベーリングを返すメソッドからベアリングを取得し、向きを変えてIは、軸受変化の浮動小数点値を見ることができる。移動方向でマーカーを回転させる

   float bearing = setterandGetter.getBearing(); 
       double lat = setterandGetter.getLatitude(); 
       double lon = setterandGetter.getLongitude(); 
       LatLng currentPosition = new LatLng(latitudelongitude); 

       googleMap.moveCamera(CameraUpdateFactory.newLatLng(currentPosition)); 

Marker marker = googleMap.addMarker(new MarkerOptions().position(currentPosition).icon(BitmapDescriptorFactory.fromBitmap(blueIcon)).flat(true).rotation(bearing)); 
+0

あなたは()メソッドonLocatioChangedにこのコードをパットがありますか? –

+0

yup、ロケーションが変更されたときに地図メソッドが呼び出されました – Ahmed

+0

そのメソッドの内部にログを出力して呼び出しているかどうかを確認しましたか? –

答えて

0

使用map.clear()をマップをクリアするために、次にマーカーを作成しますので、あなたの場所が古いマーカーを変更するたびに自動的にクリアされ、マーカーが

+0

私のアプリがルートを通過したことを示しているので、私はすべてのマーカーを見つけることができません。 – Ahmed

0

はこれを試してみてください場所で動いているようにそれはそうように、新しいマーカーが作成されます。すべての

まずグローバルマーカーvarialbleを宣言し、それを初期化私はOnCreate関数続くライン:

marker = googleMap.addMarker(new MarkerOptions().position(currentPosition).icon(BitmapDescriptorFactory.fromBitmap(blueIcon)).flat(true).rotation(0)); 

今すぐonLocationChanged()に次のコードを追加します。

map.setOnMyLocationChangeListener(new GoogleMap.OnMyLocationChangeListener() { 
     @Override 
     public void onMyLocationChange(final Location location) { 
     marker.setPosition(new LatLng(location.getLatitude(),location.getLongitude())) 
     marker.setRotation(location.getBearing()); 
    } 
}); 
関連する問題