Google maps responsive resize
Я пытаюсь заставить google maps реагировать и изменять размер, сохраняя при этом свой центр, когда Windows изменяет размер. Я читал другие вопросы стека в отношении таких как:
Отзывчивая Карта Google? и центр Google Maps (V3) на размер браузера (отзывчивый)
из второго стека вопрос я получил ссылку, которая помогает мне с частью кода но мне все равно не везет. Это код, который я использую, когда я изменяю размер окна, карты не изменяются все
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% }
1 ответ:
переместите переменную map в область, где ее может использовать прослушиватель событий. Вы создаете карту внутри своей функции 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); });