政务公开和网站建设情况总结,wordpress 会员聊天,怎么做网站的地图页,冷水滩互联网建设在ArcGIS Pro中#xff0c;经常会遇到用字段计算器对要素的属性表进行计算。下面以一个例子演示如何在ArcGIS Pro SDK二次开发中实现。 一、要实现的功能 如上图所示的要素图层#xff0c;要实现如下功能#xff1a;
当字段【市级行政区】的值为【泉州市】时#xff0c;将…在ArcGIS Pro中经常会遇到用字段计算器对要素的属性表进行计算。下面以一个例子演示如何在ArcGIS Pro SDK二次开发中实现。 一、要实现的功能 如上图所示的要素图层要实现如下功能
当字段【市级行政区】的值为【泉州市】时将字段【省级行政区】的值修改为【标记结果】。 二、功能代码
1、获取要素图层这里按选定获取鼠标选定即可
var featureLayer MapView.Active.GetSelectedLayers().FirstOrDefault() as FeatureLayer;
2、打开要素图层的表格
var table featureLayer.GetTable();
3、按筛选条件筛选行并搜索到所在的游标
var queryFilter new QueryFilter();
queryFilter.WhereClause 市级行政区 泉州市;
var tableCursor table.Search(queryFilter, false)
4、最后给选定的目标赋值即可
while (tableCursor.MoveNext()){row[省级行政区] 标记结果;row.Store();}
以上就是功能实现的核心代码整理一下完整代码如下 protected override async void OnClick(){// 要更新的字段名和字段值var fieldName 省级行政区;var newValue 标记结果;// 获取选定的要素图层var featureLayer MapView.Active.GetSelectedLayers().FirstOrDefault() as FeatureLayer;// 使用异步任务在后台进行编辑操作await QueuedTask.Run(() {// 如果没有选择要素图层则返回消息框提醒if (featureLayer null){MessageBox.Show(请选择一个要素图层);return;}// 打开要素图层的表格var table featureLayer.GetTable();// 设定筛选语句var queryFilter new QueryFilter();queryFilter.WhereClause 市级行政区 泉州市;// 定位到属性表的游标using (var tableCursor table.Search(queryFilter, false)){while (tableCursor.MoveNext()){// 获取当前记录的值var row tableCursor.Current;var currentValue row[fieldName];// 如果当前值不等于新值则更新该字段的值if (currentValue.ToString() ! newValue){row[fieldName] newValue;row.Store();}}MessageBox.Show(字段值更新完成);}});} 三、调试
点击调试或安装工具后先点击要编辑的要素图层再点击自定义的【属性编辑】按钮。 生成结果如下和预期的一致 四、工程文件分享
最后放上工程文件的链接
AttributeEdithttps://pan.baidu.com/s/15qvlIea7LEQhAS_SFIpPow?pwdc9k6PS可以直接点击文件夹bin\Debug\net6.0-windows\下的.esriAddinX文件直接安装。