2013-03-28 6 views

답변

2

확대/축소 할 때 무언가를 원한다면 원래 MapView를 확장하는 맞춤 Mapview를 만들고 dispatchDraw (Canvas canvas)를 재정의 할 수 있습니다.

작은 수신기를 추가하면 원하는대로 콜백 할 수 있습니다. 이와 비슷한 것.

@Override 
protected void dispatchDraw(final Canvas canvas) { 
    super.dispatchDraw(canvas); 
    if (getZoomLevel() != lastZoomLevel) { 
     if (listener != null) { 
      listener.onZoom(lastZoomLevel, getZoomLevel()); 
     } 
     lastZoomLevel = getZoomLevel(); 
    }   
} 
+0

@pteixeira을지도 할 수있는 줌 설정을 확장 사용할 수 있습니까? 완전한 코드로 답을 공유 할 수 있습니까? 감사 –

2

마커 아이콘을 변경하려면 outOfTheBox 옵션이 없습니다.

How to listen for user generated zoom in Google Maps?

을 작은 아이콘 이미지와 자신의 위치에 새로 이전 마커를 제거하고 설정 : 당신은 변화를 확대 경청해야합니다.

0

나는 fitBounds 기능과 도착 위치 (LatLng를)이이 문제를 해결할 않는 항목

//JSP 

<c:forEach var="lastPosition" items="${lastPositionResultDto}" >   
    <input type="hidden" id="mapPointsPosition_${lastPosition.id}" value="${lastPosition.latitude}_${lastPosition.longitude}" > 
</c:forEach> 


//JAVASCRIPT 

map = new google.maps.Map(document.getElementById('map-canvas-position'), mapOptions);  

var arrPointMaps = $("[id^=mapPointsPosition_]"); 
var limits = new google.maps.LatLngBounds(0,0); 

for(var j=0; j<arrPointMaps.length; j++){ 

    var stringPointMap = arrPointMaps[j].getAttribute("value").split("_"); 
    var latAlertPoint = stringPointMap[0]; 
    var lonAlertPoint = stringPointMap[1];     

    var limitPosition = new google.maps.LatLng(parseFloat(latAlertPoint), parseFloat(lonAlertPoint)); 
    limits.extend(limitPosition); 

} 

map.fitBounds(limits); 

}