2013-09-02 5 views
11

पर स्थिति अपडेट करें, मुझे एक leaflet.js संचालित छवि-मानचित्र पर मार्कर लगाने और इस मार्कर की स्थिति अपडेट करने में सक्षम होना चाहिए , अगर यह खींच लिया जाता है। मैं कोशिश करने के लिए निम्न कोड का उपयोग करता हूं, लेकिन यह विफल रहता है। मुझे 'मार्कर परिभाषित नहीं किया गया त्रुटि' मिलती है। मुझे नहीं पता कि यह क्यों काम नहीं कर रहा है - शायद आप लोग मेरी मदद कर सकते हैं? ;)leaflet.js - क्लिक पर मार्कर सेट करें, एक छोटी परियोजना के लिए ड्रैग

function onMapClick(e) { 
    gib_uni(); 
    marker = new L.marker(e.latlng, {id:uni, icon:redIcon, draggable:'true'}; 
    map.addLayer(marker); 
}; 

marker.on('dragend', function(event){ 
    var marker = event.target; 
    var position = marker.getLatLng(); 
    alert(position); 
    marker.setLatLng([position],{id:uni,draggable:'true'}).bindPopup(position).update(); 
}); 

उत्तर

23

ऊपर कोड स्निपेट में, मार्कर समय ईवेंट हैंडलर जोड़ा जाता है पर परिभाषित नहीं है।

function onMapClick(e) { 
    gib_uni(); 
    marker = new L.marker(e.latlng, {id:uni, icon:redIcon, draggable:'true'}); 
    marker.on('dragend', function(event){ 
      var marker = event.target; 
      var position = marker.getLatLng(); 
      console.log(position); 
      marker.setLatLng(position,{id:uni,draggable:'true'}).bindPopup(position).update(); 
    }); 
    map.addLayer(marker); 
}; 

आप अपने नए L.Marker() पंक्ति के अंत में एक ब्रैकेट लापता गया: निम्नलिखित जहां dragend श्रोता तुरंत मार्कर के निर्माण निम्नलिखित जोड़ा जाता है की कोशिश करो।

आपने को setLatLng पर कॉल में एक सरणी में भी रखा है लेकिन यह पहले से ही LatLng ऑब्जेक्ट है।

+0

आज रात, मैं लगभग समान समाधान के साथ आया था। :-) धन्यवाद! – kirijanker

+1

डुनो आप किस संस्करण का उपयोग कर रहे थे लेकिन यह 'marker.setLatLng ([position.lat, position.lng], ...' 'marker.setLatLng ([position], ...' के बजाय 'अपडेट किया गया है। – zatziky

+0

मैंने अपडेट किया सही उपयोग के साथ उत्तर .. लेखक को 'स्थिति' को सरणी में रखने की आवश्यकता नहीं थी क्योंकि यह पहले से ही 'LatLng' ऑब्जेक्ट था जो 'getLatLng()' का आउटपुट है और' setLatLng() 'प्रति पत्रक दस्तावेज़ों में इनपुट है : http://leafletjs.com/reference.html#marker – nothingisnecessary

संबंधित मुद्दे