Google지도 v2를 사용해야하는 Android 앱을 개발 중입니다. 이제지도의 확대/축소 수준이 변경된 것을 확인하는 중 멈추었습니다. 아무도 도와 줄 수 있습니까? 미리 감사드립니다.Google지도의 확대/축소 레벨 수신기 android의 v2
답변
of OnCameraChangeListener
구현을 만들고 to setOnCameraChangeListener()
of your GoogleMap
인스턴스를 전달하십시오. 사용자가 줌, 중앙 또는 기울기를 변경할 때마다 청취자는 onCameraChange()
으로 호출되어야합니다. 전달 된 CameraPosition
개체에서 새 확대/축소 수준을 확인할 수 있습니다.
이전 줌 레벨을 추적하는 인스턴스 변수를 정의 :
하면 줌 레벨이 여기 내가 좋을 것 무엇을, 이전의 줌 레벨에서 변경되었는지 확인하는 방법을 찾고 있다면
지도가 확대되는 경우에도//Initialize to a non-valid zoom value
private float previousZoomLevel = -1.0f;
, 당신이 알려 인스턴스 변수를 정의 :
private boolean isZooming = false;
당신이 설정하여 GoogleMap으로 인스턴스가, 그것을 제공 OnCameraC hangeListener ... 이제
//mMap is an instance of GoogleMap
mMap.setOnCameraChangeListener(getCameraChangeListener());
, 줌 레벨이 변경하는지 확인할 수있는 OnCameraChangeListener 정의 : 이제
public OnCameraChangeListener getCameraChangeListener()
{
return new OnCameraChangeListener()
{
@Override
public void onCameraChange(CameraPosition position)
{
Log.d("Zoom", "Zoom: " + position.zoom);
if(previousZoomLevel != position.zoom)
{
isZooming = true;
}
previousZoomLevel = position.zoom;
}
};
}
, 당신은 당신이 줌 레벨을 변경하는 경우 알고 isZooming의 값을 확인 할 수 있습니다 .
하면지도가 확대되는 경우 알고에 의존하는 어떤 작업을 완료 한 후 확인
isZooming = false;
을 설정합니다.
끌기 수신기로도 완벽하게 작동합니다. 마커를 필터링하기 위해 찾고 있던 것이지도 중심까지 보이는 거리입니다. 감사! –
지금은 사용되지 않습니다. –
이전 답변은 OnCameraChangeListener
이고 이는 deprecated이므로이 대답은 카메라 setOnCameraMoveListener
을 기반으로합니다.
이 예에서는 사용자가 줌을 변경하면 (컨트롤 또는 손가락 및 확대/축소를 사용하여) 내 Map Type을 변경하려고합니다. zoom level이 18.0 이상으로 변경되면지도 유형이 MAP_TYPE_HYBRIB
으로 변경되고 18.0 미만으로 변경되면지도 유형이 MAP_TYPE_NORMAL
으로 변경됩니다.
googleMap.setOnCameraMoveListener(new GoogleMap.OnCameraMoveListener() {
@Override
public void onCameraMove() {
CameraPosition cameraPosition = googleMap.getCameraPosition();
if(cameraPosition.zoom > 18.0) {
googleMap.setMapType(GoogleMap.MAP_TYPE_HYBRID);
} else {
googleMap.setMapType(GoogleMap.MAP_TYPE_NORMAL);
}
}
});
니스! OnCameraChangeListener보다 훨씬 깔끔합니다. 지도 유형을 변경하는 재미있는 아이디어. –
참고 : 각 줌 이벤트에 대해이 콜백이 몇 번 트리거됩니다. –
@SomeoneSomewhere 예, 그렇습니다. 사용자가 확대하는 동안 줌의 각 "위상"에 트리거가 생깁니다. 확대/축소가 느릴수록 청취자가 트리거되는 횟수가 늘어납니다. 확대/축소가 빠를수록 트리거하는 시간이 줄어 듭니다. –
setOnCameraChangeListener 지금은 탐지 만 구글지도에 onDoubleTap 확대 할 경우 어떻게 – Makalele
@CommonsWare을되지 않습니다? –
@NirmalPrajapat : 잘 모르겠다. 미안하다. – CommonsWare