微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在传单中将同一插件用于多种用途

如何解决在传单中将同一插件用于多种用途

我正在尝试将传单绘制工具用于两种不同的事情:

  1. 作为创建新几何图形的“常规”工具
  2. 如果我画一条线,我会用 turf.js 执行一些计算,给我附近的点。

我为每个目的设置了两个单独的绘图控件。对于第二个,除了 draw:polyline 之外我都禁用了。问题:我用

保存我的元素
map.on('draw:created',function(){...});

“命令”。但是这样我(或事件处理程序,分别为:))无法区分,如果线条是用第一个或第二个按钮绘制的。所以基本上我可以将绘图工具用于一件事或另一件事。有没有办法让我在同一张地图上为不同的应用程序使用相同的工具?

感谢您提供任何提示解决方法

解决方法

另一种方法是使用 Leaflet-Geoman 而不是 Leaflet-Draw。

您可以在那里创建 Draw 实例的副本并为它们添加一个新的形状名称:

// copy a rectangle and customize its name,block,title and actions
map.pm.Toolbar.copyDrawControl('Polygon',{
  name: 'PolygonCopy',block: 'custom',title: 'Display text on hover button',actions: ['cancel','removeLastVertex','finish'],});

然后您可以在创建事件中检查形状名称:

// listen to when a new layer is created
map.on('pm:create',function(e) {
  console.log(e)
  if(e.shape === 'Polygon'){
    alert('Original Polygon')
  }else if(e.shape === 'PolygonCopy'){
    alert('Copy Polygon')
  }
});

https://jsfiddle.net/falkedesign/r0sm9auo/

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。