2014-02-18 16 views
0

我使用谷歌地圖加載latLng params的地圖。 這大部分工作正常,但有時(就像現在一樣),地圖集中在左上角。 我試過的伎倆與 google.maps.event.trigger(gomap, 'resize');谷歌地圖API 3加載左上角的地圖,調整大小不起作用

,但沒有這樣做,所以我做了什麼,我發現別的地方,把它包在等待地圖被閒置偵聽器:

google.maps.event.addListenerOnce(map, 'idle', function() { 
    google.maps.event.trigger(gomap, 'resize'); 
}); 

但那也不管用。我不知道在那裏我將不得不把這些,所以我當前的代碼看起來如下(簡化)

var gomap; 

function initialize(types,callback,lat,long,address) { 
    map = new google.maps.Map(document.getElementById('map-canvas'),mapOptions); 
    gomap = map; 
} 

google.maps.event.addDomListener(window, 'load', initialize(['geocode'],'onAddressUpdate',lat,long,address)); 
google.maps.event.addListenerOnce(map, 'idle', function() { 
    google.maps.event.trigger(gomap, 'resize'); 
}); 

(該gomap =地圖是存在的,因爲有一對夫婦使用VAR地圖其他情況的,所以我只需將地圖的值分配給全局Gomap)。

我很感激任何幫助。

+2

你可以用樣式信息顯示完整的代碼嗎? –

+0

我以後會這樣做的,我的老闆讓我做其他事情。我把我的東西放在JS小提琴上,但在那裏很尷尬,它似乎工作。它沒有設置標記,但地圖正確居中。 地圖本身沒有太多的造型.. 但是,我在這裏:http://jsfiddle.net/UACMN/1/ – Aurelin

+0

沒有id爲'inputPlaceAddress'的元素。它也隱藏了嗎? –

回答

0

地圖最初是隱藏的,並在點擊某個按鈕時顯示,並且我注意到當地圖顯示在加載時未出現問題。

所以我改變了JavaScript來觸發調整大小和recenter地圖股利在褪色後:

$('#'+name).fadeIn(300,function(){ 
    google.maps.event.trigger(gomap, 'resize'); 
    map.setCenter(gopoint); 
}); 

問題解決了我。