2016-10-19 3 views
0

、私はScaleGestureDetectorを使用してズームイン/アウトを捕獲しようとしていますが、私は決してonScaleまたはonScaleBeginまたはonScaleEndのいずれかに任意のコールバックを受けています。私のフラグメントのonCreateViewGoogleマップの2回の指のピンチ/ストレッチコールバック私のマップでは

、私は初期化:

scaleGestureDetector = new ScaleGestureDetector(getContext(), new simpleOnScaleGestureListener());

そして、私はそうのようなコールバックを実装します。

public class simpleOnScaleGestureListener extends 
     SimpleOnScaleGestureListener { 

    @Override 
    public boolean onScale(ScaleGestureDetector detector) { 
     // TODO Auto-generated method stub 
     startScale = detector.getScaleFactor(); 
     Log.d(TAG, "::onScale:: " + detector.getScaleFactor()); 
     return true; 
    } 

    @Override 
    public boolean onScaleBegin(ScaleGestureDetector detector) { 
     // TODO Auto-generated method stub 
     Log.d(TAG, "::onScaleBegin:: " + detector.getScaleFactor()); 
     return true; 
    } 

    @Override 
    public void onScaleEnd(ScaleGestureDetector detector) { 
     // TODO Auto-generated method stub 
     Log.d(TAG, "::onScaleEnd:: " + detector.getScaleFactor()); 
     endScale = detector.getScaleFactor(); 

} 

はまた、コールバックが継続的に呼び出されると仮定することが公正ですユーザーがズームイン/アウトするたびに?

答えて

0

私はコールバック取得の問題を乗り越えることができました。基本的に、二つのこと:あなたの活動/フラグメントで

  1. 、実装、onMapReady()GoogleMap.OnCameraIdleListener
  2. 、したがってcall mMap.setOnCameraIdleListener(this);
  3. は、onCameraIdle()を上書き:

@Override public void onCameraIdle() { Log.i(TAG, "::onCameraIdle::" + mMap.getCameraPosition().toString()); }

緯度を取得するために/長い、ズーム、チルト、ベアリング、本質的にCameraPosition

私はこのresponse

VisibleRegion vr = map.getProjection().getVisibleRegion(); 

Location center = new Location("center"); 
center.setLatitude(vr.latLngBounds.getCenter().latitude); 
center.setLongitude(vr.latLngBounds.getCenter().longitude); 

//Location("radiusLatLng") as mentioned in google maps sample 
Location farVisiblePoint = new Location("radiusLatLng"); 
farVisiblePoint.setLatitude(vr.farLeft.latitude); 
farVisiblePoint.setLongitude(vr.farLeft.longitude); 

radius = center.distanceTo(farVisiblePoint); 
を参照することによりメートル単位半径を取得する方法を発見しました
関連する問題