ARCGIS PRO SDK 访问Geometry对象
一、Geometry常用对象

二、主要类
1、ReadOnlyPartCollection:Polyline 和 Polygon 使用的 ReadOnlySegmentCollection 部件的只读集合,属性成员:
| 名字 | 描述 |
| Count | 获取 ICollection 中包含的元素数。 |
| TIEM | 获取位于指定索引处的元素。 |
| SpatialReference | 获取或设置用于此只读部件集合的 SpatialReference |
方法: GetEnumerator 返回循环访问集合的枚举器。
2、ReadOnlyPointCollection 返回Geometry所有点(拐点或顶点)的MapPoints 的只读集合,属性成员:
| 名字 | 描述 |
| Count | 获取 ICollection 中包含的元素数。 |
| TIEM | 获取位于指定索引处的元素。 |
| SpatialReference | 获取或设置用于此只读部件集合的 SpatialReference |
方法:
| 名字 | 描述 |
| Copy2DCoordinatesToList | 重载。 |
| Copy3DCoordinatesToList | 重载。 |
| CopyPointsToList | 将此列表中的 MapPoint 复制到给定的 MapPoint 列表中。 |
| GetEnumerator | 返回循环访问集合的枚举器。 |
三、ReadOnlySegmentCollection :Segment 类的只读集合。,属性成员:
| 名字 | 描述 |
| Count | 获取 ICollection 中包含的元素数。 |
| TIEM | 获取位于指定索引处的元素。 |
| SpatialReference | 获取或设置用于此只读部件集合的 SpatialReference |
方法:GetEnumerator 返回循环访问集合的枚举器
四、GetEnumerator 方法:返回循环访问集合的枚举器
例如:
1、枚举数据段以获得长度
Dim polylineParts As ReadOnlyPartCollection = Polyline.Parts'枚举数据段以获得长度Dim Len As Double = 0Dim lsegments As IEnumerator(Of ReadOnlySegmentCollection) = polylineParts.GetEnumerator()While lsegments.MoveNext()Dim seg As ReadOnlySegmentCollection = lsegments.CurrentFor Each s As Segment In segLen += s.Length'类型执行一些特定的操作 Select Case s.SegmentTypeCase SegmentType.LineMsgBox("SegmentType.SegmentType.Line")Case SegmentType.BezierMsgBox("SegmentType.SegmentType.Bezier")Case SegmentType.EllipticArcMsgBox("SegmentType.SegmentType.EllipticArc")End SelectNextEnd While
2、ReadOnlyPointCollection示例
Dim segments As IEnumerator(Of MapPoint)
Dim parts As ReadOnlySegmentCollection
Dim x As Double
Dim y As Double
segments = polygon1.Points.GetEnumerator
'获取图形所有顶点坐标
Dim ppts As ReadOnlyPointCollection = polygon1.Points
'坐标总数
Dim ppts_Count As long=ppts.Count
'坐标访问
For i = 0 To ppts_Count - 1x = ppts.item(i).Xy = ppts.item(i).Y
Next Dim enumPts As IEnumerator(Of MapPoint) = polygon1.Points.GetEnumerator()Dim coordinates As IReadOnlyList(Of Coordinate2D) = polygon1.Copy2DCoordinatesToList()
Dim coordinate2Ds As IList(Of Coordinate2D) = New List(Of Coordinate2D)(10)
Dim subsetCoordinates2D As ICollection(Of Coordinate2D) = coordinate2Ds'获取PPTS点集中从ID1开始,取10个坐标点,ID1是从0开始
ppts.Copy2DCoordinatesToList(ID1, 10, subsetCoordinates2D)
'subsetCoordinates2D坐标访问
For i = 0 To subsetCoordinates2D.Count - 1pv_x(i) = subsetCoordinates2D(i).Xpv_y(i) = subsetCoordinates2D(i).Y
Next
3、获取多边形外环坐标
'获取
ppv = poly.Points
Dim parts As ReadOnlyPartCollection = poly.Parts
dbx_zds = parts.First.Count()
dbx_zds = parts.First.Count() '不包含闭合点
Dim coordinate2Ds As IList(Of Coordinate2D) = New List(Of Coordinate2D)
Dim subsetCoordinates2D As ICollection(Of Coordinate2D) = coordinate2Ds
ppv.Copy2DCoordinatesToList(0, dbx_zds + 1, subsetCoordinates2D) '坐标起点序号,从0开始,共dbx_zds + 1点,含多边形闭合点
’获取的坐标在subsetCoordinates2DIList(Of Coordinate2D)
五、GeometryBag :是 Geometry 对象的异构集合,成员如下:
| 名字 | 描述 |
| Dimension | 获取几何图形的尺寸。 (继承自 ArcGIS.Core.Geometry.Geometry) |
| Extent | 重写。 获取此实例的最小封闭信封。 |
| Geometries | 获取此 GeometryBag 中的几何图形列表。 |
| GeometryType | 重写。获取几何类型。始终返回 GeometryType.GeometryBag。 |
| HasID | 获取一个值,该值指示几何图形是否具有 ID。 (继承自 ArcGIS.Core.Geometry.Geometry) |
| HasM | 获取一个值,该值指示几何图形是否具有 M。 (继承自 ArcGIS.Core.Geometry.Geometry) |
| HasZ | 获取一个值,该值指示几何图形是否具有 Z。 (继承自 ArcGIS.Core.Geometry.Geometry) |
| IsEmpty | 重写。 获取一个值,该值指示此实例是否为空。 |
| IsKnownSimple | 指示根据数据库中存储的几何类型,此几何图形是否已知拓扑一致。 (继承自 ArcGIS.Core.Geometry.Geometry) |
| IsKnownSimpleOgc | 指示根据开放地理空间联盟 (OGC) 验证规范,此几何是否已知在 拓扑上是一致的。 (继承自 ArcGIS.Core.Geometry.Geometry) |
| Length | 获取此几何图形的长度 (继承自 ArcGIS.Core.Geometry.Geometry) |
| PartCount | 获取此实例中的零件(几何图形)数。 |
| PointCount | 重写。 获取此实例的所有部件中所有点的计数。 |
| SpatialReference | 获取此实例的空间参考。(继承自 ArcGIS.Core.Geometry.Geometry) |
方法:
| 名字 | 描述 |
| Clone | 克隆此几何实例。由于几何对象是不可变的,因此永远不会更改, 因此返回的克隆将是此对象,而不是 这个实例。 (继承自 ArcGIS.Core.Geometry.Geometry) |
| IsEqual | 重载。 |
| ToEsriShape | 重载。重写。 |
| ToJson | 将此几何实例序列化为 ArcGIS JSON 几何制图表达。 (继承自 ArcGIS.Core.Geometry.Geometry) |
| ToXml | 将此几何实例序列化为 ArcGIS XML 几何制图表达。 (继承自 ArcGIS.Core.Geometry.Geometry) |
相关文章:
ARCGIS PRO SDK 访问Geometry对象
一、Geometry常用对象 二、主要类 1、ReadOnlyPartCollection:Polyline 和 Polygon 使用的 ReadOnlySegmentCollection 部件的只读集合,属性成员: 名字描述Count获取 ICollection 中包含的元素数。TIEM获取位于指定索引处的元素。Spatial…...
数据结构之各大排序(C语言版)
我们这里话不多说,排序重要性大家都很清楚,所以我们直接开始。 我们就按照这张图来一一实现吧! 一.直接插入排序与希尔排序. 这个是我之前写过的内容了,大家可以通过链接去看看详细内容。 算法之插入排序及希尔排序(…...
c++ 中多线程的使用
如果你的其他逻辑必须在线程 t1 和 t2 之后执行,但你又希望这些线程能够同时运行,你可以在主线程中使用 std::thread::detach 将线程分离,让它们在后台运行。这样,主线程不会等待这些线程的完成,而可以继续执行其他逻辑…...
理解二叉树的遍历(算法村第七关白银挑战)
二叉树的前序遍历 144. 二叉树的前序遍历 - 力扣(LeetCode) 给你二叉树的根节点 root ,返回它节点值的 前序 遍历。 示例 1: 输入:root [1,null,2,3] 输出:[1,2,3]解 LeetCode以及面试中提供的方法可能…...
所有单片机使用的汇编语言是统一的吗?
所有单片机使用的汇编语言是统一的吗? 在开始前我有一些资料,是我根据网友给的问题精心整理了一份「单片机的资料从专业入门到高级教程」, 点个关注在评论区回复“888”之后私信回复“888”,全部无偿共享给大家!&…...
C ++类
定义一个Person类,私有成员int age,string &name,定义一个Stu类,包含私有成员double *score,写出两个类的构造函数、析构函数、拷贝构造和拷贝赋值函数,完成对Person的运算符重载(算术运算符、条件运算…...
STM32疑难杂症
1.keil的奇怪问题 创建的数组分配内存到0x10000000地址的时候,数据总是莫名其妙的出现问题,取消勾选就正常了 stm32f407内部有一个CCM内存,这部分内存只能由内核控制,任何外设都不能够进行访问。这样问题就来了,如果使…...
GIT使用简介
Git 是一种版本控制系统,常用于团队协作开发和管理代码。下面是 Git 的基本使用方式: 安装 Git:首先,在你的计算机上安装 Git。你可以从 Git 官方网站(https://git-scm.com/)下载适合你操作系统的版本&…...
easycode 插件配置文件
easycode是一个idea生成文件的插件,以下是我的一个项目中配置信息,需要的可以拿走,保存成json文件导入即可 {"author" : "XXX","version" : "1.2.8","userSecure" : "","…...
elasticsearch系列四:集群常规运维
概述 在使用es中如果遇到了集群不可写入或者部分索引状态unassigned,明明写入了很多数据但是查不到等等系列问题该怎么办呢?咱们今天一起看下常用运维命令。 案例 起初我们es性能还跟得上,随着业务发展壮大,发现查询性能越来越不…...
6.6 会话与输入事件(三)
三,Pointer会话 3.1 Pointer会话及其属性 指针输入会话使用SCREEN_EVENT_POINTER类型创建,通常用于控制光标的形状和位置。 指针会话的SCREEN_PROPERTY_MODE属性未使用。但是,可以使用下面的会话属性配置指针会话: SCREEN_PROPERTY_ACCELERATION表示一组六个整数,表示x…...
【自动化测试总结】优点、场景、流程、项目人员构成
一、自动化测试的概念 以程序测试程序,以代码代替思维,以脚本的运行代替手工测试,可以大大提高工作测试的效率。 二、自动化测试的优点 1.回归测试更为方便,可靠。自动化测试最主要的任务和特点,特别是在程序修改比较…...
杨中科 ASP.NETCore Rest
什么是Rest RPC 1、Web API两种风格: 面向过程(RPC) 、面向REST (REST) 2、RPC:“控制器/操作方法“的形式把服务器端的代码当成方法去调用。把HTTP当成传输数据的通道,不关心HTTP谓词。通过QueryString请求报文体给服务器传递数据。状态码。比如/Persons/GetAll…...
RTU数据采集终端
在现代工业控制系统中,数据采集是一个至关重要的步骤。RTU(远程终端单元)作为一种常用的数据采集终端设备,不仅可以实现数据的采集和传输,还可以实现现场设备的远程监控和控制。 一、RTU数据采集终端的工作原理 RTU数据采集终端是一种将现场…...
双指针--- 数组元素的目标和
目录 数组元素的目标和思路:暴力做法思路:双指针做法: 代码: 原题链接 数组元素的目标和 给定两个升序排序的有序数组 A 和 B ,以及一个目标值 x 。 数组下标从 0 开始。 请你求出满足 A[i]B[j]x 的数对 (i,j) 。 数据保证有唯…...
你的网站或许不需要前端构建(二)
前一阵,有朋友问我,能否在不进行前端编译构建的情况下,用现代语法开发网站界面。 于是,就有了这篇文章中提到的方案。 写在前面 这篇文章,依旧不想讨论构建或不构建,哪一种方案对开发更友好,…...
flutter 使用adb 同时连接 多个模拟器
MUMU模拟器 MuMu模拟器官网_安卓12模拟器_网易手游模拟器 传统只需要 连接一个 默认命令是 默认端口是7555 adb connect 127.0.0.1:7555 但是需要同时连接调试多个模拟器的时候 就需要连接多个 这里可以使用自带的多开 多开后 使用 1 是对应多开的序号 这样就可以查看对…...
网络四元组
文章目录 网络四元组 今天我们来聊聊 网络四元组 网络四元组 四元组,简单理解就是在 TCP 协议中,去确定一个客户端连接的组成要素,它包括源 IP 地址、目标 IP 地址、源端口号、目标端口号。 正常情况下,我们对于网络通信的认识可…...
[实践总结] 限制正则表达式匹配次数/时间 防止DoS攻击
思路 1、优化正则表达式 2、正则表达式无法优化的话,可以考虑限制匹配次数,或者限制匹配时间 限制 匹配次数 public class CountedCharSequence implements CharSequence {private final CharSequence charSequence;private long count;public Counte…...
ffmpeg 5.0版本调试 ffmpeg 5.01 static版本
ffmpeg 5.0版本调试 写法:ffmpeg -rtsp_transport tcp -re -i rtsp://admin:BYTtest2019192.168.1.2:554/h264/ch1/main/av_stream -q 5 -f mpegts -fflags nobuffer -c:v mpeg1video -an -s 960x540 http://127.0.0.1:12345/demo本地写法 ffmpeg -timeout 5000000…...
前端开发者如何构建个人工具箱:从工具函数到配置片段的效率实践
1. 项目概述:一个前端开发者的“百宝箱”仓库在多年的前端开发生涯中,我养成了一个习惯:每当遇到一个精巧的解决方案、一个高频使用的工具函数,或者一个值得反复琢磨的配置片段,我都会把它们收集起来。久而久之&#x…...
从社交情绪预测到论文分类:DHGNN动态超图模型在两大真实场景下的性能实测与调优心得
动态超图神经网络实战:从社交情绪分析到学术论文分类的双场景深度解析 当面对微博海量用户情绪的实时波动,或是学术文献间错综复杂的引用关系时,传统图神经网络常显捉襟见肘。动态超图神经网络(DHGNN)通过独特的层级动…...
Simics在网络转型与SDN迁移中的核心价值与应用
1. Simics在网络转型与SDN迁移中的核心价值解析网络架构正经历从传统硬件设备向软件定义网络(SDN)和网络功能虚拟化(NFV)的深刻变革。这场变革的核心挑战在于:如何在保持网络高性能的同时,实现控制平面与数据平面的解耦,以及如何将传统网络功…...
超长上下文时代来临:百万Token窗口实测,我的工作流彻底变了
前言:一个让我彻底改变工作方式的实验 2026年初,我做了一件以前根本不敢想的事:把一份长达800页的技术规范文档,直接塞进了一个大模型的上下文窗口,然后让它帮我找出其中所有与安全性相关的条款,并逐条解释…...
PP 蜂窝板生产线智能控制系统架构与 PLC 程序设计思路
PP 蜂窝板生产线智能控制系统架构与 PLC 程序设计思路摘要:针对 PP 蜂窝板产线多段速度同步、温度压力闭环、真空度稳定与定长裁切精度要求,本文介绍基于 PLCHMI 的智能控制系统整体架构,分模块阐述挤出温控、真空定型、牵引同步、在线测厚与…...
基于RT-Thread与STM32的物联网桌面天气时钟开发实战
1. 项目概述:一个嵌入式工程师的桌面小确幸几年前,我在工位上放了一个从网上淘来的电子时钟,功能很简单,就是显示时间。后来觉得光看时间有点单调,就想,能不能自己动手做一个既能显示时间日期,又…...
大模型低显存优化实战:量化、KV Cache与动态加载技术解析
1. 项目概述:低显存环境下的OpenClaw模型优化实战最近在GitHub上看到一个挺有意思的项目,标题是“openclaw-lowmem-optimization”。光看名字,就能猜到这大概是在做一件什么事:针对OpenClaw这个模型,进行低显存&#x…...
Apple Silicon Mac原生Linux游戏体验:Asahi Linux驱动突破与实战指南
1. 项目概述:当Apple Silicon Mac遇见原生Linux游戏如果你和我一样,既是Mac用户,又对在Linux系统上折腾抱有热情,那么最近Asahi Linux项目的进展绝对会让你心跳加速。长久以来,在搭载Apple Silicon(M1、M2、…...
AMD Ryzen终极调试指南:7步解锁SMUDebugTool硬件级控制
AMD Ryzen终极调试指南:7步解锁SMUDebugTool硬件级控制 【免费下载链接】SMUDebugTool A dedicated tool to help write/read various parameters of Ryzen-based systems, such as manual overclock, SMU, PCI, CPUID, MSR and Power Table. 项目地址: https://g…...
数字电路小白也能懂:用Logisim搞定LED计数电路,从真值表到封装测试保姆级教程
数字电路零基础实战:用Logisim构建LED计数器的完整指南 从困惑到清晰:为什么选择Logisim作为数字电路入门工具 第一次接触数字电路时,面对密密麻麻的逻辑门和抽象的真值表,大多数初学者都会感到无从下手。传统教材中复杂的公式推导…...
