基于C#的AE二次开发字段统计
我的开发环境为ArcGIS Engine 10.2与Visual studio2010。利用IDataStatistics类可以实现数值型字段中的数量、最小值、最大值、平均数、数总、标准差的统计。
实现代码:
private void comboBoxFields_SelectedIndexChanged(object sender, EventArgs e)
{
//定义及新建IDataStatistics接口的对象进行字段统计
IDataStatistics dataStatistics = new DataStatisticsClass();
//获取需要统计的**字段**(输入字段名称String类型的,但字段类型是数值型的)
dataStatistics.Field = comboBoxFields.SelectedItem.ToString();
//将当前矢量图层对象进行接口转换以进行选择集操作(**需要统计的矢量图层**)
IFeatureLayer featureSelection = currentFeatureLayer as IFeatureLayer;
//定义选择集的游标
ICursor cursor = null;
//使用null参数的Search方法获取整个选择集中的要素,得到相应的游标
cursor = featureSelection.Search(null, false) as ICursor;
//将该游标赋值给IDataStatistics接口对象的游标
dataStatistics.Cursor = cursor;
//执行统计
IStatisticsResults statisticsResults = dataStatistics.Statistics;
//定义StringBuilder对象进行字符串的操作
StringBuilder stringBuilder = new StringBuilder();
//以下语句依次增加各类统计结果
stringBuilder.AppendLine("统计总数: " + statisticsResults.Count.ToString() + "\n");
stringBuilder.AppendLine("最小值:" + statisticsResults.Minimum.ToString() + "\n");
stringBuilder.AppendLine("最大值:" + statisticsResults.Maximum.ToString() + "\n");
stringBuilder.AppendLine("总计: " + statisticsResults.Sum.ToString() + "\n");
stringBuilder.AppendLine("平均值: " + statisticsResults.Mean.ToString() + "\n");
stringBuilder.AppendLine("标准差: " + statisticsResults.StandardDeviation.ToString());
//将统计结果显示在窗体(标签)中
labelStatisticsResult.Text = stringBuilder.ToString();
}