2013-08-26 5 views
57

Windows가 응답 할 때 Google지도의 응답 속도를 높이고 크기를 조정하려고합니다. 나는 다음과 같은 관련 다른 스택 질문에 읽기 : 두 번째 스택 질문 I got a link which helps me with part of the code에서Google maps responsive resize

Responsive Google Map?Center Google Maps (V3) on browser resize (responsive)

을하지만, 난 여전히 운이 없습니다. 이것은 내가 창 크기를 조정할 때,지도는 모든

function initialize() { 
     var mapOptions = { 
     center: new google.maps.LatLng(40.5472,12.282715), 
     zoom: 6, 
     mapTypeId: google.maps.MapTypeId.ROADMAP 
     }; 
     var map = new google.maps.Map(document.getElementById("map-canvas"), 
       mapOptions); 
    } 
    google.maps.event.addDomListener(window, 'load', initialize); 
    google.maps.event.addDomListener(window, "resize", function() { 
    var center = map.getCenter(); 
    google.maps.event.trigger(map, "resize"); 
    map.setCenter(center); 
    }); 

HTML에서 크기를 조정하지 않습니다, 내가 사용하고있는 코드입니다

<div id="map-canvas"/> 

CSS

html { height: 100% } 
body { height: 100%; margin: 0; padding: 0 } 
#map-canvas { height: 100% } 
+5

귀하의 질문에 대한 답변 mine! 감사! –

+0

@ GuillermoGutiérrez 어느 쪽입니까? – nilon

+0

@nilon 나는 그것을 출판하지 않았지만 Javascript API를 사용하여 Google Maps에서지도의 중심을 설정하는 방법에 관한 것이 었습니다. –

답변

100

에지도 변수를 이동 이벤트 리스너가 사용할 수있는 범위입니다. initialize() 함수 내에서 맵을 작성 중이므로 그런 식으로 작성할 때 다른 사람이 사용할 수 없습니다.

var map; //<-- This is now available to both event listeners and the initialize() function 
function initialize() { 
    var mapOptions = { 
    center: new google.maps.LatLng(40.5472,12.282715), 
    zoom: 6, 
    mapTypeId: google.maps.MapTypeId.ROADMAP 
    }; 
    map = new google.maps.Map(document.getElementById("map-canvas"), 
      mapOptions); 
} 
google.maps.event.addDomListener(window, 'load', initialize); 
google.maps.event.addDomListener(window, "resize", function() { 
var center = map.getCenter(); 
google.maps.event.trigger(map, "resize"); 
map.setCenter(center); 
}); 
+0

Brilliant, 완벽하게 작동했습니다. 창의 크기를 조정할 때 줌에 변경 사항을 추가하는 방법이 있습니까? –

+1

예, map.setZoom (4);을 호출 할 수 있습니다. 또는 map.setCenter()를 호출 한 직후 필요한 확대/축소 수준을 지정합니다. – rsnickell

+0

예 그냥 시도하고 괜찮지 만, -1 또는 +1을 얻으면 동적으로 확대/축소하거나 제거 할 수 있습니까? –