đối với Google Maps v3, bạn cần kích hoạt sự kiện thay đổi kích thước khác nhau:
google.maps.event.trigger(map, "resize");
Xem tài liệu về sự kiện thay đổi kích thước (bạn sẽ cần tìm từ 'thay đổi kích thước'): http://code.google.com/apis/maps/documentation/v3/reference.html#event
Cập nhật
Câu trả lời này đã có từ lâu, vì vậy một bản demo nhỏ có thể đáng giá và mặc dù nó sử dụng jQuery, thực sự không cần thiết phải làm như vậy.
$(function() {
var mapOptions = {
zoom: 8,
center: new google.maps.LatLng(-34.397, 150.644)
};
var map = new google.maps.Map($("#map-canvas")[0], mapOptions);
// listen for the window resize event & trigger Google Maps to update too
$(window).resize(function() {
// (the 'map' here is the result of the created 'var map = ...' above)
google.maps.event.trigger(map, "resize");
});
});
html,
body {
height: 100%;
}
#map-canvas {
min-width: 200px;
width: 50%;
min-height: 200px;
height: 80%;
border: 1px solid blue;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://maps.googleapis.com/maps/api/js?v=3.exp&dummy=.js"></script>
Google Maps resize demo
<div id="map-canvas"></div>
CẬP NHẬT 2018-05-22
Với bản phát hành trình kết xuất mới trong phiên bản 3.32 của API Maps JavaScript, sự kiện thay đổi kích thước không còn là một phần của Map
lớp nữa.
Tài liệu nêu rõ
Khi bản đồ được thay đổi kích thước, trung tâm bản đồ được cố định
nguồn: https://developers.google.com/maps/documentation/javascript/new-renderer
google.maps.event.trigger(map, "resize");
không có bất kỳ hiệu ứng nào bắt đầu từ phiên bản 3.32