2013-10-27 98 views
0

我有兩個js文件。第一個限定谷歌地圖等:緯度,經度,的MapOptions,標記等。這裏,它是:谷歌地圖顯示無jQuery

function initialize() { 

var myLatlng = new google.maps.LatLng(settings.custom_contact.lat, settings.custom_contact.lng); 

var mapOptions = { 
    zoom: 13, 
    center: myLatlng, 
    mapTypeId: google.maps.MapTypeId.ROADMAP 
} 

var map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions); 

var contentString = ''; 

var marker = new google.maps.Marker({ 
    position: myLatlng, 
    map: map, 
    title: '' 
}); 
} 
google.maps.event.addDomListener(window, 'load', initialize); 

第二個包含顯示#地圖畫布容器的一些操作。 map-canvas的默認狀態是display:none。它在點擊特定元素後顯示。現在,我讀過,它與顯示隱藏地圖常見的問題,我應該把這個行代碼:

google.maps.event.trigger(map, 'resize'); 

當我點擊元素,使容器與地圖上可見。但是,當我把這個代碼螢火蟲告訴我:「ReferenceError:映射未定義」。它是正確的,因爲它在不同的文件中。我無法合併這兩個文件。我怎樣才能管理這個?

回答

1

把地圖變量在全局範圍內:

var map = null; 
function initialize() { 

var myLatlng = new google.maps.LatLng(settings.custom_contact.lat, settings.custom_contact.lng); 

var mapOptions = { 
    zoom: 13, 
    center: myLatlng, 
    mapTypeId: google.maps.MapTypeId.ROADMAP 
} 

map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions); 

var contentString = ''; 

var marker = new google.maps.Marker({ 
    position: myLatlng, 
    map: map, 
    title: '' 
}); 
} 
google.maps.event.addDomListener(window, 'load', initialize);