1

In my Leaflet application, When I draw a feature (Line/Polygon) and if I need to drag the base map to mark a point outside the visibility of the map then Leaflet marks additional point where I tap on the map to drag, which is not the expected behavior.

Code for marking line in typescript:

this.l_PolylineDrawer = new L.Draw.Polyline((this.map as L.DrawMap),{showLength : true,icon : this.icon,
      shapeOptions: {color:'#ffcc33',stroke:true}}); 

put on hold as unclear what you're asking by MrXsquared, Vince, nmtoken, Midavalo Nov 9 at 5:48

Please clarify your specific problem or add additional details to highlight exactly what you need. As it's currently written, it’s hard to tell exactly what you're asking. See the How to Ask page for help clarifying this question. If this question can be reworded to fit the rules in the help center, please edit the question.

  • 1
    And what is the question/problem? – TomazicM Nov 8 at 13:09
  • If I want to mark a line where the next point is outside the visibility of the map and I need to drag the map in this case the l_PolylineDrawer marks a point where I tabbed to drag the map as well, Which shall not be the case. – user684805 Nov 8 at 13:28
  • 3
    Please update your question with the additional explanation from the comment. – TomazicM Nov 8 at 13:46
0

This seem to be a bug, see https://github.com/Leaflet/Leaflet.draw/issues/695. This bug report has also a hack that should work, just put it before any draw code:

(function() {
  var originalOnTouch = L.Draw.Polyline.prototype._onTouch;
  L.Draw.Polyline.prototype._onTouch = function( e ) {
    if( e.originalEvent.pointerType != 'mouse'  && e.originalEvent.pointerType != 'touch' ) {
      return originalOnTouch.call(this, e);
    }
  }
})();

I could test it only on regular non-touch device and there it works.

Here si working JSFiddle: https://jsfiddle.net/TomazicM/5sLuyco0/

  • L.Draw.Polyline.prototype is not defined in L.Draw.Polyline class hence typescript throws compile time error. – user684805 Nov 9 at 13:01
  • I don't know why it doesn't work for you, probably connected with Angular environment (with which I'm not familiar with). See modified answer with JSFiddle example. – TomazicM Nov 9 at 16:24

Not the answer you're looking for? Browse other questions tagged or ask your own question.