2015-12-03 172 views
0

我正在循環訪問數組並在地圖上加載標記。如果標記被移動,我想更新數組元素的座標。在dragend上獲取ID以及Leaflet標記中的座標

到目前爲止我的代碼是這樣的:

var m; 
for (var i = 0; i < data.length; i++) { 
    var plateNo = data[i].PLATE_NUMBER; 
    var trackingNo = data[i].TRACKING_NUMBER; 
    var inventoryId = data[i].INVENTORY_ID; 
    if (data[i].INVENTORY_STATUS !== 'Complete') { 
    var icon = epsMarker.incompleteIcon; 
    var popup = '<h5>EPS</h5>' + 'Plate:' + plateNo + '<br/>' + '</p>'; 

    m = L.marker([data[i].REF_LATITUDE, data[i].REF_LONGITUDE], { 
     icon: icon, 
     draggable: 'true' 
     }) 
     .bindPopup(popup); 

    m.on('dragend', function (event) { 
     var marker = event.target; 
     var position = marker.getLatLng(); 
     console.log(position); 
     //Call Database and Update Position by INVENTORY_ID 
    }); 
    } 
} 

我能得到緯度和長,但我也想獲得INVENTORY_ID參數。這個想法是通過INVENTORY_ID在數據庫中查找數據,然後更新lat和long。

我欣賞任何幫助或指針。在此先感謝...

回答

3

你可以存儲在您的標記作爲一個選項或成員屬性的ID,這樣就可以在以後檢索:

// Store as option 
var marker = L.marker([0,0], {id: INVENTORY_ID}).addTo(map); 
console.log(marker.options.id); 

// Store as member property 
var marker = L.marker([0,0]).addTo(map); 
marker.id = INVENTORY_ID; 
console.log(marker.id); 
+0

感謝,無論是那些將工作。我的最終代碼是這樣的,以防其他人想要在dragend事件 上找到屬性m = L.marker([data [i] .REF_LATITUDE,data [i] .REF_LONGITUDE],{id:data [i ] .INVENTORY_ID,icon:icon,draggable:'true'}) .bindPopup(popup); m.on( 'dragend',函數(事件){ VAR標記= event.target; 變種位置= marker.getLatLng(); 的console.log(marker.options.id); }); – w2olves