网站建设个人主要事迹,秦皇岛市建设局官网,海外仓一件代发平台,高端建网站多少钱需求#xff1a;仅根据某一属性#xff0c;分割图层#xff0c;并以属性值命名图层名称保存。
众所周知#xff0c;ArcGIS ArcToolbox中通过Split可以实现图形分割一个图层#xff0c;以属性值命名图层#xff0c;如下图所示。 本文仅仅依据属性值#xff0c;将一个shp…需求仅根据某一属性分割图层并以属性值命名图层名称保存。
众所周知ArcGIS ArcToolbox中通过Split可以实现图形分割一个图层以属性值命名图层如下图所示。 本文仅仅依据属性值将一个shp图层自动分割成多个图层shp。当然如果不嫌麻烦可以通过选中feature使用export逐批次导出图形也可以实现实现该功能主要是分割大量数据节省时间。
使用VS C# 2012 ArcEngine10.2二次开发操作模式如下图 一、实现界面如下图 二、执行步骤
1.选择输入图层shp、gdb等arcgis通用图层
2.选择属性列split field
3.选择一个或多个属性值
4.保存导出shp图层图层名以属性值命名。
三、输出结果shp图层如下图 四、关键代码
public void SplitByFieldShp(IFeatureClass inputFeatureClass, string inputfieldValue, string outputPath){//创建一个Geoprocessor工具类Geoprocessor geoprocessor new Geoprocessor();try{//1.创建一个临时图层geoprocessor.OverwriteOutput true;MakeFeatureLayer makefeature new MakeFeatureLayer();makefeature.in_features inputFeatureClass;makefeature.out_layer temp_lyr;//临时图层名称geoprocessor.Execute(makefeature, null);//2.通过属性查找featureSelectLayerByAttribute selectTool new SelectLayerByAttribute();selectTool.in_layer_or_view makefeature.out_layer;selectTool.selection_type NEW_SELECTION;selectTool.where_clause selectField inputfieldValue ;geoprocessor.Execute(selectTool, null);//3.导出选择图层 ESRI.ArcGIS.DataManagementTools.CopyFeatures copyfeature new ESRI.ArcGIS.DataManagementTools.CopyFeatures();copyfeature.in_features selectTool.out_layer_or_view;copyfeature.out_feature_class outputPath \ inputfieldValue .shp;geoprocessor.Execute(copyfeature, null);}catch (Exception ex){//如果出错输出GP内部错误信息object sev null;string msgs geoprocessor.GetMessages(ref sev);MessageBox.Show(msgs);}}
五、小结如其说依据分割功能不如说实现了选择功能然后导出符合条件的要素。提供关键代码一起学习共享。