基于地理坐标的高阶几何编辑工具算法(2)——相交面裁剪

文章目录

  • 工具步骤
  • 应用场景
  • 算法输入
  • 算法输出
  • 算法示意图
  • 算法原理
    • 后处理

工具步骤

选中一个需要裁剪的面,点击“相交面裁剪”工具,多选裁剪模板面,空格执行。

应用场景

常用于基于遥感影像的建筑物几何面编辑。

算法输入

一个待裁剪的面,和多个用于裁剪的模板面

算法输出

裁剪后的面和插入形点的模板面

算法示意图

在这里插入图片描述

算法原理

基于turf.difference方法,对面P和模板面maskPs进行裁剪,得到diffP

后处理

由于turf.difference产出的面,有时候会有极小的缝隙面,因此做第一步后处理。

part1 (optional):剔除面的小角度

  1. 遍历面的坐标,包括孔洞
  2. 循环执行以下程序,直至线坐标点少于等于4个或线上没有小于15度的角
  3. 遍历线的坐标,计算当前点与相邻两个点的夹角是否小于15度,如果是,找出角度最小的点的索引
  4. 剔除最小角的点

为了确保裁剪后,两个面在不同精度坐标下都是相邻状态,需要给模板面maskPs插入共线的形点。

part2:给maskPs插入形点(insertPointsToPolygon)

  1. 获取diffP的所有形点pts
  2. 遍历maskPs的所有线段,利用turf.booleanPointOnLine方法,判断pts是否存在落在线段上的点,如果存在,则给该线段插入形点
  3. 输出diffP和插入形点的maskPs

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/15129.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

sqlserver的查询(三)

目录 10. group by(分组) 11. having(对分组后的信息过滤) 可能从这里开始,执行顺序越来越显得重要了!!! 10. group by(分组) 这个查询相比前面会有一些困难; 格式:group by 字段的集合; 功…

Java进阶学习笔记8——单继承、Object类、方法重写

Java 是单继承的,Java中的类不支持多继承,但是支持多层继承。 Object类是所有类的父类。 Java不支持多类继承: Java支持多层继承: 反证法: Object类: Object类是java所有类的祖宗类,我们写的任…

AI爆文写作:我一般不告诉别人的爆文玩法:如何100%抄袭10W+的爆文标题,让你也篇篇爆款

有现成的10w摆在眼前我们要做的就是,100%抄标题,以及内容重述。 具体操作步骤: 找到适合自己账号选题的10w(微信看一看或者头条)100%抄爆文的标题将这篇文章喂给Al,让AI分析文章的写法和主题根据提炼出来的写法和主题&#xff0…

使用鱼香肉丝一键安装重新安装ROS后mavros节点报错,.so文件不匹配

解决方案: 1、写在mavros相关软件,共卸载7个包 sudo apt-get remove ros-melodic-mav*2、重新安装mavros,共安装10个包 sudo apt-get remove ros-melodic-mav*

每日AIGC最新进展(10):符号音乐生成SYMPLEX、新型图像编辑数据集ReasonPix2Pix、角色一致性插画生成、高级的风格个性化扩散模型

Diffusion Models专栏文章汇总:入门与实战 SYMPLEX: Controllable Symbolic Music Generation using Simplex Diffusion with Vocabulary Priors http://arxiv.org/abs/2405.12666v1 本文介绍了一种新的符号音乐生成方法,名为SYMPLEX,它基于…

pod 库发布脚本

repo_tag.sh 文件 #!/bin/zsh# 私有库名称 #PODNAME${PWD##*/} PODNAME"LBHorizontalCenterLayout"function obtain_git_tag {# 类似 "s.version 0.0.1"VERSION_STRINGgrep -E s.version.* ${PODNAME}.podspecTAGtr -cd "[0-9.]" <<&…

使用 JavaParser 解析代码

[自用] 如何判断出 java 代码文本中一个方法的输入参数个数以及类型。用结构体数组存储遍历信息&#xff0c;最后用一个方法实现打印。可以使用第三方库。 如果是一个语句如何判断这个语句中的局部变量个数和类型。那么该怎么实现呢&#xff1f; 要判断 Java 代码文本中一个方…

【电源专题】什么是层间短路(Rare Short),如何检测?

层间短路发生的原因 一般线圈类制品是以漆包线缠绕导磁材料制造而成,漆包线是指外层披覆一层薄薄绝缘漆的铜线。我们常见的线圈类制品有: 电源变压器、 高压变压器、 Switching Power 变压器、 通讯变压器、 脉冲变压器、 环型变压器、 电力传输变压器、 音频传输变压器、 电…

k8s pvc pending waiting for first consumer to be created before binding

动态创建PV失败且提示waiting for first consumer to be created before binding 问题现象 使用WaitForFirstConsumer的StorageClass创建PV失败&#xff0c;PVC Event提示persistentvolume-controller waiting for first consumer to be created before binding。 问题原因 PV…

c# mysql 加锁解锁

c# mysql 加锁解锁 在C#中操作MySQL实现加锁和解锁&#xff0c;通常是通过执行特定的SQL语句来完成。MySQL支持表级锁定和行级锁定。以下是使用MySQL命令执行加锁和解锁的示例代码&#xff1a; using MySql.Data.MySqlClient;// 连接字符串 string connStr "serverloca…

【QGIS入门实战精品教程】5.3:CGCS2000转Lambert投影

参考阅读: 【GlobalMapper精品教程】081:WGS84/CGCS2000转Lambert投影 文章目录 一、加载实验数据二、投影转换三、批量投影转换一、加载实验数据 加载配套实验数据,如下图所示:图层为长沙市范围、长沙市酒店宾馆分布点位、湖南省酒店分布点位矢量数据。 双击图层,打开信…

网段与广播域

ip地址与子网掩码做与运算得到网络号&#xff0c;得到的网络号相同就是同一个网段&#xff0c;否则不是&#xff0c;跟他们在什么位置没有任何关系 这里面pc3和前两个pc虽然不在同一个网段&#xff0c;但是pc1发广播包的时候&#xff0c;pc3也能收到&#xff0c;因为路由器的所…

Vue 安装vue

1、官网安装下载安装nodejs 2、安装完成后&#xff0c;通过命令查看版本,可以查看到版本 node -v npm -v 3、安装Vue CLi npm install -g vue/cli 4、创建项目,vue create test 如果遇到报错&#xff1a; ERROR Error: spawn yarn ENOENT Error: spawn yarn ENOENT at ChildP…

前端基础入门三大核心之HTML篇:深入理解重绘与重排 —— 概念、区别与实战演练

前端基础入门三大核心之HTML篇&#xff1a;深入理解重绘与重排 —— 概念、区别与实战演练 HTML渲染基础回顾重绘与重排的概念重绘&#xff08;Repaint&#xff09;重排&#xff08;Reflow&#xff09; 区别与影响实战示例&#xff1a;优化策略与代码演示示例1&#xff1a;避免…

Dilworth 定理

这是一个关于偏序集的定理&#xff0c;事实上它也可以扩展到图论&#xff0c;dp等中&#xff0c;是一个很有意思的东西 偏序集 偏序集是由集合 S S S以及其上的一个偏序关系 R R R定义的&#xff0c;记为 ( S , R ) (S,R) (S,R) 偏序关系&#xff1a; 对于一个二元关系 R ⊂…

用 vue3 + phaser 实现经典小游戏:飞机大战

本文字数&#xff1a;7539字 预计阅读时间&#xff1a;30分钟 01 前言 说起小游戏&#xff0c;最经典的莫过于飞机大战了&#xff0c;相信很多同学都玩过。今天我们也来试试开发个有趣的小游戏吧&#xff01;我们将从零开始&#xff0c;看看怎样一步步实现一个H5版的飞机大战&a…

C# 串口通讯之艰难排错之路 —— system.ObjectDisposedException已关闭 Safe handle

今天写了一个串口通讯扫码枪驱动&#xff0c;程序运行后&#xff0c;不出意外的全线崩溃&#xff0c;开始了漫长的排查之旅&#xff0c;具体情况报错如下&#xff1a; 解决未处理 System.ObjectDisposedException Message已关闭 Safe handle Sourcemscorlib ObjectName"&…

【pyspark速成专家】4_Spark之RDD编程2

目录 四&#xff0c;常用PairRDD的转换操作 五&#xff0c;缓存操作 四&#xff0c;常用PairRDD的转换操作 PairRDD指的是数据为长度为2的tuple类似(k,v)结构的数据类型的RDD,其每个数据的第一个元素被当做key&#xff0c;第二个元素被当做value. reduceByKey #reduceByKey…

层次式架构设计理论与实践

层次式体系结构概述 软件体系结构为软件系统提供了结构、行为和属性的高级抽象&#xff0c;由构成系统的元素描述这些元素的相互作用、指导元素集成的模式以及这些模式的约束组成。 层次式体系结构的每一层最多只影响两层&#xff0c;同时只要给相邻层提供相同的接口&#xff…

禁用win10自动更新

services.msc——Windows Update——常规——启动类型——禁用 services.msc——Windows Update——恢复——三个无操作&#xff0c;9999天。 gpedit.msc——计算机配置——管理模板——Windows组件——Windows更新——配置自动更新——已启用——2-通知下载和自动更新 Windows…