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)

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

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

相关文章

自然语言处理Transformer模型最详细讲解(图解版)

文章目录 前言1、Transformer整体架构2、Transformer的输入、输出2.1 Transformer的输入2.1.1 Word Embedding(词嵌入)2.1.2 Positional Encoding(位置编码)2.2 Transformer的输出 3、Self-Attention(自注意力机制&…

8868体育助力意甲国际米兰俱乐部 发掘强力新援

意甲的国际米兰俱乐部是8868体育的合作球队之一,国际米兰俱乐部本赛季在意甲联赛中的表现非常出色。他们以不败的成绩排名联赛榜首,展现出了强大的实力和稳定性。最近,有报道称,国米已经与泽林斯基完全达成协议,双方已…

kubeadm创建k8s集群

kubeadm来快速的搭建一个k8s集群: 二进制搭建适合大集群,50台以上。 kubeadm更适合中下企业的业务集群。 部署框架 master192.168.10.10dockerkubelet kubeadm kubectl flannelnode1192.168.10.20dockerkubelet kubeadm kubectl flannelnode2192.168.1…

概念解析 | Shapley值及其在深度学习中的应用

注1:本文系“概念解析”系列之一,致力于简洁清晰地解释、辨析复杂而专业的概念。本次辨析的概念是:Shapley值及其在深度学习中的应用。 1 背景介绍 在机器学习和数据分析中,理解模型的预测是非常重要的。尤其是在深度学习黑盒模型中,我们往往难以直观地理解模型的预测行为。为…

gookit/color - Go语言命令行色彩使用库教程

gookit/color - Go语言命令行色彩使用库教程 1.安装2.基础颜色(16-color)3.256色彩/RGB风格 1.安装 go get github.com/gookit/color2.基础颜色(16-color) 提供通用的API方法:Print Printf Println Sprint Sprintf 1、例如: color.Yellow.Println(&q…

pypdf,一个神奇的 Python 库!

更多资料获取 📚 个人网站:ipengtao.com 大家好,今天为大家分享一个无敌的 Python 库 - pypdf。 Github地址:https://github.com/py-pdf/pypdf PDF(Portable Document Format)是一种常见的文档格式&…

守正出奇,穿越周期 - Bytebase 的 2023

前情提要:Bytebase 的 2022|埋头苦干,孕育希望 产品迭代 2023 年共发布了 25 个版本。这个数字和 2022 年一样,除开春节和一次全员疫情,做到了两周一次的更新。 版本号从 1.11.0 升级到了 2.13.0。其中在 5 月份&…

单片机大小端模式

单片机大小端模式 参考链接 单片机干货-什么是大小端_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1Ju4y1M7Tx/?spm_id_from333.337.search-card.all.click&vd_sourcee821a225c7ba4a7b85e5aa6d013ac92e 特此记录 anlog 2024年1月2日

Threejs项目实战之四:实现地图雷达效果

目录 最终效果代码实现创建项目DigitalMapView.vue的核心代码 最终效果 最近事情比较多,今晚难得有空,就抽空完成了一个使用Threejs实现地图雷达扫描效果的程序,下面说下代码实现的原理及核心代码,老规矩,先看下效果图…

【CASS精品教程】CASS11坐标换带方法(单点计算、批量计算)

参考阅读:【Pix4d精品教程】Pix4d中央子午线细化设置(测区跨两个分带) 文章目录 一、坐标换带概述二、CASS坐标换带1. 单点转换2. 批量转换三、应用场景一、坐标换带概述 坐标换带是将一个投影带的平面直角坐标系换算成另外一个投影带的平面直角坐标系的过程。这一过程主要…

selenium3自动化测试(这一篇就够了)——自学篇

📢专注于分享软件测试干货内容,欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!📢交流讨论:欢迎加入我们一起学习!📢资源分享:耗时200小时精选的「软件测试」资…