帮助里对空间连接的解释:
根据空间关系将一个要素的属性连接到另一个要素。
目标要素和来自连接要素的被连接属性写入到输出要素类。
![](https://file.jishuzhan.net/article/1760332518424317954/ab210b324cc510bd912b02c0935372ed.webp)
如上图所示,关键在于空间关系,只有当两个要素存在空间关系的时候,空间连接才有用武之地。
一、 使用方法
这里以ArcGIS Pro为例,有2种方法可以打开工具。
一是找到【分析工具-叠加分析-空间连接】。
二是直接在地理处理最上方的搜索栏里搜索【空间连接】。
![](https://file.jishuzhan.net/article/1760332518424317954/5af78a553eef5be2189cb429a95484b7.webp)
二、 参数介绍
打开工具,可以看到下面的工具界面:
![](https://file.jishuzhan.net/article/1760332518424317954/191a8d33edb9565358f2eae65952ed8d.webp)
1)目标要素
工具会在目标要素的基础上,将连接要素的字段添加到目标要素上,然后作为新要素输出 。
【目标要素的图形+字段+连接要素的字段(可选)=输出要素】。
2)连接要素
如参数1所示,连接要素的图形是不会输出的,只会保留部分连接的字段。
![](https://file.jishuzhan.net/article/1760332518424317954/806f3cbc39523db1b8efcd26c74cc339.webp)
3)输出要素类
输出要素类保留了目标要素的图形和字段,另外也保留了连接要素的字段(按你选择的),如果二者有空间关系的话,相应的字段值也会保留下来。
以上面的例子:
![](https://file.jishuzhan.net/article/1760332518424317954/31345c630ab1d5684d2d532e97103049.webp)
连接要素中的【KFQMC、Shape_Length、Shape_Area】字段被连接到目标要素中。
(这里的Shape_Length、Shape_Area其实是Shape_Length_1、Shape_Area_1,因为目标要素中有同名字段,就被重命名了。不过这不重要,这2个字段一般情况是没用的)
可以看到连接要素字段的字段值中有一些是空值,这是因为这几个图斑和目标要素是没有相交的。
![](https://file.jishuzhan.net/article/1760332518424317954/ecaef9d9b725ffa3af6f5f863e25177e.webp)
4)连接操作
有时候,1个目标要素会和多个连接要素具有相同的空间关系,这时候就要区别一下连接的操作类型。包括**【一对一连接、一对多连接】**。
【一对一连接】: 例如,如果两个独立的连接要素中找到了同一个目标要素,输出要素也只会生成一个要素,要素的字段值会根据规则进行聚合计算。
输出要素的个数和目标要素个数一致。
如果一个要素的属性值为3,另一个要素的属性值为7,且指定了"总和"合并规则,则输出要素类中的聚合值将为10。
![](https://file.jishuzhan.net/article/1760332518424317954/9d60070f8e879288aee88d3279d8f54a.webp)
![](https://file.jishuzhan.net/article/1760332518424317954/57554c9757628956d3ceec88d9b6087c.webp)
截图所示是合并规是总和的情况,箭头所示地块的连接要素有2个【SZ字段为3和7】,连接后输出要素的SZ字段值为10。
这个功能一般可用于统计。
如果想取其中一个要素的属性值,像上面的情况,取3或者7。那就可以将合并规则改为【第一个】。
**【一对多连接】:**例如,如果两个独立的连接要素中找到了同一个目标要素,输出要素会生成两个重叠的要素,两个要素的字段值分别由连接要素中获取。
输出要素的个数要比目标要素个数多。
![](https://file.jishuzhan.net/article/1760332518424317954/e7ed4bcedae057405a7b9907bf608abd.webp)
如上图所示,一对多连接后,要素数从49变成了54,多出来的5个就是重叠的部分。
![](https://file.jishuzhan.net/article/1760332518424317954/5f871d48bd072de5e528e7db727f5d9f.webp)
5)保留所有的目标要素
如字面意思,如果不勾选这个选项,与连接要素没有空间关系的目标要素就不会保留。
![](https://file.jishuzhan.net/article/1760332518424317954/83b2ba4e66a4f93c494a9f53399606da.webp)
如果勾选,没有空间关系的要素仍然保留,但是相应的字段值是空值,如果不想要,也可以后续通过筛选空值去除掉。
所以一般情况下都是要保留的。
6)匹配选项
空间关系有很多种:
![](https://file.jishuzhan.net/article/1760332518424317954/a104a3fdd9c9f9aa7542469c72e5f8f1.webp)
截图没截全,这里也只介绍几个常用的。
如果想深入学习,需要自行探索,帮助里都有。
【相交】:这是最常用的,上面的例子也是基于相交,这是工具的默认设置。
【包含】:这个其实是相交很像,不常用,适用的情况基本都用相交了。
【完全包含】:如字面意思,只有完全包含才会被连接。
【与其他要素相同】:连接要素和目标要素必须具有相同的形状类型,并且在空间关系上是完全一致的。
【最近】:匹配连接要素中与目标要素最近的要素。
7)搜索半径
这个要和参数6配合使用,以相交为例,如果要素之间并没有相交,但是距离很近,可以设置一个探索半径,结果就可以当作相交来处理。
![](https://file.jishuzhan.net/article/1760332518424317954/9ee28c83ad5bf100915ff690a5bb2339.webp)
如上图所示,目标要素和连接要素并没有相交,但是如果把搜索半径设为50米,生成结果会发现已经把字段值连接上去了,而不是空值。
8)字段映射
这个参数了不得,可修改的东西就太多了。
这里可以编辑输出要素的所有字段。
可以添加、删除、重命名和重新排序字段,而且可以更改其属性。
![](https://file.jishuzhan.net/article/1760332518424317954/8c748c068c4ffa8b5abe21b44a8f9dfe.webp)
想深入学习的同学一定要好好研究下。
合并规则也可以玩出很多东西,后面示例部分再详细说。
属性部分,字段的属性基本都可以修改,只能说太牛了。
![](https://file.jishuzhan.net/article/1760332518424317954/a73424c8dbe02df8598caec4fe5fe1b6.webp)
三、示例_建筑图斑连接地块名称
最简单的用法,就以给建筑图斑连接地块名称为例。
输入要素如下:
![](https://file.jishuzhan.net/article/1760332518424317954/f5c5acbd9336232cc22df05918e05ec6.webp)
工具设置如下,都按默认:
![](https://file.jishuzhan.net/article/1760332518424317954/3d92b424b2df3f459612880c81fa5c2f.webp)
生成结果如下:
![](https://file.jishuzhan.net/article/1760332518424317954/05d7d37df0c56d2d5d6ecc2cdf027be9.webp)
根据空间位置,地块名称被连接到建筑图斑中,后续可以根据字段统计各个地块内的建筑量。
四、示例_按最大重叠进行连接
根据上面的示例生成的建筑图斑,其实存在一个问题。
当一个建筑同时位于多个地块的时候,究竟应该标记哪个地块名。
![](https://file.jishuzhan.net/article/1760332518424317954/bce1fefce6d5040f7ba49a07ac4f95fc.webp)
如截图中箭头所示图斑,同时落位于二号地块和四号地块,结果连接的是二号地块,这是因为工具默认规则是【第一个】,即根据OBJIECTID顺序取第一个。
但是这个结果并不合理,因为该图斑大部分位于四号地块中,理想的结果应该连接至四号地块,即和最大重叠的图斑连接。
解决方法:将工具里的匹配模式修改成【最大重叠】即可:
![](https://file.jishuzhan.net/article/1760332518424317954/507a88d989a1a5a9439b408235fac822.webp)
生成结果如下:
![](https://file.jishuzhan.net/article/1760332518424317954/98bc6d18073860129ceb92d3401cc1c7.webp)
可以看到,箭头所示图斑连接的结果是四号地块,观察其它图斑,都符合最大重叠的规则,完美!
五、示例_一个地块连接多个设施点
如下图左边的面,有些地形图因为时间久远或是测绘质量等问题,本来应该是连在一起的文字被打碎了。
![](https://file.jishuzhan.net/article/1760332518424317954/0b92da78f67f5e561f4316774cafff05.webp)
正常用【空间连接】工具的话,只会把第一顺位的单个文字连接到建筑面上,比如:【混】或者【2】,而实际我们需要的是【混2】。
解决方法:将合并规则设置为【连接】。
![](https://file.jishuzhan.net/article/1760332518424317954/9eed88de8c0b8d4546a2a7212cd0616d.webp)
生成结果如下:
![](https://file.jishuzhan.net/article/1760332518424317954/3e57b84c2b04ceab0fc9bee3dea3053b.webp)
用这个方法连接文字后,还会有一个问题。正常连接后,我们得到的文字一般是【混3、砖2......】。想要提取建筑结构的时候,只要取第一个文字就能达到目的。但是现在有可能会出现【3混、砖2......】的情况,不能保证第一个文字是结构还是层数。这时候需要用到【正则表达式】,通过提取汉字,或是提取数字,来解决这个问题。
还有一种类似的情况也可以用这个方法解决。
如下:一个地块里有多个设施点,同样用【连接】规则:
![](https://file.jishuzhan.net/article/1760332518424317954/f7abefb87d9d848d1240a913338e0e21.webp)
最好设一个连接分隔符。这里用了【;】
六、示例_为公交站点连接其所在的公交线路
如果是完美的数据,公交站点应该完全位于公交线路上,但是有时候你拿到的数据可能是这样的:
![](https://file.jishuzhan.net/article/1760332518424317954/e8088de8d73636018073a22e361b2188.webp)
公交站点和公交线路存在一定的距离,看图没什么问题,但是用来分析就会发现二者并没有空间上的关系。
解决方法:通过设置搜索半径将二者关联上。
工具设置如下:
![](https://file.jishuzhan.net/article/1760332518424317954/fd9d3bdacd3fe95c9320f10ddd080406.webp)
注意搜索半径要根据实际情况设置,不宜过大造成结果不准确,也不宜过小造成连接不上。
生成结果如下:
![](https://file.jishuzhan.net/article/1760332518424317954/bcfc4b934f69ec9005e04414ba0864f5.webp)
可以看到线路名已经被连接到站点要素上了。