当前位置:   article > 正文

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

arcgis pro 二次开发

写在最前面的话:

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

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

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


一、要实现的功能

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

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

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

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


二、实现流程

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

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

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

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

是时候再回头学基础了。


三、工程文件分享

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

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/931232
推荐阅读
相关标签
  

闽ICP备14008679号