将地图替换为新地图(和新选项) - Google Maps API

时间:2014-04-26 21:12:22

标签: javascript jquery ajax google-maps google-maps-api-3

我有一个网站,可以创建一个包含多个标记的地图。

长话短说,我现在想要一个函数,在调用时,创建一个新的地图,用几个新的选项替换旧的,而无需重新加载页面。

我尝试过几件事无济于事。我最近的尝试是清除包含地图的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但很少有经验,所以我需要一些帮助。

3 个答案:

答案 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()应用新选项