我有一个网站,可以创建一个包含多个标记的地图。
长话短说,我现在想要一个函数,在调用时,创建一个新的地图,用几个新的选项替换旧的,而无需重新加载页面。
我尝试过几件事无济于事。我最近的尝试是清除包含地图的div并像以前一样重新创建一个。
即
function replaceMap() {
$('#map-canvas').empty();
var map2;
function initialize() {
var mapOptions = {
zoom: 8,
center: new google.maps.LatLng(-34.397, 150.644)
};
map2 = new google.maps.Map(document.getElementById('map-canvas'), mapOptions);
}
google.maps.event.addDomListener(window, 'load', initialize);
}
这成功删除了旧地图,但仅此而已。
我是否在正确的轨道上?
我很高兴使用jQuery但很少有经验,所以我需要一些帮助。
答案 0 :(得分:0)
如果您尝试使用一个iframe并在iframe中设置新的src,我有一个使用此模式的网站并且工作正常。
您可以查看如何在我的网站中工作。 http://www.skinnygirldaily.com/s.nl/sc.23/.f
答案 1 :(得分:0)
//this recived the parameters to set google maps
function myGetUrlVars() {
var vars = [], hash;
var url = window.location.href.replace(/&/gi, '&');
var hashes = url.slice(window.location.href.indexOf('?') + 1).split(
'&_');
for ( var i = 0; i < hashes.length; i++) {
hash = hashes[i].split('=');
vars.push(hash[0]);
vars[hash[0]] = hash[1];
}
return vars;
}
//*******************************start google api ****************//
params = myGetUrlVars();
var option = params['option'];
答案 2 :(得分:0)
函数initialize
目前只会被调用一次(当onload
的{{1}}触发时)。
但是,使用window
不是一个好主意,它可能会引入内存泄漏。
使用现有地图,删除标记并使用$.empty()
应用新选项