2015-03-02 11 views
5

कस्टम मानचित्र पर आकारों में से किसी एक को आकर्षित करने के लिए ड्रॉ टूल का उपयोग करने के बाद leaflet.draw.js का उपयोग करके leaflet.js के साथ। मेरे पास एक ऐसा फॉर्म है जो पॉप अप करता है जो कहता है या रद्द करता है। यदि उपयोगकर्ता रद्द करता है, तो मैं चित्र को हटाना चाहता हूं। उदाहरण के लिए मैं एक आयताकार चित्रण कर रहा था।मैं leaflet.draw में ड्राइंग परत को कैसे हटा सकता हूं?

यहाँ मेरी वर्तमान स्रोत है इस बात का

map.on('draw:created', function(e) { 
    var layer = e.layer; 
    var type = e.layerType; 

    $("#add-drawing").fadeIn(500); 

    featureGroup.addLayer(e.layer); // Adds rectangle 

    $("a.cancelD").on("click", function() { 
     $("#add-drawing").fadeOut(500); 

     // THESE ARE THE METHODS I HAVE TRIED TO REMOVE THE RECTANGLE 
     map.removeLayer(layer); 
     featureGroup.removeLayer(layer); 
     map.removeLayer(e); 
     featureGroup.removeLayer(e); 
    });  
}); 

कोई भी काम कर रहा है। मैं परत को हटाने के लिए टूलबॉक्स का उपयोग कर सकता हूं, लेकिन तब मेरे पास सबमिट किए जाने वाले फॉर्म में कोई भी जानकारी सबमिट नहीं की जाएगी।

किसी प्रपत्र पर रद्द बटन दबाते समय मैंने उन वस्तुओं को कैसे हटाया है जिन्हें मैंने खींचा है?

उत्तर

6

चूंकि आप featureGroup पर जोड़ रहे हैं, जो आप कहते हैं, आपको featureGroup से भी हटाया जाना चाहिए। featureGroup.removeLayer(e.layer) या featureGroup.removeLayer(layer) पर कॉल करना (क्योंकि layere.layer का संदर्भ रखता है) काम करना चाहिए। http://plnkr.co/edit/kPvYbH?p=preview

मेरी राय में केवल निष्कर्ष हो सकता है कि आपके घटना फायरिंग नहीं है या आप अजीब scoping मुद्दे के कुछ प्रकार हो रही हो, लेकिन है कि आसानी से डिबग जा सकता है::

यहाँ Plunker पर एक काम उदाहरण है

$("a.cancelD").on("click", function() { 
    console.log('Click fired!'); // Seeing this in your console, event works 
    console.log(featureGroup); // Should return featureGroup instance, scope ok 
    console.log(e.layer); // Should return polygon instance, scope ok 

    // If all of the above works, this should too 
    featureGroup.removeLayer(e.layer); 
});  
+1

बड़े पैमाने पर अंगूठे में मदद मिलेगी .. समस्या था वर्ग, मैं बस एक आईडी को रद्द बटन को जोड़ा गया है और यह काम किया .. आपका लाइव उदाहरण है कि मुझे क्या यह पता लगाने में मदद की और तथ्य आपने मुझे यह जांचने के लिए याद दिलाया कि क्या कंसोल में कुछ भी है, जो यह नहीं था। धन्यवाद! लाइव उदाहरण सबसे अच्छे हैं! कक्षा के बजाए आईडी को शामिल करने के लिए आप अपना उत्तर संपादित करना चाहेंगे :) –

0

मुझे यह वही समस्या थी। समाधान के बाद मेरे लिए काम किया,

सुविधा समूह.क्लेयरलेयर (ई.लेयर);

आशा इस किसी

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