基于ArcMap的地块分割插件设计与实现

2016-12-28 06:19:39杨林波王利鸿
地理空间信息 2016年10期
关键词:端点多边形插件

杨林波,刘 欧,谢 飞,王利鸿

(1.中国电建集团昆明勘测设计研究院有限公司,云南 昆明 650041; 2.云南师范大学 文理学院,云南 昆明 650224)

基于ArcMap的地块分割插件设计与实现

杨林波1,刘 欧2,谢 飞1,王利鸿1

(1.中国电建集团昆明勘测设计研究院有限公司,云南 昆明 650041; 2.云南师范大学 文理学院,云南 昆明 650224)

我国正在全面开展土地承包经营权调查工作,在地块调查过程中,涉及分户析产或土地流转的农户家庭需要按一定的面积、比例、数量、边界走向等要求对承包地块进行分割。基于ArcMap开发了地块分割插件,实现了按面积或按占股比例进行地块快速自动分割,分割结果满足农户面积精度和边界走向需求,大大提高了地块分割操作的效率,同时也减少了项目投入成本。

土地承包;经营权调查;地块分割;Add-in插件

目前,我国正在全面开展土地承包经营权调查工作,查清承包地块的面积和空间位置是其中的一项重要内容。我国集体土地承包方式大部分属于家庭承包,二轮延包合同签订之后,距今已超过10 a,分户析产现象较多,此外,随着我国经济的快速发展,一些农户的土地流转承包给个人或单位进行大规模农业经营,土地经重新整治后地块边界已消失。在地块调查过程中,涉及分户析产或土地流转的农户家庭需要按一定的面积、比例、数量、边界走向等要求对承包的地块进行分割。ArcMap软件平台是使用最广泛的确权数据处理平台,分割的通常做法是技术员利用编辑器的裁剪、合并等工具组合,对地块进行操作,切割出相应面积的地块,当农户精度要求高时,这种手动分割方式费时费力。笔者基于通用的ArcMap软件平台,开发满足特殊需求的地块分割插件,其成本低、灵活度高,非常适合以ArcMap软件为数据处理平台的项目实施。

1 主要算法设计

1.1 流程设计

地块分割最基本的需求是指定一个面积,通过农户输入的边界走向,从当前地块中分割出指定面积大小的地块。受地块形状限制,要找到既能满足边界输入要求,又能满足农户关心的面积要求,不能采用多项式求解的方式计算切割线或其集合。本文采用的方法为从边界输入开始,定义初始分割,将地块分割出两个小地块(Pc和Pu),然后,采用一定的步长,以Pc地块达到指定面积A为目标,以递归方式切割Pc,切割出的新Pc不足目标面积时,继续切割,超出目标面积时,反向切割Pu(此时Pu和Pc对象互换)。进行下次切割前,分割出的步长小地块始终要与未被切割的Pu合并。流程设计如图1所示。

1.2 分割地块算法

针对地块分割,ArcObject本身提供了相应的接口函数ITopologicalOperator.Cut,但该接口短时间频繁调用时容易产生内存受保护错误,当输入要素要求超出分割地块需求时,可能返回无法识别多边形左右的错误。因此,本文对分割地块算法进行了定制,主要算法为:

1)数据输入地块P和切割线L,顺序循环地块P的结点链,获取切割线L的起点和终点在P上的4个端点ID,分别作为待生成的左、右多边形起点和终点ID,记为nLeftFrom,nLeftTo,nRightFrom,nRightTo;

2)生成左多边形点集LeftPc:①切割线结点加入点集;②如果nLeftTo小于nLeftFrom,则从P上nLeftTo结点开始到0结点逆序将结点加入点集;从最后一个结点开始到nLeftFrom结点,逆序将结点加入点集;③如果nLeftTo大于nLeftFrom,则从nLeftTo结点到nLeftFrom结点逆序将结点加入点集。

3)生成右多边形点集RightPc:①首先将切割线结点加入点集;②如果nRightTo小于nRightFrom,从P上nRightFrom结点开始到地块最后一个结点顺序将结点加入点集,从0结点开始到nRightTo结点顺序将结点加入点集;③如果nRightTo大于nRightFrom,从nRightFrom结点到nRightTo结点顺序将结点加入点集。

1.3 获取步长切割线算法

在递归算法中,切割线属于待切割多边形的一部分,为保证下一条切割线在切割地块内,对切割线的端点和其他结点分别进行处理(见图2)。算法步骤为:①下一个切割线的端点由当前切割线端点在多边形边界上获取,如果下一个结点距离超过步长,采用步长距离获取下一条切割线的端点,否则直接取下一个结点作为端点;②切割线内部的结点以夹角的平分线作为方向、步长作为距离生成下一条切割线结点;③对所生成的切割线点集进行检查,剔除自相交以及在切割多边形外部和小于结点最小距离的结点。

图2 获取下一条切割线

1.4 结点抽稀

当步长地块Ps和地块Pu进行合并后在合并边界处会产生结点,由于程序采用了递归算法,当分割精度要求高(面积容差设置很小)或步长设置很小时,递归次数会很多,如果不进行结点抽稀,最终分割出的地块会有很多结点。本算法产生的多余结点都是分割线的端点,在合并操作完成后要对合并后的Pu多边形进行抽稀,剔除多边形和上次分割线端点重合的点。抽稀时判断当前点是否与全局点距离以及与前后端点构成的夹角在一定阈值内。

2 地块分割插件开发

插件界面分3个UI区域,分别是地块设置、图形设置、精度设置(见图3)。根据项目地块分割情况统计,大部分应用属于单个地块分割,本插件可按实际面积进行分割,农户需要分割多少,实际就分割多少;也可按比例分割,由农户承包经营权合同面积和该地块所有权利人合同面积总和的比值来确定比例进行分割;插件还实现了等分、不等比例面积分割和不等比例股权分割,后2个功能需一次性录入地块权利人的地块面积或合同面积。

图3 地块分割插件用户界面

3 结 语

根据土地承包经营权地块分割的需求,利用ArcGIS Add-in技术开发了地块分割插件。实际应用中,技术员只需选择地块并在地块上输入或选择多段线(农户确定的边界走向),指定面积或占股比例,程序可快速、自动在地块上分割出需要的子地块。还实现了分户析产的农户需要对承包地块进行等分批量操作。该工具操作简单,参数设置灵活,对作业流程和数据格式(图形特征要求除外)无要求,可适应不同规模的地块分割,在满足精度和边界走向的要求前提下,大大缩短了地块分割操作的时间。

[1] 李维庆,张璇,李永鑫. Add-Ins技术在地理国情普查过程质量控制中的应用[J].测绘,2014,37(5):229-232

[2] 张隆,马林兵,杨子,等.基于ArcMap插件的土地利用规划编制方法研究[J].地理信息世界,2011(5):63-66

[3] 马文涛. 基于高分辨率DEM的活动断层断错水系剖面信息提取add-in插件的设计与实现[D].云南:云南大学资源环境与地球科学学院,2015

[4] 田光,谢忠,吴亮.基于简单要素模型的多边形分割算法[J].地理与地理信息科学,2010,26(1):24-28

[5] 曾广鸿,王晓明,徐宜勤,等.基于结点序列搜索的多边形分割算法[J].测绘通报,2006(8):16-18

[6] 邵晴晴,朱福利. 一种宗地四至提取方法探讨[J].测绘地理信息, 2014, 39(4):58-61

[7] 李论,张志鹏,陈慎. 基于ArcGISAdd-In的不等分纬线多圆锥投影变换[J].测绘,2013(5):222-224

P208

B

1672-4623(2016)10-0080-02

10.3969/j.issn.1672-4623.2016.10.024

杨林波,高级工程师,主要从事测绘、3S集成技术应用研究等工作。

2016-01-06。

项目来源:云南省科技厅重大专项资助项目(2013ZB006)。

猜你喜欢
端点多边形插件
多边形中的“一个角”问题
非特征端点条件下PM函数的迭代根
多边形的艺术
自编插件完善App Inventor与乐高机器人通信
电子制作(2019年22期)2020-01-14 03:16:34
解多边形题的转化思想
不等式求解过程中端点的确定
多边形的镶嵌
趣味(数学)(2019年11期)2019-04-13 00:26:32
参数型Marcinkiewicz积分算子及其交换子的加权端点估计
基丁能虽匹配延拓法LMD端点效应处理
MapWindowGIS插件机制及应用