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

【NetTopologySuite库】使用Polygonizer线构面,并获取割边、悬挂边、无效环

文章目录

  • 效果图
  • 示例代码

效果图

在这里插入图片描述
进行线构面:

  • 构成了两个多边形ABCD、EFGH
  • DI、IE是割边(CutEdge)
  • 有三条悬挂边:CK、FJ、OP
  • 有自相交的无效环:ALMN

示例代码

            var r = new WKTReader();var wkts = new string[]{"linestring(0 0,3 0)","linestring(3 3,3 0)","linestring(3 3,0 3)","linestring(0 0,0 3)","linestring(4 2,0 3)","linestring(0 3,-1 4)","linestring(0 5,-1 4)","linestring(0 5,2 5)","linestring(2 7,2 5)","linestring(2 7,0 7)","linestring(0 5,0 7)","linestring(2 5,4 6)","linestring(-3 3,-3 5)","linestring(0 0,-3 2)","linestring(-1 2,-3 2)","linestring(-1 2,-3 0)","linestring(0 0,-3 0)",};var lines = wkts.Select(x => r.Read(x)).ToList();var pz = new Polygonizer();foreach (var line in lines){pz.Add(line);}var dangles = pz.GetDangles();var cutEdges = pz.GetCutEdges();var invalidRings = pz.GetInvalidRingLines();var polygons = pz.GetPolygons();Console.WriteLine("多边形:");foreach (var polygon in polygons){Console.WriteLine(polygon.AsText());}Console.WriteLine("\n悬挂边:");foreach (var item in dangles){Console.WriteLine(item.AsText());}Console.WriteLine("\n割边:");foreach (var item in cutEdges){Console.WriteLine(item.AsText());}Console.WriteLine("\n无效环:");foreach (var item in invalidRings){Console.WriteLine(item.AsText());}

打印结果:

多边形:
POLYGON ((3 0, 0 0, 0 3, 3 3, 3 0))
POLYGON ((2 5, 0 5, 0 7, 2 7, 2 5))悬挂边:
LINESTRING (2 5, 4 6)
LINESTRING (4 2, 0 3)
LINESTRING (-3 3, -3 5)割边:
LINESTRING (0 3, -1 4)
LINESTRING (0 5, -1 4)无效环:
LINESTRING (0 0, -3 2, -1 2, -3 0, 0 0)
LINESTRING (-3 2, 0 0, -3 0, -1 2, -3 2)
http://www.dtcms.com/a/298401.html

相关文章:

  • ✨ 使用 Flask 实现头像文件上传与加载功能
  • TIM 实现定时中断【STM32L4】【实操】
  • 原生微信小程序如何调整开发版本
  • 全面解析MySQL(3)——CRUD进阶与数据库约束:构建健壮数据系统的基石
  • 数仓主题域划分
  • 机器学习(一)KNN,K近邻算法(K-Nearest Neighbors)
  • 不用电脑要不要关机?
  • win通过OpenSSL生成.ssh id_rsa密钥方法
  • 反射和SPI
  • 【DeepRare】疾病识别召回率100%
  • Haprxy七层代理
  • 呼叫中心系统管理权限功能配置
  • 深度学习篇---图片分辨率
  • Agentic RAG理解和简易实现
  • AMD官网下载失败,不让账户登录下载
  • 集合专题之Map
  • Kimi K2 大语言模型技术特性与应用实践分析
  • 初识opencv04——图像预处理3
  • 太极生两仪,两仪生四象,四象生八卦
  • mybatisX的自定义模板生成
  • 【深基12.例1】部分背包问题 Java
  • docker 挂载卷
  • 【C++】二叉搜索数
  • 使用Akshare获取股票历史数据
  • Avalonia 发布完cv到Linux上运行 出现字体丢失/不显示问题
  • [NLP]UPF基本语法及其在 native low power verification中的典型流程
  • 闲鱼多账号运营安全策略 如何规避同ip
  • MC_GearInPos电子齿轮
  • python-函数进阶、容器通用方法、字符串比大小(笔记)
  • 机器学习-SVM支持向量机