当前位置: 首页 > news >正文

天地图的带洞多边形操作

/** 往 polygon 中添加一个洞 */
function addHole(polygon: T.Polygon) {const handler = new T.PolygonTool(map)handler.open()handler.addEventListener('draw', ({ currentPolygon }) => {const oldLnglats = polygon.getLngLats()map.removeOverLay(currentPolygon)polygon.setLngLats([...oldLnglats, ...currentPolygon.getLngLats()])})
}/** 编辑带洞多边形,实则将其拆分为多个多边形,这里记录其对应关系,完成编辑后重新组合 */
const editableHolePolygon = new Map<T.Polygon, T.Polygon[]>()/** 开启 polygon 编辑,支持带洞多边形编辑 */
function enableEdit(polygon: T.Polygon) {const lnglats = polygon.getLngLats()if (lnglats.length > 1) {let polygons = editableHolePolygon.get(polygon)if (polygons) {polygons.forEach((_polygon, index) => {_polygon.enableEdit()if (index > 0) {_polygon.setFillOpacity(0)}})}else {map.removeOverLay(polygon)// 带洞多边形polygons = lnglats.map((points, index) => {const _polygon = new T.Polygon(points)map.addOverLay(_polygon)_polygon.enableEdit()if (index > 0) {_polygon.setFillOpacity(0)}return _polygon})editableHolePolygon.set(polygon, polygons)}}else {// 普通多边形polygon.enableEdit()}
}/** 取消 polygon 编辑,支持带洞多边形 */
function disableEdit(polygon: T.Polygon) {const polygons = editableHolePolygon.get(polygon)if (polygons) {const points = polygons.map((_polygon) => {_polygon.disableEdit()map.removeOverLay(_polygon)return _polygon.getLngLats()[0]})polygon.setLngLats(points)map.addOverLay(polygon)editableHolePolygon.delete(polygon)}else {polygon.disableEdit()}
}
http://www.wxhsa.cn/company.asp?id=3076

相关文章:

  • k8s集群中一台etcd的pod异常
  • 深入解析:基于51单片机电子称称重压力检测阈值报警系统设计
  • 手撕大模型|KVCache 原理及代码解析
  • Kuby免疫学读书笔记01——造血干细胞
  • 微信群机器人开发
  • 动态规划和马尔可夫决策对比
  • 20250913 之所思 - 人生如梦
  • 动态规划
  • 电视剧和综艺
  • 天地图编辑多边形和折线时,双击删除编辑点
  • POCamp 2023
  • 美团AI面试
  • 技术面:Spring (bean的生命周期、创建方式、注入方式、作用域)
  • 马尔可夫决策
  • 十九、指令流水线的基本概念
  • 本地布署Diffusers库 实现文生图 - yi
  • 【光照】[光照模型]发展里程碑时间线
  • 算法设计作业-week1
  • git merge
  • C语言学习
  • Ubuntu 的剪贴板
  • IDAPro--MCP详细配置教程
  • 20250913 NFLS 模拟赛 部分题目
  • 帐号内容定位
  • 基于YOLOv8的茶叶病害识别项目|完整源码数据集+图形化界面+训练教程
  • 2025第三届“陇剑杯”网络安全大赛初赛-夺旗闯关赛wp
  • 《Python数据结构与算法分析》第二弹《2.2.2 异序词检测示例》
  • 深入解析:柱状图(Vue3)
  • 计算机毕业设计springboot基于微信小程序的手机点餐软件 基于Spring Boot框架的微信小程序点餐体系设计与实现 微信小脚本点餐应用开发:Spring Boot技术的应用
  • 二叉树的相关知识