2015-11-23 7 views
6

Im folgenden Codeausschnitt habe ich das Plug-in flaglet.draw eingerichtet. Funktioniert gut zum Hinzufügen von Features (Linien, Markierungen, Polygone). Funktioniert zum Bearbeiten und Löschen. Aber die Cancel-Operation funktioniert nicht (und auch nicht den einfachen Schnittpunkt-Test, aber ich kann ohne das leben). Irgendeine Idee, was ich falsch gemacht habe, um das Plugin einzurichten?leaflet.draw wird nicht ordnungsgemäß abgebrochen.

(Chrome V44, Prospekt 1.0 Beta 2, leaflet.draw (0.2.4-dev) (scheint auch in Faltblatt zum Scheitern verurteilt '0.7.7')

Hier ist der Fehler.

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 

und hier ist der Code, den ich

 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

Könnten Sie dies auf einer Geige setzen? –

+0

Ich habe mich geirrt. Es funktioniert in der Broschüre 7.7, es funktioniert nicht in 1.0 beta 2 –

+0

Sie meinen 0,7, gibt es noch keine 7,7. 1.0 ist noch heute ein Release-Kandidat. Bitte beachten Sie die detaillierte Antwort unten. – nothingisnecessary

Antwort

1

Diese Version von leaflet.draw Plugin nicht kompatibel mit der Version von Leaflet die leaflet.draw Setup verwenden Sie verwenden.

Achten Sie darauf, Dokumente für das Plugin zu lesen, es heißt, Sie sollten Leaflet.js 0.7 verwenden.

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

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

Von der Leaflet.draw Github Seite: "Leaflet.draw 0.2.3+ erfordert Leaflet 0.7.x."

Ab heute gibt scheint ein Fork von Leaflet.draw zu sein, die gegen Leaflet 1.0 RC entwickelt wird: https://github.com/Leaflet/Leaflet.draw/tree/leaflet-master