2013-10-27 69 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);