Изменение размера карты Google
Я пытаюсь адаптировать карты Google и изменять их размер, сохраняя его центр, когда изменяется размер окна. Я прочитал другие вопросы в стеке, например:
Отзывчивая карта Google и Центр Карт Google (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
Переместите переменную вашей карты в область, в которой прослушиватель событий может ее использовать. Вы создаете карту внутри своей функции 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);
});