2016-03-29 2 views
1

私は、リスナーを使用して、この瞬間をキャッチすることができます:animateCamera zoom end 'only'をトリガーする方法は?

map.animateCamera(CameraUpdateFactory.newLatLngZoom(destLatLng, 15)); 

map.setOnCameraChangeListener(new GoogleMap.OnCameraChangeListener() { 
       @Override 
       public void onCameraChange(CameraPosition cameraPosition) { 
        //here some code... 
       } 
      }); 

問題は、この方法は、ユーザーマップ感動のすべての瞬間をトリガするであり、私はそれを望んでいません。

地図がズーム後に瞬間だけをトリガーしたい場合アニメーション最後にアニメーションが停止します。ところで、マップをタッチするところでは、マップは通常アニメーションを生成しません。

地図がズームアニメーションを開始して終了するような状況でも、リスナーが必要な場合もあります。しかし、そこだけ!

(私は、任意のユーザのタッチイベントで、いくつかのフラグを入れて、onCameraChangeにいくつかの値をチェックし、しかし...通常の解決策があるだろうか?)

答えて

0

あなたはカスタムコントロールでそれを実装することができます。ユーザーとのやりとりを処理する独自のコントロールを作成します。ユーザーにUIを表示し、通常はイベントハンドラを介してユーザーまたはマップのいずれかとのやりとりを処理します。 GoogleマップJavascript APIは、クロスブラウザーのイベント処理メソッド'addDomListener()' を提供しています。これはほとんどのブラウザーでサポートされていますDOM eventsです。

マップのMapOptionsオブジェクト内のフィールドを使用してマップを作成するときに、control'sプレゼンテーションを指定します。

+0

のみJavascriptメソッド?私はJavaが必要です(私は「jquery-animate」タグを間違えてしまいました。削除されています)。 –

関連する問題