Maplacejs在更新时复制控件

时间:2017-03-24 17:57:14

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

我正在使用一个名为Maplacejs(https://maplacejs.com/)的jQuery插件,让我更容易操作Google地图(我是这个主题的新手)。

我首先创建一个变量来设置(初始化)Maplace:

var maplace = new Maplace({
    map_div: '#mappanel',
    controls_type: 'dropdown',
    controls_title: 'Select a point:',
    controls_position: google.maps.ControlPosition.TOP_LEFT
});

然后我在下拉菜单中选择某个日期时,使用ajax创建一个在Maplace中加载位置的函数:

function loadMap() {
    $.ajax({
        url: 'includes/ajax_getmap.php',
        type: 'POST',
        cache: false,
        timeout: 5000,
        data: { date: $('#dateselect').val() },
        dataType: 'json',
        success: function(data) {
            maplace.SetLocations(data.locations, true);
        },
        error: function(XMLHttpRequest, textStatus, errorThrown)  {
            alert(errorThrown)
        }
    });
}

以下是使用ajax加载的locations数组的示例:

{"locations":[
    {"lat":52.1,"lon":11.3,"title":"Title 1","html":"<h3>Content 1</h3>","zoom":8},
    {"lat":51.2,"lon":22.2,"title":"Title 2","html":"<h3>Content 2</h3>","zoom":8},
    {"lat":49.4,"lon":35.9,"title":"Title 3","html":"<h3>Content 3</h3>","zoom":8},
    {"lat":47.8,"lon":15.6,"title":"Title 4","html":"<h3>Content D2</h3>","zoom":8}
]}

以下是用于“调用”函数的代码(日期列表):

    $('#dateselect').selectmenu({
        style: 'dropdown',
        change: function(event, data) {
            loadMap();
        }
    });

问题是:每次调用此函数时,控件都会在地图中重复出现。这是我调用该函数3次后的示例图像:

enter image description here

我已经尝试在ajax“sucess”事件中创建maplace变量,甚至将变量设置为“null”或“undefined”,但没有成功:(

拜托,你能帮助我吗?

1 个答案:

答案 0 :(得分:0)

对于谁有同样的问题,这是一个问题,并由最新版本0。2。8(2017年3月)修复。下载最新版本here