问题标签 [leaflet-geoman]

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 回答
35 浏览

leaflet - 单击时更改功能实例

我试图找到一种方法在将 Leaflet geoJson Feature 添加到地图后更改它的实例。

这就是我想要实现的目标:

使用 L.GeoJson 导入数据,我正在使用pointToLayer将标记更改为L.CircleMarker

现在我想要

知道如何实现这一目标吗?

0 投票
0 回答
385 浏览

reactjs - LEAFLET GEOMAN - 拾取这个多边形画中的坐标

我已经咨询了一个 geojson,它正在绘制这些黑点。然后我插入了leaflet-geoman 插件,让用户可以自由地在地图上创建多边形。基本上在那里画一些东西。

传单风水画

例如:绘制一个多边形以仅获取该多边形内的信息。

当使用该工具在地图上绘制多边形时,我想知道哪个黑点在图中。

多边形绘制

简而言之:我的多边形图中有 4 个点(不是来自 geojson,是人绘制的),我想从绘制的多边形内的那些点中获取信息。这一个中的每个黑点都有一个 id,我想知道这个人画的空间内有哪些点。

我的风水师传单代码:

我在地图代码上的黑点:

0 投票
1 回答
78 浏览

reactjs - 从纬度/经度点获取区域

我有一张传单地图,用户在其中绘制了一个多边形,这个多边形给了我经纬度点。

我也在使用反应 js。

多边形绘制

我想知道多边形区域,以便我可以从多边形区域内的黑点中获取 id。所以问题是:

如何根据从中生成的信息删除我的多边形的面积?

绘制多边形的值

多边形绘制函数

0 投票
1 回答
266 浏览

leaflet - geoman - 如何在removingMode中删除功能后访问生成的GeoJSON对象

我有一个 FeatureCollection 从中删除单个功能。我可以通过添加事件侦听器pm:remove来获取已删除的功能,如下所示:

我还想访问生成的 FeatureCollection(已从中删除该功能)。我怎么能“ console.log() ”呢?

0 投票
1 回答
294 浏览

reactjs - React useCallback 函数无限循环运行

我正在尝试在 React 项目中使用Leaflet-geoman库。我需要创建一个自定义工具栏按钮来启用和禁用全局拖动模式

单击工具栏按钮时,map.pm.enableGlobalDragMode();函数启用全局模式。再次单击工具栏按钮时,map.pm.disableGlobalDragMode();会导致 useCallback 函数afterClick无限循环运行。

码沙盒.io

useDraw.js

0 投票
1 回答
439 浏览

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

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

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

这感觉不对有几个原因:

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

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

0 投票
1 回答
592 浏览

leaflet - geoman - 如何在绘图模式下创建特征后在编辑模式下监听特征变化

如文档https://github.com/geoman-io/leaflet-geoman#draw-mode中所述,我正在听在“绘图模式”期间添加顶点

在某个时候,我完成了绘图并且“绘图模式”结束了。

然后我想编辑几何并启用“编辑模式”。

如何收听我刚刚绘制几何图形的“workingLayer”的编辑?

我尝试了以下但没有成功...

更新:然后我打开我的大脑并想出了以下内容

这是这样做的方法还是存在更有效的方法?

0 投票
1 回答
612 浏览

javascript - Leaflet.js 圆到多边形的转换

我正在使用 Leaflet.js 来保存覆盖图,并为用户提供使用多边形或圆形的选项。

为了使所有对象保持相同的格式,我在保存之前将圆转换为多边形。

但是,当我重新加载圆圈时,它是椭圆形的。

我知道这是由于地球的曲线,但我不确定如何纠正我的方法以考虑到这一点?(我已经看过但找不到任何能提供我所追求的解决方案的东西)。

主要问题是我在下面使用的 javascript 方法,因为它没有考虑到地球的曲线。

任何建议都会很棒。

0 投票
2 回答
359 浏览

angular - 如何使用/声明一个不会在 Angular 11 中传递严格和 noImplicitReturns TypeScript 设置的外部模块?

我们有一个打开严格模式的 Angular 11 应用程序。compilerOptions它在以下配置中具有以下值tsconfig.json

现在我们要使用一个外部库(leaflet geoman)。该库是这样导入的:

不幸的是,它包括隐式any类型以及隐式any返回类型:

参数 'options' 隐含地具有 'any' 类型。
'setLang' 缺少返回类型注释,隐含地具有“任何”返回类型

如何告诉编译器在编译期间忽略模块中的这些错误,但strict在项目的其余部分保持打开模式?

0 投票
1 回答
78 浏览

topojson - 维护 MultiLineString 上的拓扑

我正在尝试使用 TopoJSON 使用 Leaflet-Geoman 插件获得线条的拓扑移动。有一个方法topojson.mesh

返回表示给定拓扑中指定对象的网格的 GeoJSON MultiLineString 几何对象。这对于有效地在复杂对象中渲染笔触很有用,因为由多个特征共享的边缘仅被描边一次。如果未指定对象,则返回整个拓扑的网格。

感谢在这篇文章中的回答,我已经能够使用topojson.mesh. 由于 Leaflet-Geoman 支持 MultiLineString,我想到了可以使用 Leaflet-Geoman 编辑返回的网格,同时保持拓扑属性。

但是当我尝试完成它时,当我尝试使用 geoman 插件对其进行编辑时,返回的 MultiLineString 会分成两部分。我的问题是,它是否真的是从topojson.mesh线条分离的原因返回的网格?这是由geoman插件引起的吗?如果是这样,我怎样才能完成它?有什么方法可以在保持拓扑的同时通过拖动节点来更改节点的位置?

我将附上下面的代码

数据.geojson