2016-10-19 9 views
0

, 나는 ScaleGestureDetector를 사용하여 확대/축소를 캡처하려고하지만 결코onScale 또는 onScaleBegin 또는 onScaleEnd 중 하나에 모든 콜백을 수신입니다.Google지도 두 손가락 핀치/스트레치 콜백 내지도에서

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

그리고 내가 지금처럼 콜백 구현 : 내 조각의 onCreateView에서

, 내가 초기화 또한

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. 하여, GoogleMap.OnCameraIdleListener
  2. 따라서 call mMap.setOnCameraIdleListener(this);
  3. , onMapReady()에서 onCameraIdle()를 오버라이드 (override) 활동/조각이 구현 :

@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); 
를 참조하여 미터 반경을 얻을 수있는 방법을 발견