ArcGIS Pro二次开发(19):创建要素类(FeatureClass)
Posted 规划GIS会
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ArcGIS Pro二次开发(19):创建要素类(FeatureClass)相关的知识,希望对你有一定的参考价值。
在数据库创建要素类是一个很基本的功能。
ArcGIS Pro中已经提供了一个工具:【数据管理工具】——【要素类】——【创建要素类】,可以实现这个功能。
这里演示的是如何在SDK中实现。
一、要实现的功能
通过点击【创建点要素】按钮,在默认数据库里新建一个空的点要素【示例点XXXX】,并且给它新建2个字段,如图所示:
二、实现流程
1、创建一个ShapeDescription,并定义2个字段
var hasZ = false;
var hasM = false;
// 创建一个ShapeDescription
var shapeDescription = new ShapeDescription(GeometryType.Point, SpatialReferences.WebMercator)
HasM = hasM,
HasZ = hasZ
;
// 定义2个字段
var stringFieldDescription = new ArcGIS.Core.Data.DDL.FieldDescription("字符串字段", FieldType.String);
var dblFieldDescription = new ArcGIS.Core.Data.DDL.FieldDescription("双精度字段", FieldType.Double);
ShapeDescription是一个用于描述要素类中几何形状的类。ShapeDescription对象包含要素类的几何形状类型、空间参考、坐标系等信息。
ShapeDescription中包含以下几个重要的属性:
-
ShapeType:表示要素类的几何形状类型,可以是点、线、面或多边形等。ShapeType属性是一个枚举类型,在ArcGIS Pro SDK中被称为“GeometryType”。
-
SpatialReference:表示要素类的空间参考,包括地理坐标系、投影坐标系等信息。
-
HasZ:表示要素类是否包含Z值(即垂直坐标)。
-
HasM:表示要素类是否包含M值(即测量值)。
这里示例的ShapeDescription的GeometryType以最简单的点为例,坐标系随意,M值和Z值都设为false。
然后定义1个字符串字段和1个双精度字段作为示例。
2、打开默认数据库gdb,通过DDL创建要素类
// 打开默认数据库gdb
using (Geodatabase gdb = new Geodatabase(new FileGeodatabaseConnectionPath(new Uri(gdbPath))))
var fcName = $@"testName";
try
// 收集字段列表
var fieldDescriptions = new List<ArcGIS.Core.Data.DDL.FieldDescription>()
stringFieldDescription,
dblFieldDescription,
;
// 创建FeatureClassDescription
var fcDescription =new FeatureClassDescription(fcName, fieldDescriptions, shapeDescription);
// 创建SchemaBuilder
SchemaBuilder schemaBuilder = new SchemaBuilder(gdb);
// 将创建任务添加到DDL任务列表中
schemaBuilder.Create(fcDescription);
// 执行DDL
bool success = schemaBuilder.Build();
catch (Exception ex)
MessageBox.Show($@"Exception: ex");
以上代码涉及ArcGIS.Core.Data.DDL的使用。
在ArcGIS Pro SDK中,DDL指的是“Data Definition Language”,即用于定义和管理数据库对象(如表、字段、索引、触发器等)的语言。
ArcGIS Pro SDK中的DDL主要用于创建和管理与GIS相关的数据库对象。它支持的语法和操作与标准的SQL语言相似,但具有一些针对GIS数据的特殊功能和语法。
具体流程在上面的代码中已经写得比较清楚了。
1)将定义好的字段收集为列表List<ArcGIS.Core.Data.DDL.FieldDescription>。
2)创建FeatureClassDescription。
3)创建SchemaBuilder。
4)将创建任务添加到DDL任务列表中。
5)执行DDL。
这5步基本就是固定的套路,抄就完事了。
PS:以上代码比较简单,虽然我也才刚学到这里,但是感觉DDL应该是比较重要的知识点,这篇文章就算是一个基础,后面还会深入研究。
三、工程文件分享
最后,放上工程文件的链接:
CreateFeatureClasshttps://pan.baidu.com/s/1y7Q_IxxN4hUPntDkPJ2JFw?pwd=cvst
PS:可以直接点击...bin\\Debug\\net6.0-windows\\下的.esriAddinX文件直接安装。
以上是关于ArcGIS Pro二次开发(19):创建要素类(FeatureClass)的主要内容,如果未能解决你的问题,请参考以下文章
ArcGIS Pro风暴ArcGIS Pro 2.5质量检查:拓扑创建与编辑案例教程
ArcGIS Pro风暴ArcGIS Pro 2.5质量检查:拓扑创建与编辑案例教程
请问你是如何具体实现的 arcgis engine 二次开发怎样获取某线要素的结点及各结点的坐标值?