问题标签 [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.
leaflet - 单击时更改功能实例
我试图找到一种方法在将 Leaflet geoJson Feature 添加到地图后更改它的实例。
这就是我想要实现的目标:
使用 L.GeoJson 导入数据,我正在使用pointToLayer
将标记更改为L.CircleMarker
现在我想要
知道如何实现这一目标吗?
reactjs - LEAFLET GEOMAN - 拾取这个多边形画中的坐标
我已经咨询了一个 geojson,它正在绘制这些黑点。然后我插入了leaflet-geoman 插件,让用户可以自由地在地图上创建多边形。基本上在那里画一些东西。
例如:绘制一个多边形以仅获取该多边形内的信息。
当使用该工具在地图上绘制多边形时,我想知道哪个黑点在图中。
简而言之:我的多边形图中有 4 个点(不是来自 geojson,是人绘制的),我想从绘制的多边形内的那些点中获取信息。这一个中的每个黑点都有一个 id,我想知道这个人画的空间内有哪些点。
我的风水师传单代码:
我在地图代码上的黑点:
reactjs - 从纬度/经度点获取区域
我有一张传单地图,用户在其中绘制了一个多边形,这个多边形给了我经纬度点。
我也在使用反应 js。
我想知道多边形区域,以便我可以从多边形区域内的黑点中获取 id。所以问题是:
如何根据从中生成的信息删除我的多边形的面积?
多边形绘制函数
leaflet - geoman - 如何在removingMode中删除功能后访问生成的GeoJSON对象
我有一个 FeatureCollection 从中删除单个功能。我可以通过添加事件侦听器pm:remove来获取已删除的功能,如下所示:
我还想访问生成的 FeatureCollection(已从中删除该功能)。我怎么能“ console.log() ”呢?
reactjs - React useCallback 函数无限循环运行
我正在尝试在 React 项目中使用Leaflet-geoman库。我需要创建一个自定义工具栏按钮来启用和禁用全局拖动模式。
单击工具栏按钮时,map.pm.enableGlobalDragMode();
函数启用全局模式。再次单击工具栏按钮时,map.pm.disableGlobalDragMode();
会导致 useCallback 函数afterClick
无限循环运行。
useDraw.js
leaflet - 使用 Leaflet-geoman 限制折线中的制造商点(成为一条线)
我想让用户画一条线(这是一条只有 2 个点的折线)。
我启用绘图和监听vertexadded
。当_rings
标记数等于 2 时,我禁用绘图。
这感觉不对有几个原因:
- 我访问一个私有变量
_rings
- 现在我禁用绘图但要可视化线条我必须在可视模式下重新启动它
- 为了允许用户移动线的 2 个点,我必须在编辑模式下重新启动线。
- 在编辑模式下,必须禁用在 2 个标记之间分割线,这可能吗?
我错过了一种更简单的方法吗?
leaflet - geoman - 如何在绘图模式下创建特征后在编辑模式下监听特征变化
如文档https://github.com/geoman-io/leaflet-geoman#draw-mode中所述,我正在听在“绘图模式”期间添加顶点
在某个时候,我完成了绘图并且“绘图模式”结束了。
然后我想编辑几何并启用“编辑模式”。
如何收听我刚刚绘制几何图形的“workingLayer”的编辑?
我尝试了以下但没有成功...
更新:然后我打开我的大脑并想出了以下内容
这是这样做的方法还是存在更有效的方法?
javascript - Leaflet.js 圆到多边形的转换
我正在使用 Leaflet.js 来保存覆盖图,并为用户提供使用多边形或圆形的选项。
为了使所有对象保持相同的格式,我在保存之前将圆转换为多边形。
但是,当我重新加载圆圈时,它是椭圆形的。
我知道这是由于地球的曲线,但我不确定如何纠正我的方法以考虑到这一点?(我已经看过但找不到任何能提供我所追求的解决方案的东西)。
主要问题是我在下面使用的 javascript 方法,因为它没有考虑到地球的曲线。
任何建议都会很棒。
angular - 如何使用/声明一个不会在 Angular 11 中传递严格和 noImplicitReturns TypeScript 设置的外部模块?
我们有一个打开严格模式的 Angular 11 应用程序。compilerOptions
它在以下配置中具有以下值tsconfig.json
:
现在我们要使用一个外部库(leaflet geoman)。该库是这样导入的:
不幸的是,它包括隐式any
类型以及隐式any
返回类型:
参数 'options' 隐含地具有 'any' 类型。
'setLang' 缺少返回类型注释,隐含地具有“任何”返回类型
如何告诉编译器在编译期间忽略模块中的这些错误,但strict
在项目的其余部分保持打开模式?
topojson - 维护 MultiLineString 上的拓扑
我正在尝试使用 TopoJSON 使用 Leaflet-Geoman 插件获得线条的拓扑移动。有一个方法叫topojson.mesh
返回表示给定拓扑中指定对象的网格的 GeoJSON MultiLineString 几何对象。这对于有效地在复杂对象中渲染笔触很有用,因为由多个特征共享的边缘仅被描边一次。如果未指定对象,则返回整个拓扑的网格。
感谢在这篇文章中的回答,我已经能够使用topojson.mesh
. 由于 Leaflet-Geoman 支持 MultiLineString,我想到了可以使用 Leaflet-Geoman 编辑返回的网格,同时保持拓扑属性。
但是当我尝试完成它时,当我尝试使用 geoman 插件对其进行编辑时,返回的 MultiLineString 会分成两部分。我的问题是,它是否真的是从topojson.mesh
线条分离的原因返回的网格?这是由geoman插件引起的吗?如果是这样,我怎样才能完成它?有什么方法可以在保持拓扑的同时通过拖动节点来更改节点的位置?
我将附上下面的代码
数据.geojson