ArcGIS Pro SDK (九)几何 13 多部件
ArcGIS Pro SDK (九)几何 13 多部件
文章目录
- ArcGIS Pro SDK (九)几何 13 多部件
- 1 获取多部分要素的各个部分
- 2 获取多边形的最外层环
环境:Visual Studio 2022 + .NET6 + ArcGIS Pro SDK 3.0
1 获取多部分要素的各个部分
public IEnumerable<Geometry> MultipartToSinglePart(Geometry inputGeometry)
{// 保存输入几何的部分的列表List<Geometry> singleParts = new List<Geometry>();// 检查输入是否为空指针或几何是否为空if (inputGeometry == null || inputGeometry.IsEmpty)return singleParts;// 根据几何类型,将各个部分/点单独添加到列表中switch (inputGeometry.GeometryType){case GeometryType.Envelope:singleParts.Add(inputGeometry.Clone() as Envelope);break;case GeometryType.Multipatch:singleParts.Add(inputGeometry.Clone() as Multipatch);break;case GeometryType.Multipoint:var multiPoint = inputGeometry as Multipoint;foreach (var point in multiPoint.Points){// 将集合中的每个点作为独立的点添加到列表中singleParts.Add(point);}break;case GeometryType.Point:singleParts.Add(inputGeometry.Clone() as MapPoint);break;case GeometryType.Polygon:var polygon = inputGeometry as Polygon;foreach (var polygonPart in polygon.Parts){// 使用PolygonBuilderEx将线段转换为独立的多边形实例singleParts.Add(PolygonBuilderEx.CreatePolygon(polygonPart));}break;case GeometryType.Polyline:var polyline = inputGeometry as Polyline;foreach (var polylinePart in polyline.Parts){// 使用PolylineBuilderEx将线段转换为独立的折线实例singleParts.Add(PolylineBuilderEx.CreatePolyline(polylinePart));}break;case GeometryType.Unknown:break;default:break;}return singleParts;
}
2 获取多边形的最外层环
public Polygon GetOutermostRings(Polygon inputPolygon)
{if (inputPolygon == null || inputPolygon.IsEmpty)return null;List<Polygon> internalRings = new List<Polygon>();// 将多边形的各个部分分解成单独的几何列表// 请参阅 "获取多部分要素的各个部分" 代码段中的 MultipartToSinglePartvar parts = MultipartToSinglePart(inputPolygon);// 获取按面积排序的顺时针几何(面积 > 0)的枚举var clockwiseParts = parts.Where(geom => ((Polygon)geom).Area > 0).OrderByDescending(geom => ((Polygon)geom).Area);// 对于每个外环foreach (var part in clockwiseParts){// 将第一个(最大的)环添加到内部集合中if (internalRings.Count == 0)internalRings.Add(part as Polygon);// 使用标志指示当前部分是否在已经选择的多边形内bool isWithin = false;foreach (var item in internalRings){if (GeometryEngine.Instance.Within(part, item))isWithin = true;}// 如果当前多边形不在内部集合的任何多边形内// 则它是分离的,需要被添加if (isWithin == false)internalRings.Add(part as Polygon);}PolygonBuilderEx outerRings = new PolygonBuilderEx();// 现在基于内部多边形集合组装一个新的多边形几何foreach (var ring in internalRings){outerRings.AddParts(ring.Parts);}// 返回最终的外环几何return outerRings.ToGeometry();
}
相关文章:
ArcGIS Pro SDK (九)几何 13 多部件
ArcGIS Pro SDK (九)几何 13 多部件 文章目录 ArcGIS Pro SDK (九)几何 13 多部件1 获取多部分要素的各个部分2 获取多边形的最外层环 环境:Visual Studio 2022 .NET6 ArcGIS Pro SDK 3.0 1 获取多部分要素的各个部分…...
【Node】npm i --legacy-peer-deps,解决依赖冲突问题
文章目录 🍖 前言🎶 一、问题描述✨二、代码展示🏀三、运行结果🏆四、知识点提示 🍖 前言 npm i --legacy-peer-deps,解决依赖冲突问题 🎶 一、问题描述 node执行安装指令时出现报错ÿ…...
h5点击电话号跳转手机拨号
需要使用到h5的 <a>标签 我们首先在<head>标签中添加代码 <meta name"format-detection" content"telephoneyes"/>然后再想要的位置添加代码 <a href"tel:10086"> 点击拨打:10086 </a> 这样功能就实现…...
从数据湖到湖仓一体:统一数据架构演进之路
文章目录 一、前言二、什么是湖仓一体?起源概述 三、为什么要构建湖仓一体?1. 成本角度2. 技术角度 四、湖仓一体实践过程阶段一:摸索阶段(仓、湖并行建设)阶段二:发展阶段方式一、湖上建仓(湖在下、仓在上)方式二:仓外…...
Electron 渲染进程直接调用主进程的API库@electron/remote引用讲解
背景 remote是个老库,早期Electron版本中有个remote对象,这个对象可以横跨所有进程,随意通信,后来官方认为不安全,被干掉了,之后有人利用Electron的IPC通信,底层通过Promise的await能力&#x…...
在python中使用正则表达式
正则表达式是什么?就是要寻找的数据的规律,使用正则表达式的步骤有三 第一,寻找规律,第二使用正则符号表示规律,第三,提取信息 看下面的代码 import re wenzhang (小草偷偷地从土里钻出来,嫩…...
华清数据结构day4 24-7-19
链表的相关操作 linklist.h #ifndef LINKLIST_H #define LINKLIST_H #include <myhead.h> typedef int datatype; typedef struct Node {union{int len;datatype data;};struct Node *next; } Node, *NodePtr;NodePtr list_create(); NodePtr apply_node(datatype e); …...
【深度学习图像】拼接图的切分
用户常常将多张图拼成一张图。 如果将这张图拆为多个子图,下面是一种opencv的办法,后面要训练一个模型来识别边缘更为准确。 import osimport cv2 import numpy as npdef detect_lines(image_path):# 读取图片image cv2.imread(image_path)if image i…...
Covalent(CXT)运营商网络规模扩大 42%,以满足激增的需求
Covalent Network(CXT)是领先的人工智能模块化数据基础设施,网络集成了超过 230 条链并积累了数千名客户,目前 Covalent Network(CXT)网络迎来了五位新运营商的加入,包括 Graphyte Labs、PierTw…...
Java 集合框架:HashMap 的介绍、使用、原理与源码解析
大家好,我是栗筝i,这篇文章是我的 “栗筝i 的 Java 技术栈” 专栏的第 020 篇文章,在 “栗筝i 的 Java 技术栈” 这个专栏中我会持续为大家更新 Java 技术相关全套技术栈内容。专栏的主要目标是已经有一定 Java 开发经验,并希望进…...
单周期CPU(三)译码模块(minisys)(verilog)(vivado)
timescale 1ns / 1ps //module Idecode32 (input reset,input clock,output [31:0] read_data_1, // 输出的第一操作数output [31:0] read_data_2, // 输出的第二操作数input [31:0] Instruction, // 取指单元来的指令input [31:0] …...
理想化相机模型的相机内参
文章目录 理想化相机模型的相机内参计算1. 相机内参定义2. 根据视角和图像分辨率计算相机内参2.1 计算焦距 fx 和 fy2.2 计算主点 cx 和 cy3. 示例计算3.1 计算 fx3.2 假设 fy = fx(因为没有垂直视场角的信息)3.3 计算主点4. 相机内参矩阵理想化相机模型的相机内参计算 在理…...
【数据脱敏】⭐️SpringBoot 整合 Jackson 实现隐私数据加密
目录 🍸前言 🍻一、Jackson 序列化库 🍺二、方案实践 2.1 环境准备 2.2 依赖引入 2.3 代码编写 💞️三、接口测试 🍹四、章末 🍸前言 小伙伴们大家好,最近也是很忙啊,上次的文章…...
骑砍2霸主MOD开发(18)-多人联机模式开发环境搭建
一.多人联机模式网络拓扑图 二.专用服务器搭建(DedicatedServer) <1.Token生成(用于LobbyServer的校验): 进入多人联机大厅,ALT~打开RGL控制台,输入customserver.gettoken Token文件路径:C:\Users\taohu\Documents\Mount and Blade II Bannerlord\Tokens <2.启动专用服务…...
【HZHY-AI300G智能盒试用连载体验】在华为IoTDA平台上建立设备
目录 华为IoTDA平台 注册IoTDA实例 创建产品 添加设备 本文首发于:【HZHY-AI300G智能盒试用连载体验】 智能工业互联网网关 - 北京合众恒跃科技有限公司 - 电子技术论坛 - 广受欢迎的专业电子论坛! 在上一篇博文中介绍了如何在HZHY-AI300G智能盒创建南向设备&a…...
【LLM】-05-提示工程-部署Langchain-Chat
目录 1、软硬件要求 1.1、软件要求 1.2、硬件要求 1.3、个人配置参考 2、创建cuda环境 3、下载源码及模型 4、配置文件修改 5、初始化知识库 5.1、训练自己的知识库 6、启动 7、API接口调用 7.1、使用openai 参考官方wiki,本文以Ubuntu20.04_x64…...
【漏洞复现】Next.js框架存在SSRF漏洞(CVE-2024-34351)
0x01 产品简介 ZEIT Next.js是ZEIT公司的一款基于Vue.js、Node.js、Webpack和Babel.js的开源Web应用框架。 0x02 漏洞概述 ZEIT Next.js 13.4版本至14.1.1之前版本存在代码问题漏洞,该漏洞源于存在服务器端请求伪造 (SSRF) 漏洞 0x03 搜索引擎 body"/_nex…...
【2024最新华为OD-C/D卷试题汇总】[支持在线评测] 小区小朋友统计(100分) - 三语言AC题解(Python/Java/Cpp)
🍭 大家好这里是清隆学长 ,一枚热爱算法的程序员 ✨ 本系列打算持续跟新华为OD-C/D卷的三语言AC题解 💻 ACM银牌🥈| 多次AK大厂笔试 | 编程一对一辅导 👏 感谢大家的订阅➕ 和 喜欢💗 🍿 最新华为OD机试D卷目录,全、新、准,题目覆盖率达 95% 以上,支持题目在线…...
Vuex看这一篇就够了
💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 非常期待和您一起在这个小…...
Kafka集群创建
这样就创建好了docker4个镜像,三个node,一个manager。 其中,浏览器访问的是manager对应的那个url,直接在里面加Cluster...
别再只盯着p值了!用GSEA分析RNA-seq数据,如何从海量基因里揪出真正起作用的那条通路?
从海量基因中识别关键通路:GSEA在RNA-seq分析中的实战指南 当面对一份RNA-seq表达矩阵时,许多研究者会陷入一个常见误区——过度依赖p值筛选差异表达基因。这种传统方法可能遗漏那些表达变化虽不显著但协同调控的重要功能通路。本文将带您深入探索基因集…...
告别黑盒:用Python+Wireshark抓包,手把手解析CANoe FDX协议数据交互全过程
告别黑盒:用PythonWireshark抓包,手把手解析CANoe FDX协议数据交互全过程 在汽车电子和嵌入式系统开发领域,CANoe作为主流的网络仿真与分析工具,其FDX协议提供了一种强大的跨语言数据交互能力。但对于许多开发者而言,协…...
文献管理软件//Zotero文献导入实战:从新手到高手的五种核心路径(九)
1. 从零开始:Zotero文献导入的底层逻辑与核心价值 第一次接触Zotero时,我盯着空荡荡的文献库发呆了半小时——就像刚搬进新家的人面对空房间,明明知道需要填满它,却不知从何下手。文献管理软件的核心价值在于建立个人知识库&#…...
LinkedIn内容自动化发布:基于Node.js与Playwright的实战指南
1. 项目概述:为什么我们需要一个LinkedIn帖子自动化工具?如果你在运营个人品牌、管理公司账号,或者从事市场营销、招聘工作,那么对LinkedIn这个平台一定不陌生。它早已不是单纯的求职网站,而是全球最大的职业社交与内容…...
如何快速掌握WarcraftHelper:魔兽争霸III现代化优化的终极指南
如何快速掌握WarcraftHelper:魔兽争霸III现代化优化的终极指南 【免费下载链接】WarcraftHelper Warcraft III Helper , support 1.20e, 1.24e, 1.26a, 1.27a, 1.27b 项目地址: https://gitcode.com/gh_mirrors/wa/WarcraftHelper 你是否还记得那些年在《魔兽…...
抖音无水印下载神器:3分钟搞定批量下载,小白也能轻松上手
抖音无水印下载神器:3分钟搞定批量下载,小白也能轻松上手 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser …...
终极指南:3分钟免费配置PotPlayer百度翻译插件,实现实时字幕翻译
终极指南:3分钟免费配置PotPlayer百度翻译插件,实现实时字幕翻译 【免费下载链接】PotPlayer_Subtitle_Translate_Baidu PotPlayer 字幕在线翻译插件 - 百度平台 项目地址: https://gitcode.com/gh_mirrors/po/PotPlayer_Subtitle_Translate_Baidu …...
5分钟告别百度网盘提取码烦恼:智能获取工具全解析
5分钟告别百度网盘提取码烦恼:智能获取工具全解析 【免费下载链接】baidupankey 项目地址: https://gitcode.com/gh_mirrors/ba/baidupankey 你是否曾经因为一个简单的提取码,在浏览器标签页间反复切换,浪费了宝贵的十几分钟…...
绝巧弃利之后,ABAP 才回到可升级的常道
老子说「绝圣弃智,民利百倍;绝仁弃义,民复孝慈;绝巧弃利,盗贼无有」。这句话放到 SAP ABAP 开发里,不能理解成不要知识、不要规范、不要技巧。ABAP 项目从来离不开知识,也离不开严密的工程纪律。它真正提醒我们的是,当一个系统过度崇拜个人聪明、过度依赖补救式道德、过…...
鸣潮自动化终极指南:5分钟解放双手,告别重复刷图
鸣潮自动化终极指南:5分钟解放双手,告别重复刷图 【免费下载链接】ok-wuthering-waves 鸣潮 后台自动战斗 自动刷声骸 一键日常 Automation for Wuthering Waves 项目地址: https://gitcode.com/GitHub_Trending/ok/ok-wuthering-waves ok-ww 是一…...
