removing arrows on drag

This commit is contained in:
muerwre 2018-08-27 16:27:59 +07:00
parent dcd8a341a1
commit 6b52f58462

View file

@ -31,17 +31,18 @@ export class Poly {
drawArrows = () => { drawArrows = () => {
this.arrows.clearLayers(); this.arrows.clearLayers();
const { latlngs } = this; const { latlngs } = this;
if (!latlngs || latlngs.length <= 1) return; if (!latlngs || latlngs.length <= 1) return;
latlngs.map((latlng, i) => { latlngs.map((latlng, i) => {
if (i === 0) return; if (i === 0) return;
const mid = middleCoord(latlngs[i], latlngs[i - 1]); const mid = middleCoord(latlngs[i], latlngs[i - 1]);
const dist = findDistance(latlngs[i - 1].lat, latlngs[i - 1].lng, latlngs[i].lat, latlngs[i].lng); const dist = findDistance(latlngs[i - 1].lat, latlngs[i - 1].lng, latlngs[i].lat, latlngs[i].lng);
if (dist > 1.5) { if (dist <= 1.5) return;
const slide = new L.Polyline( const slide = new L.Polyline(
[ [
latlngs[i - 1], latlngs[i - 1],
@ -49,8 +50,8 @@ export class Poly {
], ],
{ color: 'none', weight: '5' } { color: 'none', weight: '5' }
).addTo(this.arrows); ).addTo(this.arrows);
slide._path.setAttribute('marker-end', 'url(#long-arrow)'); slide._path.setAttribute('marker-end', 'url(#long-arrow)');
}
}); });
}; };
@ -74,6 +75,7 @@ export class Poly {
this.map.editTools.addEventListener('editable:vertex:new', this.updateMarks); this.map.editTools.addEventListener('editable:vertex:new', this.updateMarks);
this.map.editTools.addEventListener('editable:vertex:dragstart', this.lockMap); this.map.editTools.addEventListener('editable:vertex:dragstart', this.lockMap);
this.map.editTools.addEventListener('editable:vertex:dragstart', this.clearArrows);
// После удаления точки - продолжить рисование // После удаления точки - продолжить рисование
this.map.editTools.addEventListener('editable:vertex:deleted', this.continueForward); this.map.editTools.addEventListener('editable:vertex:deleted', this.continueForward);
@ -140,5 +142,7 @@ export class Poly {
this.poly.setLatLngs([]); this.poly.setLatLngs([]);
this.poly.disableEdit(); this.poly.disableEdit();
this.updateMarks(); this.updateMarks();
} };
clearArrows = () => this.arrows.clearLayers();
} }