问题标签 [leaflet-draw]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1133 浏览

vue.js - 从 vue2-leaflet-draw-toolbar 中提取坐标

我正在使用 vue2-leaflet-draw-toolbar 插件在地图上绘制形状,有人知道如何获取绘制形状的坐标吗?当标记离开这些区域时,我正在尝试使用这些数据来触发事件。

0 投票
1 回答
190 浏览

reactjs - 传单自定义编辑?处理程序?

是否可以将编辑模式下显示的矩形更改为其他内容,例如marcer、圆形或图标?

0 投票
1 回答
450 浏览

javascript - React-Leaflet:添加 L.TileLayer 打破地图

我的目标是将传单绘制添加到我的地图中。为此,我一直在使用 L 在组件挂载时将控件和drawedItem 层添加到地图中。问题似乎出在 TileLayer 上。如果我将它添加到渲染的 div 中,它只会填充 80% 的地图,让新工具栏看起来很糟糕。如果我用 L.TileLayer 添加它,它会填满整个地图,但会使大部分地图无法拖动。我会用图片来演示。

在渲染的 div 中添加 TileLayer:

在此处输入图像描述

在组件安装时添加时: 在此处输入图像描述

注意:蓝色区域是无法交互的区域。操作地图的唯一方法是在绘图工具栏下拖动。我将包含这个不可操作层的 div: 在此处输入图像描述

最后,重要的是要注意,如果我在浏览器开发工具中手动删除此元素,则地图可以正常工作。为了使这个问题更简洁,我将删除所有传单绘制代码,以便希望问题更加明显。我现在将连同 index.html 一起显示代码。

索引.html:

最后,我要提一下,到目前为止,我在传单方面遇到了多个问题。首先,在渲染中使用 L AND 声明 TileLayer 不会导致问题。我在所有情况下都尝试过使用/不使用。此外, 和 的 idL.map必须匹配才能正确引用,所以我ref={this.state.map}没有任何用处。没有这个,我会丢失地图容器。如果您查看左上角的 + 和 - 符号,您将能够看到额外的层戳进来。如果我删除 componentDidMount 方法,地图将恢复正常。问题必须与我如何创建地图有关L.map,因为如果我只是

我仍然遇到重叠问题,但是地图现在可以拖动了。如果我再添加L.TileLayer,那就是它再次变得无法使用的时候。

0 投票
1 回答
189 浏览

javascript - Leaflet.draw 发出事件以停止绘图

使用传单绘制,当我用多边形绘制时,我需要在矩形的第二个点固定时结束绘制。监听 'drawvertex' 事件两次,在

我尝试使用 emit 和 completeShape 函数,但它不起作用,我尝试使用按钮“完成”的相同方法(当您单击多边形进行绘制时)但我没有在源代码上找到该方法。这是我的密码箱https://codesandbox.io/s/romantic-jepsen-7esnz?file=/index.html

0 投票
2 回答
1239 浏览

javascript - 获取 Leaflet 上矩形的坐标

我想要获取用户将在地图(传单)上绘制的矩形每个角的坐标。
目标是提取最大/最小纬度和最大/最小经度。

这是我显示地图并使用 Leaflet-Draw 绘制矩形的代码:

我得到了四个角度的坐标 ( .getLatLngs()),但我无法对这个系列进行排序。
例如这里是结果:LatLng(45.644768, -0.175781),LatLng(47.428087, -0.175781),LatLng(47.428087, 5.844727),LatLng(45.644768, 5.844727)

我想将每个纬度/经度存储在我将在我的网页中显示的变量中:
latN:47.428087
latS:45.644768
lonE:5.844727
lonW:-0.175781

你对我有什么建议吗?还是信息?
提前致谢 !

0 投票
0 回答
38 浏览

angular - Leaflet.Draw 中的图层每次都不同

我想要的是:

要单击删除,请选择绘制的图层,然后在单击保存时从 UI 和 Firestore 中删除它们

我现在如何拥有它:

每次我创建一个新的leaflet.Draw 图层(例如一个矩形)时,我都会将它保存到firestore,删除所有,然后再次创建每个图层。这是为了解决复制层的问题。

但是,每次我从 firestore 加载和创建图层(或刷新页面)时,图层都会获得新的 id。我需要 id 保持一致,以便我可以将 id 存储在 firebase 中,并在以后使用它进行删除。

问题:

我怎样才能做到这一点?或者,还有更好的方法?

我用于创建的代码在这里:

我在删除时找到 id 的方式是这样的:

0 投票
1 回答
439 浏览

leaflet - 使用 Leaflet-geoman 限制折线中的制造商点(成为一条线)

我想让用户画一条线(这是一条只有 2 个点的折线)。

我启用绘图和监听vertexadded。当_rings标记数等于 2 时,我禁用绘图。

这感觉不对有几个原因:

  1. 我访问一个私有变量_rings
  2. 现在我禁用绘图但要可视化线条我必须在可视模式下重新启动它
  3. 为了允许用户移动线的 2 个点,我必须在编辑模式下重新启动线。
  4. 在编辑模式下,必须禁用在 2 个标记之间分割线,这可能吗?

我错过了一种更简单的方法吗?

0 投票
0 回答
397 浏览

leaflet - 在传单绘制中绘制多边形后获取所有多边形或图层详细信息

我正在尝试获取已经覆盖在地图上的地图图层详细信息。创建传单绘制时,我想获取图层详细信息(不是传单绘制插件创建的多边形坐标),以便我可以使用它们。我能够获得绘制多边形的坐标,但这不是我想要的。

好吧,我可以得到标记细节,因为我得到了很多关于它的帖子,但没有看到如何获取多边形细节的帖子。

在此处输入图像描述

对此的任何帮助都是非常可观的

0 投票
0 回答
281 浏览

mapbox - 允许在 mapbox draw mod 中删除点

我正在尝试重写 MapboxDraw.modes.draw_line_string.clickAnywhere 函数,以允许在 draw_line_string 模式下使用 SHIFT 键删除前一个点。它可以工作,但是当它删除前一点时,它会在新位置创建一个新点。

  1. 画一条线
  2. 按住 shift 并单击任何先前的点
  3. 将删除旧的创建一个新的

我想删除旧点并继续添加新点一个例子在这里 https://jsfiddle.net/benderlio/5fxwhkdp/7/

UPD: ok,重点是设置currentVertexPosition

0 投票
1 回答
894 浏览

leaflet - 如何在 react-leaflet v3 中绘制形状

您对将绘图功能实现到 react-leafletV3 有任何想法吗?我添加了一个事件侦听器,但它无法正常工作并对任何事情做出反应。