2015-11-23 21 views
6

नीचे दिए गए कोड स्निपेट में, मैंने leaflet.draw प्लगइन सेट किया है। सुविधाओं (लाइनें, मार्कर, बहुभुज) जोड़ने के लिए ठीक काम करता है। संपादन और हटाने के लिए ठीक काम करता है। लेकिन रद्द करने का ऑपरेशन काम नहीं करता है (न ही सरल चौराहे परीक्षण करता है, लेकिन मैं इसके बिना जी सकता हूं)। प्लगइन स्थापित करने के लिए मैंने क्या गलत किया है?leaflet.draw ठीक से रद्द नहीं करता

(क्रोम V44, 1.0 बीटा 2, leaflet.draw (0.2.4-देव) पत्रक (यह भी पत्रक '0.7.7') में विफल रहा है

यहाँ त्रुटि है:।

Uncaught TypeError: Cannot read property '0' of undefined 
L.Polyline.L.Path.extend._projectLatlngs @ leaflet-src.js:5535 
L.Polyline.L.Path.extend._projectLatlngs @ leaflet-src.js:5547 
L.Polyline.L.Path.extend._projectLatlngs @ leaflet-src.js:5547 
L.Polyline.L.Path.extend._project @ leaflet-src.js:5519 
L.SVG.L.Renderer.extend._updatePath @ leaflet-src.js:6042 
L.Path.L.Layer.extend.redraw @ leaflet-src.js:5130 
L.Polyline.L.Path.extend.setLatLngs @ leaflet-src.js:5411 
L.EditToolbar.Edit.L.Handler.extend._revertLayer @ leaflet.draw-src.js:2759 
(anonymous function) @ leaflet.draw-src.js:2716 
L.LayerGroup.L.Layer.extend.eachLayer @ leaflet-src.js:4865 
L.EditToolbar.Edit.L.Handler.extend.revertLayers @ leaflet.draw-src.js:2715 
L.EditToolbar.L.Toolbar.extend.disable @ leaflet.draw-src.js:2578handler @ leaflet-src.js:6953 

और यहाँ कोड मैं leaflet.draw सेटअप करने के लिए इस्तेमाल करते हैं

 var theMap; 
    var mapLayer; 
    var carLayer; 
    var drawLayer; 
    var drawControl; 
    var trackerButton; 
    .... 
     this.setupDraw(); 

     theMap = L.map('mapCanvas', { 
      center: mCityCenter, 
      zoom: 20, 
      layers: [osmLight, mapLayer, carLayer, drawLayer] 
     }); 
     theMap.on("draw:created", this.addDrawing); 
     .... 
    this.setupDraw = function() { 
     drawLayer = new L.FeatureGroup(); 

     drawControl = new L.Control.Draw({ 
      draw: { 
       polygon: { 
        allowIntersection: false, // Restricts shapes to simple polygons 
        showArea: true, 
        drawError: { 
         color: '#e1e100', // Color the shape will turn when intersects 
         message: '<strong>Oh snap!<strong> you can\'t draw that!' // Message that will show when intersect 
        } 
       } 
      }, 
      edit: { 
       featureGroup: drawLayer 
      } 
     }); 
    } 
    this.addDrawing = function (e) { 
     var type = e.layerType; 
     var layer = e.layer; 

     if (type === 'marker') { } 
     drawLayer.addLayer(layer); 
    } 
+1

आप एक बेला पर इस डाल सकता है:

आज के रूप में वहाँ Leaflet.draw का एक कांटा कि पत्रक 1.0 आर सी के खिलाफ विकसित किया जा रहा होने के लिए प्रकट होता है? –

+0

मैं गलत था। यह पुस्तिका 7.7 में काम करता है, यह 1.0 बीटा 2 –

+0

में काम नहीं कर रहा है आपका मतलब 0.7 है, अभी तक कोई 7.7 नहीं है। 1.0 आज भी एक रिलीज उम्मीदवार है। कृपया नीचे विस्तृत उत्तर देखें। – nothingisnecessary

उत्तर

1

leaflet.draw प्लगइन का संस्करण प्रयोग कर रहे पत्रक के संस्करण के साथ संगत नहीं है यही कारण है कि।

प्लगइन के लिए दस्तावेज़ पढ़ने के लिए सुनिश्चित रहें, यह बताता है कि आपको Leaflet.js 0.7 का उपयोग करना चाहिए।

Leaflet.draw: https://github.com/Leaflet/Leaflet.draw

Leaflet.JS: http://leafletjs.com/reference.html

Leaflet.draw GitHub पेज से: "Leaflet.draw 0.2.3+ पत्रक 0.7.x. की आवश्यकता है" https://github.com/Leaflet/Leaflet.draw/tree/leaflet-master

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