问题
ps: 请先阅读到最后,因为中间包含反思和尝试,并非解决方案。
首先是因为遇到一个问题:矢量边界有偏移导致裁剪的结果出现很多细碎多边形,这样的结果是不能使用的。
具体为:
我获得了四川的一部分数据,该数据中包含了成都市街道尺度,我刚开始先是简单地将成都矢量与该四川数据进行裁剪,得到如下结果
可见是因为我的两个数据边界不是完全符合的。
解决问题
那么有这样一个想法,就是,如果我能根据 成都市的边界数据 来获取到与成都边界有交集的地方,那么我就得到了成都市的街道数据,即原数据还是那个四川的数据,只是保留了成都市的街道那部分。
思路为:先用identify把四川数据标识上有成都数据属性,再按属性选择,从四川数据中选取有成都数据属性的那部分,下面来试试看:
chengdu_county是标识后的结果,也就是说chengdu_county中有了chengdu的属性abcode(其实这里的属性不一定选择abcode,可以选择任一chengdu属性中的属性,想想看是不是这样?)
那么我把abcode属性有值的选择出来,导出为新的数据,就解决问题了
结果too young too simple 😦
接下来我再尝试另一个工具,SpatialJoin空间连接,目的是为了让这个四川数据带上成都的abcode属性
空间连接后,按属性选择,选择abcode有值的记录
导出要素
还好多出来的面不多,这次我就手动编辑了
ok,没有细碎多边形。解决了
更简单的解决方式
忘记了按位置选择这个工具
可以直接得到与chengdu有交集的四川数据
导出数据再删多余面数据,就解决问题了。
一样,直接得到了空间连接再按属性选择后的结果,省了两步。
总结
矢量叠加操作分为:相交(Intersect)、标识(又称交补集,Identify)、裁剪(Clip)、联合(Union)、追加(Append)、合并(Merge)以及融合(Dissolve)等。