如何使用 Leaflet 一次只允许编辑一个要素/多边形?

2023-12-25

这几天我一直在努力解决我的问题。

我有一个来自 GeoJSON 的多边形层。我想通过单击事件编辑多边形。当我单击一个多边形时,它变得可编辑,但我想要的是,当我单击另一个多边形时,第一个多边形不再处于可编辑模式。

OpenLayers自然没有Leaflet。

这是我的代码的摘录:

var editableLayers = new L.FeatureGroup().addTo(map);
var polygon_json;
    $.ajax({
    type: "GET",
    dataType: "json",
    url: "get_json.php", 
    success: function (response) {
                        meaux_json = L.geoJson(response, {
                        onEachFeature: onEachFeature    
                        });
                      }
    });

//edit the targeted polygon
function onEachFeature (feature, layer) {
                    editableLayers.addLayer(layer);
                    layer.on('click', function(e){
                    e.target.editing.enable();
                    });
               }

一个人能够做到这一点,但我很难理解如何做到:https://github.com/dwilhelm89/Ethermap https://github.com/dwilhelm89/Ethermap


我认为你很接近。在 onEachFeature 函数中,您应该存储被单击的功能,以便您可以在单击处理程序中启用/禁用编辑。

var selectedFeature = null;
//edit the targeted polygon
function onEachFeature (feature, layer) {
     editableLayers.addLayer(layer);
     layer.on('click', function(e){
          if(selectedFeature)
               selectedFeature.editing.disable();
          selectedFeature = e.target;
          e.target.editing.enable();
     });
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 Leaflet 一次只允许编辑一个要素/多边形? 的相关文章

  • 如何使用 jq 对可能不存在的数组进行排序?

    给定以下 JSON alice items foo bar bob items bar foo charlie items foo bar 我可以排序items数组如下 jq lt users json map items sort ite
  • 用 C# 在图像上写入文本

    我有以下问题 我想在位图图像中制作一些图形 例如债券形式 我可以在图像中写入文字但我会在不同的位置写更多的文字 Bitmap a new Bitmap path picture bmp using Graphics g Graphics F
  • 按百分比减少多边形面积

    我有一个由点 x y 组成的多边形 我想做的是将其减少一个百分比 请记住 我不想只是扩大规模 多边形应该有一种内部边界 其宽度取决于百分比 该内部边界被多边形切断 谁知道可以实现这一目标的算法 输入 点数组 百分比 输出 点数组 你所寻求的
  • 向图像添加坐标,以用作 R 中的 Leaflet、Shiny 和 Shinydashboard 包中的地图

    我计划使用 Leaflet Shiny 和 Shinydashboard 沿着以下很棒的路线创建一个带有医院 OHS 事件标记的交互式地图交互式地图和直方图模板 http shiny rstudio com gallery superzip
  • 绘制多边形

    我正在使用 Google Maps API V3 根据路径绘制多边形 该路径是随机未排序坐标点 LatLng 的数组 这会产生以下形状 Polylines intersect Problem 由于多边形的形状取决于路径中点的顺序 因此如何对
  • Leaflet js虚构地图

    我是 Leaflet 的新手 我想了解如何创建完全交互式的虚构地图 我有一张图像想要转换为传单地图 该图像基本上像图表一样具有许多连接和点 我想首先将该图像转换为地图 能够将鼠标悬停在这些点上 突出显示它们并显示有关它们的信息 并且还可以在
  • 我可以在 r 中使用传单“map_shape_click”事件来用数据表填充 box() 吗?

    我已经在网络上搜索了好几个星期 试图找到一个示例或代码来实现我想要用我的闪亮应用程序 shinydashboard 完成的任务 我是 r 的新手 我开始认为我想做的事情是不可能的 我基本上有一个带有县多边形 shapefile 的传单地图
  • 使用Java绘制维恩图

    我正在尝试根据给定的布尔方程绘制维恩图 例如 a AND b AND c我想在 Android 手机上执行此操作 因此我需要找到一种使用 Java 来执行此操作的方法 我找到了一个完美的小部件 它可以完成我在这方面寻找的一切布尔代数计算器
  • 传单地图显示为灰色

    我正在启动 leaflet js快速开始 http leafletjs com examples quick start html但我的地图显示为灰色 我缺少什么吗 脚本 js var leafletMap L map leafletMap
  • Seleneium 异常 - Arguments[0].click 不是 Selenium Python 中使用 execute_script() 的函数

    我正在这个网站上抓取交互式地图 https collegecrisis shinyapps io dashboard https collegecrisis shinyapps io dashboard 使用Python和Selenium
  • 我可以防止将 Leaflet 地图平移到世界边缘之外吗?

    有没有办法限制平移到世界边缘之外 在这幅画中 棕色是世界 灰色是虚空 我想让它不可能像这样平移 Leaflet 允许您控制地图抵抗被拖出边界的程度maxBoundsViscosity选项 值 0 到 1 将其设置为最大值会完全禁用拖动出界
  • 如何将传单地图背景设置为白色?

    我目前正在使用传单来显示数据 总的来说 效果很好 但我们的PM希望地图背景是白色而不是灰色 现在 整个地图的背景都是灰色的 我检查了文档 根本找不到如何使背景变成白色的解决方案 非常感谢您的建议 我看到这是由tileLayer引起的 L t
  • 使用shinyjs通过javascript在闪亮的应用程序中操作现有的Leaflet地图

    我有一个闪亮的应用程序 其中包含现有的传单地图 我希望能够在渲染后使用自定义 javascript 通过shinyjs包裹 一个最小的例子如下 app R packages library dplyr library leaflet lib
  • 如何将 django ModelForm 字段显示为不可编辑

    接受我的初步教训django ModelForm 我想让用户能够编辑博客中的条目 BlogEntry has a date postedTime title and content 我想向用户展示一个编辑表单 其中显示所有这些字段 但仅包含
  • LeafletJs只显示一个国家

    我使用 Leafletjs 和 D3 来显示地图 我只想在地图上显示英国 Leaflet和D3是否可以只显示英国 这当然是可能的 现在的解决方案取决于您是想使用 D3 绘制英国 还是想从 Tile Server 获取它 在后一种情况下 有一
  • 运行 ng build --prod 时传单标记图标 url 编译错误

    由于某种原因 Leaflet 标记图标 url 在运行时编译错误ng build prod相反 当跑步时ng build传单标记图标 url 很好 我的环境 Angular CLI 7 0 5 Node 11 2 0 OS linux x6
  • 将哨兵图层添加到传单地图

    这就是我定义获取哨兵的 wms 图像的 url 的方式 哨兵2 https kade si cgi bin mapserv SERVICE WMS VERSION 1 3 0 REQUEST GetMap FORMAT image jpeg
  • Leaflet R 闪亮:选择和缩放

    我正在开发一个带有闪亮和传单的工具 我希望当客户点击变量时 参见 UI 代码 例如 NE 地图会转到另一个视图 例如纯传单中的这样 L easyButton strong NE strong function zoomTo setView
  • 使用 Leaflet 加载页面时 moveend 事件多次触发

    我需要在地图平移或缩放时执行一些操作 因此我向该事件附加了一个回调moveend map on moveend function code stuff 它工作正常 但是当页面加载时 该事件被触发三次 我不知道为什么 可能是因为在创建过程中地
  • 在shiny中过滤传单地图数据

    我在用传单地图设置这个闪亮的东西时遇到了麻烦 我的原帖 https stackoverflow com questions 50111566 applying leaflet map bounds to filter data within

随机推荐

  • SOAP-UI - 如何在参数内传递 xml

    在 SOAP UI 中 我向 Web 服务发出如下请求
  • 正则表达式量词加号和星号之间的区别

    我尝试从字符串中提取错误号 例如 Wrong parameters Error 1356 Pattern p Pattern compile d Matcher m p matcher myString m find System out
  • Android 上 imageView 的渲染圆角

    我有以下一段代码用于渲染带有圆角的 imageView public class RoundedCornerImageView extends ImageView private int rounded public RoundedCorn
  • Amazon RDS MySQL 实例执行速度非常慢

    我在Amazon EC2 新加坡区域 上发布了我的网站 并使用MySQL RDS实例进行数据存储 除了性能之外 一切都工作得很好 我看来 我的所有查询 尤其是 select 语句 执行速度非常慢 如果我在本地电脑上检查这个问题 它运行得很好
  • 关于python中switch的一些问题

    这是我在 StackOverflow 上的第一个问题 所以如果某些信息不存在或者我错过了一些重要的信息 请耐心等待我 但无论如何我会尽力 最近我开始用Python2 7编写代码 所以我不太擅长 在使用 PyGtk PyGObject Gla
  • Google 云存储 JavaScript 使用情况

    我正在尝试使用以下命令将图像上传到 Google Cloud Storage 上的存储桶中JSON API https cloud google com storage docs json api 使用 Javascript 示例 API
  • 测量 C++ 中函数的执行时间

    我想知道我的 C 程序中某个函数执行需要多长时间Linux 之后我想做一个速度对比 我看到了几个 time 函数 但最终从 boost 中得到了这个 时间 process user cpu clock captures user CPU t
  • Javascript - 内联脚本与外部脚本 - 有什么区别?

    我的页面上散布着一些 javascript 片段 许多都包含在我自己的 js 文件中 但是我在网上找到的一些内容直接位于页面上 我不太熟悉 javascript 如何与页面交互 添加内联脚本或添加对外部文件的引用之间有区别吗 使用其中一种或
  • 有没有办法通过使用插件在 Firefox 中运行 ActiveX 组件?

    我有一个 ActiveX 插件 我们需要 如果可能的话 在 Firefox 中运行 Firefox 是否有插件 或其他方式 可以实现此目的 我似乎找到了解决办法 http code google com p ff activex host
  • Google 地图 API - 最近的标记功能更改为最近的 n 个标记

    我正在使用中找到的公式这个问题 https stackoverflow com a 4060721 3250782找到地图上距离当前位置最近的标记 我想修改这个公式 以便它找到壁橱n位置数量 最近的 5 个位置 最近的 10 个位置等 我不
  • 如何在 Markdown 文件中保持最新日期

    我想在 LICENSE md 文件中添加版权 但我不想每年 1 月 1 日回去更新日期 有没有办法做到 Copyright current year Name在 Markdown 中 原生版本不支持此功能Markdown http dari
  • 如何以编程方式创建 Chrome 配置文件?

    开发 测试 登台环境是通过我的设置中的不同代理服务器进行控制的 我想编写多个 Chrome 配置文件 有时称为 用户 或 人员 的创建脚本 并为每个配置文件连接到不同的代理服务器 最后 我想与同事分享这个脚本 以便他们能够访问完全相同的设置
  • Bootstrap 3 表单使用 input-group-addon 通过 Jquery Validate 包装错误标签

    将 Bootstrap 3 与表单水平结合使用 使用表单组和输入组标签以及 Jquery Validate 当 Jquery Validate 运行出现错误时 它会在输入组中附加一个标签错误控件 The issue is that inpu
  • 会话 cookie 设置 `SameSite=None;安全;`不起作用

    我添加了 SameSite None 安全的 设置cookie 但 cookie 未设置 我无法登录我的网站 response writeHead 200 Content Type application json Set Cookie t
  • 如何使用brightway2中的transverse_tagged_databases函数

    我想知道如何使用横向标记数据库 https docs brightwaylca org technical bw2analyzer html highlight analyzer bw2analyzer traverse tagged da
  • 实现 C# 通用超时

    我正在寻找实现一种通用方法的好主意 使单行 或匿名委托 代码在超时情况下执行 TemperamentalClass tc new TemperamentalClass tc DoSomething normally runs in 30 s
  • JavaScript检测父框架是否同源?

    我正在寻找一种跨浏览器的方法来检测父框架是否与我的框架同源 最好不要在 JavaScript 错误控制台上打印警告 以下似乎可行 但我想避免在控制台上打印错误 至少 Safari 和 Chrome 在访问父框架上的 location hre
  • 衡量 JavaScript 性能

    我正在尝试对我们的前端进行全面分析 我想知道是否有任何工具可以自动测量 Javascript Eg 执行函数 不需要我在记录之前 之后手动放置日期对象 我页面上的哪个脚本最慢以及原因 找出我需要优化哪些功能 Are there any jQ
  • Flutter:热重载后出现“与设备连接丢失”错误

    这是调试控制台中的完整错误 Launching lib main dart on Android SDK built for x86 in debug mode Built build app outputs apk debug app d
  • 如何使用 Leaflet 一次只允许编辑一个要素/多边形?

    这几天我一直在努力解决我的问题 我有一个来自 GeoJSON 的多边形层 我想通过单击事件编辑多边形 当我单击一个多边形时 它变得可编辑 但我想要的是 当我单击另一个多边形时 第一个多边形不再处于可编辑模式 OpenLayers自然没有Le