本文介绍在ArcMap 软件中,计算落入某个指定矢量面图层 中的另一个线图层 的长度 、面图层 的面积等指标的方法。
如下图所示,现在有2
个矢量要素集,其中一个为面要素 ,表示某些区域;另一个为线要素 ,表示道路路网。我们希望对于面要素数据集中的每一个要素 (也就是图中的每一个圆形区域),求取落入其中 的所有道路的长度。

上述需求是求取落入面要素中线的长度 。类似的,本文的方法还可以求取落入面要素中的面的面积 ;比如下图所示的这种情况,还可以求取落入每一个圆形区域中的不规则形状的面图层 的面积。

具体的操作方法也很简单。依次选择"Toolboxes "→"System Toolboxes "→"Analysis Tools.tbx "→"Overlay "→"Intersect"工具,如下图所示。

随后,在打开的工具中,依次选择对应的要素数据集,并指定结果文件的路径和文件名称。以本文开头介绍的那个需求为例,那么这里就需要输入表示各个区域的面要素数据集,以及道路路网数据,如下图所示。

执行上述工具,得到如下图所示的结果。其中,图中的圆形区域不是结果,只是我们为了让结果更清楚得表现,所以保留了原本的圆形区域要素数据集;而这些圆形区域中的路网(黄色的线条),才是上述工具的结果。

得到了结果,我们进一步计算落入每一个要素中的道路长度。这里需要注意,如果计算长度、面积等属性,建议将矢量数据设置为投影坐标系,具体可以参考文章ArcGIS矢量图层投影与地理坐标系转为投影坐标系------ArcMap(https://blog.csdn.net/zhebushibiaoshifu/article/details/115216717)。
首先,需要为上述结果文件新建一个字段,用来统计每一个路网的长度。在上述结果文件的属性表的左上角右键,选择"Add Field",如下图所示。

随后,自行设置字段的名称,并将字段类型设置为Double
,并设置字段的精度。这里大家按照实际情况来设置即可,或者设置为我这样也可以。

随后,在属性表这个刚刚建立好的字段上右键,选择"Calculate Geometry",如下图所示。

并在第一个下拉框中选择Length
(如果是需要计算面积,那就可以选择Area
),同时选择计算的单位,如下图所示。

随后,可以看到这个字段就已经是对应记录的长度了;如下图所示。

接下来,我们还需要对面图层进行分组------因为我们是希望计算每一个圆形区域 中路网的总长度 ,而每一个区域中可能会有多条道路 ,但上述操作计算的仅仅是每一条道路;所以就需要对每一个区域再做一次求和操作。
同样是在属性表中,找到一个表示各个面要素的字段(也可以是其他用来给面图层分组的字段),右键并选择"Summarize",如下图所示。

随后,找到表示长度的那个字段(也就是前面我们刚刚创建的字段),并选择Sum
,如下图所示。

随后,会得到一张结果表。在这个表上右键,选择"Open",从而打开这张表;如下图所示。

可以看到,其中就包含了每一个圆形区域(我这里每一个圆形区域就表示一个居委会)中,对应的道路总长度了;如下图所示。

这里需要注意,如果某些区域(在我这里就是某些居委会)中不含任何道路的话,那么这个要素就不会出现在上图所示的这个结果表中。
至此,大功告成。
欢迎关注:疯狂学习GIS