2015-11-23 12 views
6

W poniższym fragmencie kodu ustawiłem wtyczkę leaflet.draw. Działa dobrze, dodając funkcje (linie, znaczniki, wielokąty). Działa dobrze do edycji i usuwania. Ale operacja anulowania nie działa (nie ma prostego testu przecięcia, ale mogę bez niego żyć). Masz pomysł, co zrobiłem źle, aby skonfigurować wtyczkę?leaflet.draw nie anuluje poprawnie

(Chrome V44, ulotka 1.0 beta 2 leaflet.draw (0.2.4-dev) (zdaje się również nie w ulotce '0.7.7')

Tutaj jest błąd.

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 

i tutaj jest kod używam do setup 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

mógłbyś umieścić to na skrzypcach? –

+0

Myliłem się. Działa w ulotce 7.7, nie działa w wersji 1.0 beta 2 –

+0

Masz na myśli 0,7, nie ma jeszcze 7,7. 1.0 jest nadal kandydatem do wydania na dzień dzisiejszy. Zobacz szczegółową odpowiedź poniżej. – nothingisnecessary

Odpowiedz

1

to wersja wtyczki Leaflet.draw nie jest kompatybilny z wersją ulotki używasz.

Należy przeczytać dokumentację wtyczki, stwierdza, że ​​należy używać pliku Leaflet.js 0.7.

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

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

Na stronie github Leaflet.draw: "Leaflet.draw 0.2.3+ wymaga Ulotka 0.7.x."

dzień dzisiejszy nie wydaje się być rozwidlenie Leaflet.draw który jest rozwijany na Broszurka 1.0 RC: https://github.com/Leaflet/Leaflet.draw/tree/leaflet-master

Powiązane problemy