农村土地承包地块示意图批量自动生成方法研究 | ![]() |
农村土地承包经营权确权登记颁证(以下简称承包地确权)是以现有土地承包合同、经营权证为依据,查清发包方名称、发包方负责人和承包方代表的姓名、地址、土地承包经营权权属等信息,以及承包地块的名称、面积、空间位置、四至、土地等级、土地用途、变动情况等信息,建立集影像、图形、权属为一体的农村土地承包管理信息数据库和管理信息系统的一项工作[1]。通过对土地承包经营权的确权颁证确保农户的合法权益,对促进土地流转,发挥市场在资源配置中的决定性作用提供基础性支撑[2]。
在承包地确权归档成果中,承包地块示意图是用于描述承包方名称、承包地块位置、地块编码、四至关系、地块面积等信息的重要图件资料。由于承包地块示意图以承包方为单位进行归档,且每一幅示意图中包含图形、权属多方面的信息,制作工序复杂,重复操作多,单纯依靠人工绘制需要花费大量的时间,效率低下且容易出错。鉴于上述问题,本文设计了一种承包地块示意图批量生成的方法,并利用ArcObjects和ArcPy中相关的接口和模块进行算法的实现,达到了制图工作流自动化的目的,极大地提高了承包地确权工作的效率。
1 承包地块示意图批量自动生成方法 1.1 总体技术路线首先预定义出图的模板,模板中定义地块示意图的布局版面样式和图面元素;然后以承包方为单位,通过ArcObjects方法遍历每个承包方的地块,对这些地块进行缓冲区查询获取四至要素,并以不同的符号样式和标注表达式对承包地块及四至要素分别进行渲染和标注,再生成图层索引文件;利用ArcPy制图模块中的方法加载出图模板和图层索引文件,根据承包地块的数目调地块分块示意图的大小和位置使之与图面空间相适应,再将当前承包户的相关属性信息更新到预定义的文本元素中,最后按照约定的命名规则导出承包地块示意图。
1.2 数据预处理根据《农村土地承包经营权确权登记数据库规范》的要求,对地理信息数据采用分层的方法进行组织管理[3]。本研究涉及到的地理信息数据包括承包地块和定位要素两类,其中,定位要素是指对承包地块的空间位置描述具有定位意义的地物,如道路、村庄、河流等。
采用ArcGIS中的Geodatabase数据模型进行建库以便对空间数据和属性数据实现集成化一体存储管理[4],承包地块和定位要素均以依比例尺面状符号进行矢量化和存储,在Geodatabase中表现为Polygon几何特征。承包地块要素层和定位要素层属性结构如表 1所示。
表 1 承包地块属性结构 Tab.1 Attribute Structure of Contractual Parcel |
![]() |
Tab.2 Attribute Structureof Directional Feature |
![]() |
1.3 地块示意图模板设计
在ArcMap中创建一个地块示意图模板文档(.mxd),该模板用于定义地块示意图中包含的地图元素以及各部分的基本位置。地块示意图模板包含多个数据框(DataFrame)、文本标签(TextElement)及指北针,数据框将整个图面分割为顶部标题区、左上部分地块分布略图区、左下部分权属及统计信息区、右侧分块示意图区和底部制图信息与页码区几个部分。地块分布略图区显示当前承包方承包的地块在本村集体中的分布情况;权属及统计信息区显示本承包方代表的姓名、承包方编码、承包地块总数及总面积信息;页码区显示本承包户地块示意图的总页数和当前页的页号;分块示意图按照从上到下、从左到右的顺序在布局格网中进行排序:每个地块示意图显示该地块的详细信息,包括地块编码、地块面积、地块空间位置及四至、指北针、比例尺等。为了充分利用图面空间,分块示意图区根据地块数的不同应用不同的布局:
(1) 当地块数=1时,采用1×1格网布局;
(2) 当2≤地块数≤4时,采用2×2格网布局;
(3) 当5≤地块数≤9时,采用3×3格网布局;
(4) 当地块数>9时,分多页打印地块示意图,每一页优先按照3×3格网布局,最后一页剩余地块按照(1)-(3)中的方法布局。
在示意图模板文档的可视区外,插入9个数据框、9个比例尺文本标签与9个指北针,这些地图元素用于分块示意图图层的加载和信息的显示。当确定了当前页中的布局方式后,每个格网的大小和位置也随之确定,然后将所需的数据框、比例尺文本和指北针移动至可视区对应位置并加载和显示相关数据。
1.4 承包地块示意图批量自动生成算法流程本算法由两部分构成:ArcObjects处理部分负责承包方、承包地块的遍历、图形符号系统和标注的设置以及图层索引文件的创建;ArcPy处理部分负责读取示意图模板并引用ArcObjects创建的图层索引文件,然后修改模板中布局样式和相关文本标签的内容并最终将地块示意图导出为本地存储文件。
1) 参数输入。用户输入参数包括制图员名称、制图日期、审核者名称、审核日期、制图单位、承包地块图层、定位要素图层、四至查询缓冲区距离、输出图片分辨率、输出位置等。
2) 遍历承包方。利用属性统计方法对CBFBM字段进行统计,获取承包方的遍历游标,依次遍历每个承包方。
3) 遍历当前承包方承包的地块。对于当前承包方,利用属性查询方法检索其承包的地块,获取承包地块总数以确定分块示意图布局。然后对承包的所有地块执行第四步至第九步操作。
4) 缓冲区查询四至要素。缓冲区分析是对目标要素根据缓冲条件建立缓冲区,然后将缓冲区图层与其他图层进行叠加分析、网络分析、服务设施查询等其他分析操作[5]。以当前承包地块为源,按照指定的缓冲距离生成缓冲区,以该缓冲区为查询范围,以相交为查询条件,通过空间查询获取当前承包地块的四至要素,包括周围地块和定位要素。
5) 分类设置符号系统。分类符号是ArcGIS中符号化的一种表达方式,是根据数据层要素属性值采用不同形状,大小,颜色,图案的符号来表达不同的要素的方法[6]。对中心地块和四至要素分别用不同的符号进行渲染:中心地块用阴影线样式填充,周围地块与其他四至要素用空心符号填充。
6) 分类设置标注样式。ArcGIS中通过标注表达式可以定义复杂标注内容和方式[7]。对中心地块及四至要素进行分类标注,中心地块用分式形式标注出承包地块的实测面积及地块编码,分子为地块实测面积,分母用地块编码后五位的地块缩略码表示。标注表达式支持VBScript、JScript和Python语言解析,本文采用VBScript,中心地块标注表达式为:
Function FindLabel([DKBM], [SCMJ])
area=[SCMJ]
MAX=Len([area])
If MAX<5 Then MAX=5
FindLabel=area&vbnewline&string(int(max/2)+1, “—”)&vbnewline&Right([DKBM], 5)
End Function
周围地块与其他四至要素直接用对应的承包方名称或者地物名称标注。分类标注效果如图 1。
![]() |
图 1 中心地块与四至要素分类设置标注信息 Fig.1 Labels of Central Parcel and its Four-Boundaries |
7) 视图调整。外包矩形是一个矩形区域,它定义了一个要素的空间范围,是每个几何体的最小外接矩形[8]。获取中心地块的外包矩形范围并缩小1.5倍以显示承包地及其四至的分布情况,然后对比例尺进一步修正为最接近的100的整倍数,再将视图中心调整至该范围。
8) 创建图层索引文件。通过第四步至第七步定义了中心地块和四至要素的显示方式,以此为基础创建图层索引文件(.lyr)。图层索引文件包含了图层的物理路径以及图层中定义好的符号系统、标注等信息,该索引文件由后续制图模块加载引用。
9) 分布略图符号设置及图层索引文件创建。通过属性查询获取当前承包户的地块与本村民集体其他农户的地块,其他农户的地块用空心符号填充,本承包户的地块用红色实心符号填充以凸显其在本村民集体中的分布情况。将视图位置调整至本村民集体的地块分布范围,然后创建图层索引文件。
步骤1)~步骤9)由ArcObjects提供的接口完成,后续步骤由ArcPy中的制图模块完成。
10)加载模板文件。通过ArcPy制图模块中的方法加载地块示意图模板得到一个地图文档对象,利用这个对象可以进一步获取模板中的数据框、文本元素等地图元素信息。
11)修改模板中相关文本信息。遍历从地图文档对象中获取的文本元素的集合,然后读取用户输入参数中的制图者、制图日期、审核员、审核日期、编制单位信息以及从第二步与第三步中获取的当前包方代表的姓名、承包方编码、承包地块总数、总面积及页码等信息,将这些信息写入到对应的文本元素中。
12)图层索引文件加载及格网布局调整。加载分布略图和分块示意图图层索引文件到对应的数据框中,然后根据布局规则,计算各分块示意图数据框的大小及其在示意图显示区域中的位置,修改相应数据框、比例尺文本与指北针的定位属性(宽度、高度、水平位置与垂直位置)使其置于可视区域中正确的位置。
13)示意图导出。按照指定的输出分辨率和输出目录参数,将示意图导出为JPEG图片,图片自动命名为“承包方编码_承包方.jpg”。
2 实验及结果 2.1 开发环境介绍AO(ArcObjects)是构架整个ArcGIS的核心与基础,利用AO可以避开底层开发的复杂过程,直接在基础上搭建GIS的功能模块[9]。ArcPy是从ArcGIS 10开始引入的站点包,为用户提供了使用Python语言操作所有地理处理工具(包括扩展模块)的机会,并提供了多种有用的函数和类,以用于访问和处理GIS数据[10]。针对ArcObjects和ArcPy各自的特点,本研究将两者进行有机结合:利用ArcObjects进行符号系统以及注记的生成和图层索引文件的创建,然后利用ArcPy制图模块中的相关的方法进行图层索引文件的加载、图框及其他地图元素的整饰和示意图的输出。实验中以Python IDLE和Visual Studio 2012作为开发工具,在Python 2.7.3和ArcObjects SDK for ArcGIS 10.2环境下,采用混合编程的方式对承包地块示意图批量生成算法进行实现:利用C#.NET语言直接调用ArcObjects接口,利用.NET提供的动态(dynamic)语言特性加载Python脚本文件间接调用ArcPy。
2.2 实验结果本文以永安市一个行政村的承包地作为测试区域,输入参数如图 2所示,生成的部分示意图如图 3所示。
![]() |
图 2 实验参数设置 Fig.2 Experiment Parameter Setting |
![]() |
图 3 不同布局下的承包地块示意图 Fig.3 Contractual Parcel Schematic Diagram of Different Layout |
从实验结果中可以看出,本算法生成的承包地块示意图图面清晰、布局合理,既能正确反映承包地块的编码、面积、位置、四至关系以及承包方的相关信息,又能根据地块数的不同调整图面布局,充分利用了图面可用空间。本研究的算法流程简单,容易实现,用户只需输入一次参数即可以承包方为单位批量生成承包地块示意图,提高了承包地确权的工作效率,达到了预期的目的。
3 结束语农村土地承包经营权确权登记颁证是一项重要的测绘地理信息工程,对进一步稳定和完善农村土地承包关系、保障农民合法权益、保护土地资源等具有重大意义。承包地块示意图用于描述承包地块的权属、面积、空间分布等信息,是承包地确权工作中的重要的图件成果。本文设计了一种承包地块示意图的批量自动生成算法,并借助ArcObjects和ArcPy提供的相关接口、方法进行了实现,解决了人工逐个绘制重复繁琐、工作量大、效率低下的问题,为承包地确权工作节约了大量的人力和时间成本。ArcObjects与ArcPy各有优点和不足,应用于不同的场合,本文将两者进行有机结合,也为同类问题提供了一种解决方案。
[1] |
中华人民共和国农业部. 农村土地承包经营权调查规程: NY/T 2537-2014[S]. 北京: 中国农业出版社, 2014
|
[2] |
郑晓华. 农村土地承包经营权确权登记颁证项目应用[J]. 测绘通报, 2015(9): 139-140. |
[3] |
中华人民共和国农业部. 农村土地承包经营权确权登记数据库规范: NYT 2539-2014[S]. 北京: 中国农业出版社, 2014
|
[4] |
周张琪. 基于Geodatabase的基础地理空间数据库设计[J]. 测绘信息与工程, 2009, 34(4): 48-49. |
[5] |
侯西龙. 基于ArcGIS的景区地图导览系统研究[D]. 武汉: 华中师范大学, 2015
|
[6] |
边雪清, 韩有文, 王海芹. 专题地图制图系统设计与实现[J]. 测绘科学, 2009, 34(s1): 165-168. |
[7] |
阿衣古力·喀德尔, 陈川, 韩忠坤. 基于ArcGIS的地质图的智能标注[J]. 地矿测绘, 2011, 27(4): 8-10. DOI:10.3969/j.issn.1007-9394.2011.04.003 |
[8] |
邵晴晴, 朱福利. 一种宗地四至提取方法探讨[J]. 测绘地理信息, 2014, 39(4): 58-61. |
[9] |
王力. 基于AO和面向对象思想的GIS图形编辑的设计与实现[J]. 测绘信息与工程, 2005, 30(1): 10-12. DOI:10.3969/j.issn.1007-3817.2005.01.005 |
[10] |
孙咸磊, 许捍卫, 李文博. ArcPy在长江河道水下空间数据批量处理中的应用[J]. 测绘与空间地理信息, 2015, 38(2): 97-99. DOI:10.3969/j.issn.1672-5867.2015.02.030 |