【ArcGIS Pro二次开发】(39):选择面要素并统计面积(含椭球面积)

写在最前面的话:

这个工具的原型是博主学学GIS做的一个工具
,用于统计当前所选择的面要素的面积,主要是为了解决“亩”的转换,确实是一个很方便好用的工具。大家可移步原贴参观:

ArcGIS Pro 加载项(5)——以“亩”为单位统计地块面积

基于个人以及网友方面的需求,我加入了椭球面积的汇总统计,方便在国土空间规划中的应用。


一、要实现的功能

【ArcGIS Pro二次开发】(39):选择面要素并统计面积(含椭球面积)_第1张图片

如上图所示,在地图框中,选择部分的面要素,右键单击,在弹出的右键列表中,点击【面积汇总】按钮即可。

在弹出的【面积统计】工具框中,显示了两部分共8个面积指标。

包括【投影面积和椭球面积】,并分别按【平方米、公顷、平方公里、亩】4个单位进行显示。

目前我经常用到的就是这些,如果大家还有其它表达方式上的需求,可以在评论区留言,后面再补充。


二、实现流程

至于实现流程的核心代码,我这里就不贴出来了。不过可以在文章放出的工程文件里自行查看。

这里就说一下椭球面积的计算方法:

// 初始化椭球面积
double geoArea = 0;
// 获取活动地图视图中选定的要素集合
var selectedSet = MapView.Active.Map.GetSelection();
// 将选定的要素集合转换为字典形式
var selectedList = selectedSet.ToDictionary();
// 创建一个新的 Inspector 对象以检索要素属性
var inspector = new Inspector();
// 遍历每个选定图层及其关联的对象 ID
foreach (var layer in selectedList)
{
   // 计算椭球面积
   var area = GeometryEngine.Instance.GeodesicArea(inspector.Shape);
   // 累加得到最终的汇总面积
   geoArea += Math.Abs(area);
}    

这里关键的一个方法就是【GeometryEngine.Instance.GeodesicArea(inspector.Shape)】,这是【ArcGIS.Core.Geometry】自带的一个计算椭球面积的方法,就这么一行简单的代码,花了很长的时间才找到。

是时候再回头学基础了。


三、工程文件分享

 最后,放上工程文件的链接:

AreaStatistichttps://pan.baidu.com/s/1ebLReG25EclGVrEz6XTi4w?pwd=r0jgPS:可以直接点击...bin\Debug\net6.0-windows\下的.esriAddinX文件直接安装。

你可能感兴趣的:(ArcGIS,ArcGIS,Pro,SDK,arcgis,pro二次开发,arcgis,pro,sdk,c#,椭球面积,面积统计)