2017-03-24 35 views
0

我正在使用一个名为Maplacejs(https://maplacejs.com/)的jQuery插件来让Google地图操作变得更简单(我对这个主题感兴趣)。Maplacejs在更新时复制控件

我首先创建一个变量来设置(初始化)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":[ 
    {"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变量,甚至设置变量为“空”或“未定义”,但没有sucess :(

请,你能帮帮我吗?

+0

请分享你的整个代码。我看不到您的选择更改事件的处理程序,或者Maplace实例化的地方。此外,您可以尝试在[StackOverflowEspañol](http://es.stackoverflow.com)上交叉发布您的问题,以覆盖更广泛的受众 – amenadiel

+0

@amenadiel,我更新了问题,谢谢! Maplace被实例化为一个名为“maplace”的变量。对不起,我不知道西班牙语... – Guybrush

+0

哦,我看到“Mostrar Todos”并跳到结论 – amenadiel

回答

0

为谁有同样的问题,这是一个问题,并通过最新版本0.2.8(2017年三月)固定。下载最新版本here