2017-03-24 33 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