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

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语言版)

我们这里话不多说,排序重要性大家都很清楚,所以我们直接开始。 我们就按照这张图来一一实现吧! 一.直接插入排序与希尔排序. 这个是我之前写过的内容了,大家可以通过链接去看看详细内容。 算法之插入排序及希尔排序&#xff08…...

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…...

Python爬虫实战:研究MechanicalSoup库相关技术

一、MechanicalSoup 库概述 1.1 库简介 MechanicalSoup 是一个 Python 库,专为自动化交互网站而设计。它结合了 requests 的 HTTP 请求能力和 BeautifulSoup 的 HTML 解析能力,提供了直观的 API,让我们可以像人类用户一样浏览网页、填写表单和提交请求。 1.2 主要功能特点…...

华为云AI开发平台ModelArts

华为云ModelArts:重塑AI开发流程的“智能引擎”与“创新加速器”! 在人工智能浪潮席卷全球的2025年,企业拥抱AI的意愿空前高涨,但技术门槛高、流程复杂、资源投入巨大的现实,却让许多创新构想止步于实验室。数据科学家…...

深入剖析AI大模型:大模型时代的 Prompt 工程全解析

今天聊的内容,我认为是AI开发里面非常重要的内容。它在AI开发里无处不在,当你对 AI 助手说 "用李白的风格写一首关于人工智能的诗",或者让翻译模型 "将这段合同翻译成商务日语" 时,输入的这句话就是 Prompt。…...

K8S认证|CKS题库+答案| 11. AppArmor

目录 11. AppArmor 免费获取并激活 CKA_v1.31_模拟系统 题目 开始操作: 1)、切换集群 2)、切换节点 3)、切换到 apparmor 的目录 4)、执行 apparmor 策略模块 5)、修改 pod 文件 6)、…...

练习(含atoi的模拟实现,自定义类型等练习)

一、结构体大小的计算及位段 (结构体大小计算及位段 详解请看:自定义类型:结构体进阶-CSDN博客) 1.在32位系统环境,编译选项为4字节对齐,那么sizeof(A)和sizeof(B)是多少? #pragma pack(4)st…...

测试markdown--肇兴

day1: 1、去程:7:04 --11:32高铁 高铁右转上售票大厅2楼,穿过候车厅下一楼,上大巴车 ¥10/人 **2、到达:**12点多到达寨子,买门票,美团/抖音:¥78人 3、中饭&a…...

解决本地部署 SmolVLM2 大语言模型运行 flash-attn 报错

出现的问题 安装 flash-attn 会一直卡在 build 那一步或者运行报错 解决办法 是因为你安装的 flash-attn 版本没有对应上,所以报错,到 https://github.com/Dao-AILab/flash-attention/releases 下载对应版本,cu、torch、cp 的版本一定要对…...

leetcodeSQL解题:3564. 季节性销售分析

leetcodeSQL解题:3564. 季节性销售分析 题目: 表:sales ---------------------- | Column Name | Type | ---------------------- | sale_id | int | | product_id | int | | sale_date | date | | quantity | int | | price | decimal | -…...

Android 之 kotlin 语言学习笔记三(Kotlin-Java 互操作)

参考官方文档:https://developer.android.google.cn/kotlin/interop?hlzh-cn 一、Java(供 Kotlin 使用) 1、不得使用硬关键字 不要使用 Kotlin 的任何硬关键字作为方法的名称 或字段。允许使用 Kotlin 的软关键字、修饰符关键字和特殊标识…...

Kafka入门-生产者

生产者 生产者发送流程: 延迟时间为0ms时,也就意味着每当有数据就会直接发送 异步发送API 异步发送和同步发送的不同在于:异步发送不需要等待结果,同步发送必须等待结果才能进行下一步发送。 普通异步发送 首先导入所需的k…...