回家,出发前夜,看完电影吃晚饭回到住处已近十一点,和同事扯了一会儿淡,正准备去睡觉,这哥们儿突然想起一个问题:
如何把相接的面搞出一个20cm的分隔带?因为两区划定项目数据质检要求不同的地块图斑间应有大于20cm的距离,而从其他数据转绘处理而来的地块图层面图斑是相接的,不同图斑种植年份不同所以不能进行合并。
他的打算线转面,然后找到图斑间的公共边,进行缓冲,然后对原图班进行擦除。
我反问他“如何确定图斑的公共边?”,一顿“批斗”。
他抛出这个问题的时候我便想到了找出图斑公共边的的方法以及整个流程的方案,大半夜的掏出电脑给这厮讲解了一下。
各位看官是否有好的解决方案,欢迎打脸。
step1 找出公共边
使用Intersect工具进行相交操作,out type输出类型选择line,相接图斑的公共边便会生成,如下图是“LQDK_Intersect”。
step2 生成缓冲区
对“LQDK_Intersect”进行缓冲操作,设定缓冲距离0.125m,双侧缓冲,终端类型是扁平矩形,缓冲区全部融合。生成“LQDK_Intersect_Buffer”。
step3 擦除
使用Erase工具用“LQDK_Intersect_Buffer”要素类擦除原“LQDK”要素类。得到“LQDK_Erase”要素类。
问题来了
由于缓冲形成的矩形端部相接处可能存在空隙,造成下图的情况。
restep 2换个方案 一侧缓冲
在left一侧缓冲0.25m,上图左侧问题基本改善(随机浏览未有发现问题)。
step4 再次使用Interset工具,辅助人工完善数据
使用Intersect工具对“LQDK_Erase”要素类如上图右侧可能存在的点接触问题进行相交操作,结果类型选“Point”。
根据结果逐个定位point进行人工编辑。
其实这个点很容易借助编程批量删掉。
来源:oschina
链接:https://my.oschina.net/u/4258221/blog/3381473