我有一個相當複雜的地圖應用程序處理多個自定義標記等。我有一個名爲resizeWindow的函數,我在監聽器中調用,當屏幕更改時,地圖通過計算新邊界和強制調整大小來重繪本身。它看起來像這樣:如何強制重繪Google Maps API v3.0?
window.onresize = function(event) { fitmap(); };
和調整功能:
function fitmap(id) {
var coords = [];
var newlatlng = new google.maps.LatLng(projlat, projlng);
coords.push(newlatlng);
for (var i=0; i<markers[id].length; i++) {
newlatlng = new google.maps.LatLng(markers[id][i].latitude, markers[id][i].longitude);
coords.push(newlatlng);
}
}
var bounds = new google.maps.LatLngBounds();
for (var i = 0, LtLgLen = coords.length; i < LtLgLen; i++) {
bounds.extend (coords[i]);
}
map.fitBounds(bounds);
,當我真正調整窗口,這個偉大工程。但...
我有一個菜單沿着窗口的右側。我使用jquery.animate將該菜單移出屏幕。我將fitmap函數稱爲步驟過程(或者最後一次),它不會重繪地圖。
$('#rightSide').animate({ right:"-240px" }, {
duration:1000,
step: function(now,fx) {
fitmap();
}
});
我已閱讀並在此閱讀,似乎有重畫如果沒有實際改變不會發生,谷歌地圖API 3.0的一個怪胎。在這種情況下,我的可用窗口從屏幕寬度 - 菜單變爲實際的全屏。但沒有重繪發生。
我試過google.maps.event.trigger(map,'resize');那也行不通。
有沒有辦法絕對強制Google地圖重繪?
你能給我們一個鏈接嗎? –
右側菜單左上角有一個小標籤。 –
此外,如果您將瀏覽器窗口設置爲此更改強制縮放更改的大小,則該窗口可以正常工作。只有在不需要變焦時才需要調整。我也嘗試強制1步縮小和放大,但沒有解決它。 –