1、追加字段:
1、in_table:要添加指定字段的输入表。
2、field_name:将添加到输入表的字段的名称。类型:String
3、field_type:指定新字段的字段类型。类型:String
TEXT—此字段类型将为文本类型。 文本字段支持字符串。
FLOAT—此字段类型将为浮点型。
DOUBLE—此字段类型将为双精度型。
SHORT—此字段类型将为短整型。 介于 -32,768 和 32,767 之间的整数。
LONG—此字段类型将为长整型。 介于 -2,147,483,648 和 2,147,483,647 整数。
DATE—此字段类型将为日期类型。 日期字段支持日期和时间值。
BLOB—此字段类型将为二进制数的数据。
RASTER—此字段类型将为栅格。但建议您仅使用小影像。
GUID—此字段类型将为 GUID。 GUID 字段可存储注册表样式的字符串,
该字符串包含用大括号括起来的 36 个字符。
尽管 Field 对象的 type 属性值与添加字段工具的 field_type 参数所使用的
关键字不完全匹配,但是所有 Field 对象的 type 值均可用作此参数的输入。 不
同的字段类型映射如下:Integer 到 LONG、String 到 TEXT,以及 SmallInteger
到 SHORT。
4、field_precision:(可选)可存储在字段中的位数。 所有位数都被计算在内,无论其位于
小数点的哪一侧。
此参数仅适用于 float、double、short 或 long 类型的字段。
如果输入表是文件地理数据库,则将忽略字段精度值。类型:Long
5、field_scale:(可选)可存储在字段中的小数位数。此参数仅适用于 float 或 double 类型
的字段。如果输入表是文件地理数据库,则将忽略字段小数位数值。
类型:Long
6、field_length:(可选)字段长度。 它为字段的每条记录设置最大允许字符数。
此参数仅适用于文本类型的字段。类型:Long
7、field_alias:(可选)字段名称的备用名称。 此名称用于描述含义隐晦的字段名称。 此参
数仅适用于地理数据库。
类型:String
8、field_is_nullable:(可选)指定该字段是否可包含空值。 空值不同于零字段或空字段,
仅支持地理数据库中的字段。
NON_NULLABLE—字段可包含空值。
NULLABLE—字段不可包含空值。 这是默认设置。
类型:Boolean
9、field_is_required:(可选)指定要创建的字段是否是表的必填字段。 必填字段仅在地理
数据库中受支持。
NON_REQUIRED—字段不是必填字段。 这是默认设置。
REQUIRED—此字段是必填字段。 必填字段具有永久性,不能删除。
类型:Boolean
10、field_domain:(可选)约束地理数据库中的表、要素类或子类型的任何特定属性的允许值。
您必须指定现有属性域的名称才能将其应用于该字段。
类型:String
共10个输入参数:1-3不可少。
例如定义文本,一般需要6个参数
va = Geoprocessing.MakeValueArray(pfeatureClass, "Name", "Sting",#,#,10,"名称")
Dim va As IReadOnlyList(Of String)
Dim gpResult As ArcGIS.Desktop.Core.Geoprocessing.IGPResult
Await QueuedTask.Run(Sub()
'添加字段
pfeatureClass = FeatureLayer.GetFeatureClass
va = Geoprocessing.MakeValueArray(pfeatureClass, "XB", "LONG")
gpResult=Geoprocessing.ExecuteToolAsync("Management.AddField", va, Nothing)
If gpResult.IsFailed = false Then
MsgBox("字段添加成功。")
Else
MsgBox("字段添加未成功。")
End If
End Snb)
2、调用分割工具
Dim va As IReadOnlyList(Of String)
Dim result As IGPResult
va = Geoprocessing.MakeValueArray(in_features, split_features, split_field, out_workspace)
Result = Await Geoprocessing.ExecuteToolAsync("analysis.Split", va, Nothing, Nothing, Nothing, Nothing)
3、地理数据库导入要素类
va = Geoprocessing.MakeValueArray(Input_Features[Input_Features,...], Output_Geodatabase)
Await Geoprocessing.ExecuteToolAsync("conversion.FeatureClassToGeodatabase", va, Nothing, Nothing, Nothing, Nothing)
4、 调用裁切命令
va = Geoprocessing.MakeValueArray(in_features, clip_features, out_feature_class)
result = Await Geoprocessing.ExecuteToolAsync("analysis.Clip", va, Nothing, Nothing, Nothing, Nothing)
5、联合
1. in_features:输入要素类或图层。所有输入要素都必须是面。
2. out_feature_class:将包含结果的要素类。类型Feature Class
3. join_attributes:(可选)指定将输入要素的哪些属性传递到输出要素类。类型String
ALL—输入要素的所有属性都将传递到输出要素类。 这是默认设置。
NO_FID—除 FID 外,将输入要素的其余所有属性都传递到输出要素类。
ONLY_FID—仅输入要素的 FID 字段将传递到输出要素类。
4.cluster_tolerance:(可选)所有要素坐标(节点和折点)之间的最小距离以及坐标可以沿
x 和/或 y 方向移动的距离。
5.gaps:(可选)指定是否会为输出中被面完全包围的区域创建要素。
GAPS—不会为输出中被面完全包围的区域创建要素。 这是默认设置。
NO_GAPS—将为输出中被面完全包围的区域创建要素。 此要素不会具有属性值,并且 FID 值为 -1。
va = Geoprocessing.MakeValueArray(in_features,out_feature_class, 0.0001, "ALL", "GAPS")
Dim Result = Await Geoprocessing.ExecuteToolAsync("analysis.Union", va, Nothing, Nothing, Nothing, Nothing)
If Result.IsFailed = False Then
MsgBox("数据联合失败。")
Exit Sub
End If
6、相交
1. in_features:[[in_features, {Rank}],...] 输入要素类或图层列表。类型Value Table
2. out_feature_class:输出要素类。 类型Feature Class
3. join_attributes:(可选)指定将输入要素的哪些属性传递到输出要素类。类型String
ALL—输入要素的所有属性都将传递到输出要素类。 这是默认设置。
NO_FID—除 FID 外,将输入要素的其余所有属性都传递到输出要素类。
ONLY_FID—仅输入要素的 FID 字段将传递到输出要素类。
4. cluster_tolerance:(可选)所有要素坐标(节点和折点)之间的最小距离以及坐标可以沿
x 和/或 y 方向移动的距离。
5. output_type:(可选)指定要返回的相交类型。类型String
INPUT—所返回的相交要素的几何类型与具有最低维度几何的输入要素的
几何类型相同。 如果所有输入都是面,则输出要素类将包含面。 如
果一个或多个输入是线但不包含点,则输出是线。 如果一个或多个输
入是点,则输出要素类将包含点。 这是默认设置。
LINE—返回的交集为线。 这仅在输入都不是点时才有效。
POINT—返回的交集为点。 如果输入是线或面,则输出将是多点要素类。
va = Geoprocessing.MakeValueArray(in_features, out_feature_class, "ALL" , 0.0001, "INPUT")
result = Await Geoprocessing.ExecuteToolAsync("analysis.Intersect", va, Nothing, Nothing, Nothing, Nothing)
7、将图层符号系统与样式匹配 :
1、in_layer: 匹配符号作为唯一值符号类应用于其上的输入图层
或图层文件。输入图层可以包含点、线、面、多点
或多面体符号系统。图层上的现有符号系统将被覆
盖。类型:Feature Layer
2、match_values:用于符号化输入图层的字段或表达式。字段值
或结果表达式值与指定样式的符号名称相匹配,
以将符号分配给结果符号类。
类型:Calculator Expression
3、in_style: 包含名称与字段或表达式值相匹配的符号的样式。
类型:String
va = Geoprocessing.MakeValueArray(in_layer, match_values, in_style)
result = Await Geoprocessing.ExecuteToolAsync("management.MatchLayerSymbologyToAStyle", va, Nothing, Nothing, Nothing, Nothing)
8、应用图层的符号设置 用于将指定图层或图层文件中的符号系统应用于新的指定图层 1、 in_layer:将应用符号系统的图层。类型:Feature Layer; Raster Layer; Layer 2、in_symbology_layer:包含将应用于输入图层的符号系统的图层。 支持 .lyrx 和 .lyr 文件。类型: Layer 3、 symbology_fields [[field_type, source_field, target_field],...] (可选): 与符号系统图层中使用的符号系统字段相匹配的输入图层中的字段。 符号系统字段包含以下三个属性: 字段类型-符号系统值、归一化或其他类型。 源字段-符号系统图层中使用的符号系统字段。 如果不知道源字段并要使用默认值,请使用空白值或 "#"。 目标字段 - 应用符号系统时要使用的输入图层中的字段。 4、update_symbology(可选):指定是否将更新符号系统范围。 DEFAULT—除了以下情况外,将更新符号系统范围: 当输入图层为空时,当符号系统图层使用分类间隔 (例如,分级色彩或分级符号),并且分类方法为手动间隔或定 义间隔时 当符号系统图层使用唯一值,并且选中显示所有其他值选项时 UPDATE—符号系统范围将更新。 MAINTAIN—符号系统范围将不会更新;这些范围将保留不变。 类型:String
输入原型:in_layer, in_symbology_layer, {symbology_fields}, {update_symbology})
va = Geoprocessing.MakeValueArray(in_layer, in_symbology_layer)
result = Await Geoprocessing.ExecuteToolAsync("ApplySymbologyFromLayer_management", va, Nothing, Nothing, Nothing, Nothing)
9、定义投影
va = Geoprocessing.MakeValueArray(in_layer, "PROJCS["CGCS2000_3_Degree_GK_Zone_36",GEOGCS["GCS_China_Geodetic_Coordinate_System_2000",DATUM["D_China_2000",SPHEROID["CGCS2000",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",36500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",108.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0]]")
result = Await Geoprocessing.ExecuteToolAsync("management.DefineProjection", va, Nothing, Nothing, Nothing, Nothing)
10、多部分到单部分 (数据管理):management.MultipartToSinglepart management.MultipartToSinglepart(in_features, out_feature_class)
11、用到候补