2016-04-12 5 views
-1

地図上を移動する車のマーカーをエミュレートするスムーズな移行を実装したいと思います。現在の位置から選択された位置まで。地図上を移動する車のマーカーをエミュレートするスムーズな移行を実装する

+0

これまでに何を試みましたか?あなたのためにすべてのコードを書くように求めるのではなく、あなたが苦労している特定の領域を提供してください。 – buczek

答えて

2

私はあなたが何をしようとしていなかったと仮定した場合でも、私はあなたにそれを達成するのに最適な方法を与える..私はいい気分でという理由だけ

public static void animateMarker(final GoogleMap map, final Marker marker, final LatLng toPosition, 
          final boolean hideMarker) { 
    final Handler handler = new Handler(); 
    final long start = SystemClock.uptimeMillis(); 
    Projection proj = map.getProjection(); 
    Point startPoint = proj.toScreenLocation(marker.getPosition()); 
    final LatLng startLatLng = proj.fromScreenLocation(startPoint); 
    final long duration = 500; 

    final Interpolator interpolator = new LinearInterpolator(); 

    handler.post(new Runnable() { 
     @Override 
     public void run() { 
      long elapsed = SystemClock.uptimeMillis() - start; 
      float t = interpolator.getInterpolation((float) elapsed/duration); 
      double lng = t * toPosition.longitude + (1 - t) * startLatLng.longitude; 
      double lat = t * toPosition.latitude + (1 - t) * startLatLng.latitude; 

      marker.setPosition(new LatLng(lat, lng)); 

      if (t < 1.0) { 
       // Post again 16ms later. 
       handler.postDelayed(this, 16); 
      } else { 
       if (hideMarker) { 
        marker.setVisible(false); 
       } else { 
        marker.setVisible(true); 
       } 
      } 
     } 
    }); 
} 

はそれをお楽しみください!

関連する問題