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.mzph.cn/news/587032.shtml

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

相关文章

mac中excel条件格式找到每一列的最大值并标红

假设现在excel有A1:R24组数据,最终效果如下 先选择要处理数据的第一列,然后点击【条件格式】-【新建规则】 style选择【classic】以及【Use a formula to determine which cells to format】,输入规则【C3MAX(C$3:C$24)】 注意这里C$3前面没…

识别pdf标题并重命名pdf

最新改进版: https://blog.csdn.net/weixin_44751432/article/details/135247984 已导出为可执行文件 下载链接在评论区 此为改进版 解决了期刊名可能是最大字体的问题: 思路 识别字符串的空格>3则为标题 import os import PyPDF2import fi…

DMLC深度机器学习框架MXNet的编译安装

这篇文章将介绍MXNet的编译安装。 MXNet的编译安装分为两步: 首先,从C源码编译共享库(libmxnet.so for linux,libmxnet.dylib for osx,libmxnet.dll for windows)。接着,安装语言包。 1. 构建…

Rust开发⼲货集(1)--迭代器与消费器

本内容是对 Rust开发干货集[1] 的实践与扩展. iter() 不转移所有权 先简单解释下什么叫"转移所有权": 在 Rust 中,"转移所有权"(Ownership Transfer)是一种核心概念,它涉及变量和数据的所有权从一个实体转移…

Mysql入门教程-存储过程

8.存储过程 创建语法 可以使用 CREATE PROCEDURE 语句创建存储过程&#xff0c;语法格式如下&#xff1a; CREATE PROCEDURE <过程名> ( [过程参数[,…] ] ) <过程体> [过程参数[,…] ] 格式 [ IN | OUT | INOUT ] <参数名> <类型> 语法说明如下&…

3D视觉-结构光测量-线结构光测量

概述 线结构光测量中&#xff0c;由激光器射出的激光光束透过柱面透镜扩束&#xff0c;再经过准直&#xff0c;产生一束片状光。这片光束像刀刃一样横切在待测物体表面&#xff0c;因此线结构光法又被成为光切法。线结构光测量常采用二维面阵 CCD 作为接受器件&#xff0c;因此…

QT上位机开发(乘法计算小软件)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 前面一篇文章&#xff0c;我们学习了怎么创建qt的第一个工程&#xff0c;怎么用designer给qt修改界面。虽然我们到目前为止&#xff0c;还没有编写…

剑指 Offer(第2版)面试题 61:扑克牌的顺子

剑指 Offer&#xff08;第2版&#xff09;面试题 61&#xff1a;扑克牌的顺子 剑指 Offer&#xff08;第2版&#xff09;面试题 61&#xff1a;扑克牌的顺子解法1&#xff1a;排序 剑指 Offer&#xff08;第2版&#xff09;面试题 61&#xff1a;扑克牌的顺子 题目来源&#x…

React入门介绍

React官方学习指南 React React是一个由Facebook开发并维护的开源JavaScript库&#xff0c;用于构建用户界面。 特点 声明式设计&#xff1a;React采用声明式编程模式&#xff0c;你只需要描述你想要的最终状态&#xff0c;React会自动计算如何达到这个状态。组件化&#xf…

C#使用switch语句更改窗体颜色

目录 一、示例 二、生成 用switch多路选择语句及窗体的BackColor属性更改窗体的BackColor属性。该属性用于获取或设置控件的背景颜色。 可以使用Color结构的静态属性获取Color对象&#xff0c;如Color.Red&#xff1b;也可以使用Color结构的静态方法Color.FromArgb()&#xf…

Linux权限的基本理解

一:&#x1f6a9;Linux中的用户 1.1&#x1f966;用户的分类 &#x1f31f;在Linux中用户可以被分为两种用户: 超级用户(root):可以在Linux系统中做各种事情而不被约束普通用户:只能做有限的事情被权限约束 在实际操作时超级用户的命令提示符为#,普通用户的命令提示符为$,可…

crfclust.bdb文件过大处理

问题现象 巡检过程中发下1套11.2.0.4版本的RAC的生产环境服务上&#xff0c;/oracle目录空间仅剩余8.3G&#xff0c;需尽快清理大文件避免磁盘爆满宕机。 --查看磁盘空间 [rootrac01 ~]# df -h 文件系统 容量 已用 可用 已用%% 挂载点 /dev/mapper/vg_rac01-lv_root5…

python观察图像的直流分量——冈萨雷斯数字图像处理

原理 在数字图像处理中&#xff0c;图像的直流分量&#xff08;DC分量&#xff09;是指图像中的平均亮度水平。这个概念源自于傅里叶变换&#xff0c;其中信号可以分解为多个频率成分。在这个上下文中&#xff0c;直流分量对应于频率为零的成分&#xff0c;即信号的平均值。 在…

CSS一个纯样式花里胡哨的动态渐变背景块

使用SASS或CSS纯样式花里胡哨的动态渐变背景块 鼠标放在小方块上会放大并挤压周围方块&#xff0c;背景颜色会动态改变。 效果如下 HTML结构 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"vie…

基于JWT的用户token验证

1. 基于session的用户验证 2. 基于token的用户身份验证 3. jwt jwt代码实现方式 1. 导包 <dependency><groupId>com.auth0</groupId><artifactId>java-jwt</artifactId><version>3.18.2</version> </dependency> 2. 在登录…

Spring Data Redis对象缓存序列化问题

相信在项目中&#xff0c;你一定是经常使用 Redis &#xff0c;那么&#xff0c;你是怎么使用的呢&#xff1f;在使用时&#xff0c;有没有遇到同我一样&#xff0c;对象缓存序列化问题的呢&#xff1f;那么&#xff0c;你又是如何解决的呢&#xff1f; Redis 使用示例 添加依…

MySQL5.7服务器状态变量参考

官网地址&#xff1a;MySQL :: MySQL 5.7 Reference Manual :: 5.1.5 Server Status Variable Reference 欢迎关注留言&#xff0c;我是收集整理小能手&#xff0c;工具翻译&#xff0c;仅供参考&#xff0c;笔芯笔芯. MySQL 5.7 参考手册 / ... / 服务器状态变量参考 5.1.…

C++/CLI——1简介

C/CLI——1简介 如果你是.net程序员&#xff0c;不免会用到C/C写的库。对于简单的调用&#xff0c;可以直接使用DllImport来完成就可以&#xff0c;详情可参考C#调用C/C从零深入讲解。但是对于复杂的C类和对象&#xff0c;尤其是类似于OCC的大型C项目&#xff0c;DllImport可能…

【c++逆向 - 4】GCC C++异常处理机制

异常机制 c 异常是对程序运行过程中发生的异常情况的一种响应&#xff0c;异常提供了将控制权从程序的一个部分转移到另一个部分&#xff0c;异常处理由三部分组成&#xff1a; throw 抛出异常catch 捕获异常try 异常检测范围 主要框架如下&#xff1a; try {if (cond)thro…

初识大数据,一文掌握大数据必备知识文集(6)

&#x1f3c6;作者简介&#xff0c;普修罗双战士&#xff0c;一直追求不断学习和成长&#xff0c;在技术的道路上持续探索和实践。 &#x1f3c6;多年互联网行业从业经验&#xff0c;历任核心研发工程师&#xff0c;项目技术负责人。 &#x1f389;欢迎 &#x1f44d;点赞✍评论…