原先一直用https://github.com/Leaflet/Leaflet.Editable的插件來實現編輯
這次項目只需對marker進行移動,因此想看看能否不通過插件實現此功能
答案:可以
HTML
1 <div id="map"></div> 2 <div id="ctrlbox"> 3 <label><input id="ctrlDragge" type="checkbox"/>移動Marker</label> 4 </div>
JS
1 var marker1 = L.marker([30.75, 120.75]).addTo(this.map); 2 var marker2 = L.marker([30.76, 120.76], { draggable: true }).addTo(this.map); 3 4 //拖拽結束 5 marker2.on('dragend', function (event) { 6 var position = marker1.getLatLng(); 7 console.log('實時坐標:' + marker2.getLatLng()); 8 }) 9 //marker1.on('moveend ', function (e) { 10 // console.log(e.target._latlng); 11 //}); 12 13 $('#ctrlDragge').on('change', function () { 14 var isCheck = this.checked; 15 if (isCheck) { 16 marker1.dragging.enable(); 17 } else { 18 marker1.dragging.disable(); 19 console.log(marker1.getLatLng()); 20 } 21 });
marker1:通過checkbox開關實現開啟/關閉拖拽功能
marker2:通過options中draggable參數實現拖拽