APP下载

一种CASS宗地属性的自动化输入输出方法

2024-12-06毛承逆林元军袁亚明

中国新技术新产品 2024年8期
关键词:宗地

摘 要:在地籍制图处理过程中,传统的CASS宗地属性更新完善方法需要在图形界面下逐一点击宗地权属线完成属性信息录入。该方法不仅效率低,还容易出现错漏,不便于大量宗地信息的统一检查,而且只能在图形界面下完成。本文以分析不动产DXF图形文件格式为例,提出了一种以电子表格记录宗地属性,并利用VB6.0编程实现的CASS宗地属性自动化输入输出方法,摆脱了更新完善宗地属性必须依赖制图环境的制约,提高了制图效率,降低了错漏率,方便了大量宗地的统一检查。

关键词:宗地;CASS;DXF;自动化输入输出

中图分类号:P 27" " " 文献标志码:A

对带有宗地属性的权属线进行处理是不动产确权信息化处理的一项重要内容。在南方CASS软件中,由于CASS自己定义了扩展代码[1],使宗地权属线拥有丰富的属性,利用这些属性可以准确表达宗地权利人、面积和用途等信息,为制作各类不动产图件、报表提供了依据。对于CASS宗地属性的更新完善,传统方法需要在图形界面逐一点击宗地权属线,在宗地属性页面对应属性项录入相关信息。该方法工作量大,效率低,错误多[2],不便于大量宗地的统一检查,而且只能在图形界面下完成。

为了摆脱更新完善宗地属性必须依赖制图环境的制约,提高制图效率,降低错漏率,必须进行测量数据的转换工作[3],以方便大量宗地信息的统一检查。本文探索了实现CASS宗地属性输入输出自动化的方法,即利用VB6.0编程工具和电子表格,通过关键字段赋值[4]来输入不动产DXF图形文件宗地属性,读取不动产DXF图形文件,并将宗地属性输出到电子表格。

1 不动产DXF图形文件CASS宗地属性分析

DXF文件是AutoCAD中用来进行图形信息交换的一种文件。DXF文件中存储的每一个图形元素均以成对的组码和组值来表示[5],每个组码和值各占一行。南方CASS中的扩展属性数据是在图形数据基础上增加的、按一系列分类代码组合而成的数据块,其中组码1001表示扩展属性数据的开始[6]。在DXF图形文件中,图形元素信息主要存储在entities节,并定位到该节,根据CASS扩展属性值为30000的多段线找到宗地权属线记录段,发现每宗地CASS属性起始位置均有以组码“1001”开头、次行内容为“SOUTH”的特征符。宗地代码、权利人和地类编码是宗地的基本属性,在CASS属性起始特征符后,分别用4个组码“1000”和次行内容依次记录宗地权属线CASS实体编码、宗地代码、权利人和地类编码,其记录方式为每2行一个属性项,示例和说明见表1。

经分析可知,在CASS宗地权属线的属性项中,除宗地代码、权利人和地类编码3个基本宗地属性项没有赋予CASS字段名称外,其余37个宗地扩展属性项均有特定的CASS字段名称(见表2),其记录方式为每4行一个宗地属性项。第1行为组码“1001”,第2行为宗地属性项CASS字段名称,第3行为组码“1000”,第4行为宗地属性项内容,示例和说明见表3。

以南方CASS10.1软件为例。宗地属性页一共有宗地属性40项(见表3),在实施不动产统一确权资料处理过程中,农村不动产确权较常用的宗地属性只有20项(见表3序号1~20),其余20项宗地属性项(见表3序号21~40)主要为国有宗地确权时使用。

观察表3不难发现,除宗地代码、权利人和地类编码3项没有CASS字段名称的宗地基本属性项以外,其余宗地属性项名称所对应的CASS字段名称均是其中文拼音全称或属性项名称每个字拼音首字母的串联。在不动产DXF图形文件中,宗地属性项名称及其对应的CASS字段名称保持不变,为程序批量化处理创造了条件。

2 模板表格的定制

电子表格具有优秀的数据存储管理功能,由于不动产权籍数据量和信息量较大,为使最终输出成果表具有规范性、统一性和准确性[7],可以制作一个固定样式的模板表格,同时用于宗地属性的输入和输出。表格的每一列对应宗地的一个权籍属性项,可以将宗地的属性项信息输出到模板表格中去,同时也可以读取模板表格中的数据,根据列标与宗地属性项、CASS字段名称的对应关系,输入不动产DXF图形文件的对应宗地属性中。模板表格起始行表头字段可按表3的宗地属性项顺序,将序号1~40分别对应模板表格的A~AN列。

与建立宗地及其定着物的关联关系[8]类似,模板表格建立了宗地与其属性的对应关系,固定宗地属性字段列位置可以确保数据源稳定,方便程序读取和写入。

3 核心代码设计

VB语言是一种面向对象的可视化程序设计语言。本文设计了简洁的界面,实现了CASS宗地属性的自动化输入输出。其核心代码如下所示。

3.1 CASS宗地属性输入

CASS宗地属性输入需要先读取不动产DXF图形文件,识别宗地属性项并记录到数组中,代码示例如下。

For i = 1 To n1

For j = qs1(i) + 3 To js1(i) Step 2

If a(j) = \"AREA\" And a(j+1) = \"1000\" Then

st(i, 16) = a(j + 2)" '宗地面积

End If

If a(j) = \"BLAREA\" And a(j + 1) = \"1000\" Then

st(i, 17) = a(j + 2)" '建筑占地面积

End If

Next

Next

代码中,n1表示宗地线个数;qs1(i)和js1(i)分别表示第i宗地的属性项在DXF文件中的起始行号和结束行号;a(j)表示读取的DXF文件的第j行字符串;st(i,j)表示第i宗地第j个属性项,j的数值与表3中的序号对应。DXF宗地属性项记录到数组以后,创建表格对象,并激活工作表,读取表格中的宗地属性项字段值到数组中,代码示例如下。

For i = 1 To 99999

If xlapp.ActiveSheet.Cells(i + 1, 1) = \" \"Then" " " " '宗地号为空结束信息读取

Exit For

End If

n3 = n3 + 1" " '基础信息表记录行数

For j = 1 To 40

r(n3, j)= xlapp.ActiveSheet.Cells(i + 1, j)" " "'读取表格数据到数组

Next

Next

模板表格第一行为宗地属性项表头字段,有效的宗地属性记录是从i+1行开始的。表格宗地属性项记录到数组以后,将其与DXF宗地属性项进行匹配。如果匹配成功,就更新对应值,代码示例如下。

For k = 1 To n3

'匹配宗地更新信息

If st(nz, 1) = r(k, 1) Then

For p = 2 To 40

If r(k, p) lt;gt; \"\" Then

n4 = n4 + 1

st(nz, p) = r(k, p)

End If

Next

End If

Next

sr = Chr(13) + Chr(10)

s3 = \"1000\"

s4 = \"1001\"

sr1 = sr amp; s3 amp; sr

sr2 = sr amp; s4 amp; sr

jbzd(nz) = s3 amp; sr amp; st(nz, 1) amp; sr1 amp; st(nz, 2) amp; sr1 amp; st(nz, 3) _

amp; sr2 amp; \"TUFU\" amp; sr1 amp; st(nz, 4) amp; sr2 amp; \"PZTDYT\" _

amp; sr1 amp; st(nz, 5) amp; sr2 amp; \"QLRZJLX\" amp; sr1 amp; st(nz, 6) _

amp; sr2 amp; \"QLRZJBH\" amp; sr1 amp; st(nz, 7) amp; sr2 amp; \"QSLYZM\" _

amp; sr1 amp; st(nz, 8) amp; sr amp; s4 amp; sr amp; \"TXDZ\" amp; sr1 amp; st(nz, 9) _

amp; sr2 amp; \"TDZL\" amp; sr1 amp; st(nz, 10) amp; sr2 amp; \"DONGZHI\" _

amp; sr1 amp; st(nz, 11) amp; sr2 amp; \"NANZHI\" amp; sr1 amp; st(nz, 12) _

amp; sr2 amp; \"XIZHI\" amp; sr1 amp; st(nz, 13) amp; sr2 amp; \"BEIZHI\" _

amp; sr1 amp; st(nz, 14) amp; sr2 amp; \"TDZH\" amp; sr1 amp; st(nz, 15) _

amp; sr2 amp; \"AREA\" amp; sr1 amp; st(nz, 16) amp; sr2 amp; \"BLAREA\" _

amp; sr1 amp; st(nz, 17) amp; sr2 amp; \"JZMJ\" amp; sr1 amp; st(nz, 18) amp; sr2 _

amp; \"QSXZ\" amp; sr1 amp; st(nz, 19) amp; sr2 amp; \"SYQLX\" amp; sr1 amp; st(nz, 20)

Print #2, jbzd(nz)" " " '写入宗地匹配属性(基本属性)

不动产DXF图形文件中的某些记录内容与宗地属性项无关,因此可先识别不动产DXF图形文件的固定段,进行宗地属性输入时,只需要在可变段中查找匹配并改变其中的对应值即可。

3.2 CASS宗地属性输出

在DXF宗地属性项记录到数组以后,与CASS宗地属性输入相比,CASS宗地属性输出缺少读取表格宗地属性项和匹配更新的过程,以输出宗地属性项到表格的过程相取代。创建表格对象后直接创建新的表格工作簿文件,将宗地属性字段名称依次输入表格第一行并将其作为表头,示例代码如下。

xlapp.ActiveSheet.Cells(1,1)=\"宗地编码\"

xlapp.ActiveSheet.Cells(1,2)=\"权利人\"

xlapp.ActiveSheet.Cells(1,3)=\"地类编码\"

宗地属性字段输入表格表头后,采用循环,将每个宗地属性项的值输出到每宗地对应位置的表格中,示例代码如下。

For i = 1 To n

xlapp.ActiveSheet.Cells(i + 1, 8) = s8(i)" " " '权属来源证明

xlapp.ActiveSheet.Cells(i + 1, 9) = s9(i)" " " '通信地址

xlapp.ActiveSheet.Cells(i + 1, 10) = s10(i)" " "'土地坐落

Next

为使输出表格格式美观,可以通过程序代码设置单元格对齐方式、值类型、行高、列宽和保留小数位等。

4 运行效果和改进

程序实现了CASS宗地属性的自动化输入输出,便于检查、修改宗地属性,效率比逐宗点击、查看和修改有大幅提高。本文所述方法可广泛适用于不动产确权、耕地调查监测以及自然资源确权等各类CASS宗地属性的自动化输入输出。当仅更新部分宗地时,一种方法是在数据源表格中只保留需要更新信息的宗地,另一种方法是保留全部宗地,但是属性项只保留需要更新的项。

需要注意的是,宗地面积、建筑占地面积、建筑密度和容积率等4项宗地属性项(表3序号后标记“-”)与宗地权属线关联,严禁人为修改其值,以防止信息错乱,同时应确保标定地价和申报地价(表3序号后标记“*”)这2项宗地属性项的值不为空,以免造成DXF文件无法打开。

5 结语

本文所实现的功能对地籍确权图件、档案资料的处理有重要意义,提供了一种确权CASS宗地属性更新完善的新方法,摆脱了长期以来利用制图环境进行CASS宗地属性更新完善的制约,提高了制图效率,显著降低了错漏率,使宗地信息的统一检查变得更简单。在本文研究基础上,可以进一步实现地籍权籍调查表的批量自动生成,提高内业效率,助力不动产、自然资源确权信息化和自动化。

参考文献

[1]刘希双,潘奕,王林.解析CASS扩展属性数据[J].测绘与空间地理信息,2009,32(6):182-183,189.

[2]潘宸,陈文军,林巧.村庄地籍调查之宗地自动编号的实现[J].测绘与空间地理信息,2012(9):175-177.

[3]高丽,王小刚,张建辉.一体化数据库在房地确权登记发证中的应用[J].北京测绘,2019,33(7):847-849.

[4]吴金豪,刘剑,易雅琴.一站式房地一体成图建库平台搭建[J].地理空间信息,2022,20(10):107-109,133.

[5]尹端,梅连辉.DXF格式数字地形图坐标转换软件开发研究[J].测绘地理信息,2014,39(5):28-31.

[6]梁艳艳,张源.基于VBA的宗地批处理程序设计与实现[J].黑龙江科技信息,2017(1):176-177.

[7]李琴,闫昶.农村不动产权籍调查中的成果表输出技术研究[J].江西测绘,2018(3):54-57.

[8]裴莲莲,陈品祥,李金刚.基于GIS技术的不动产落宗方法研究与实践[J].北京测绘,2017(增刊1):228-231.

猜你喜欢

宗地
基于ArcObjects二次开发的宗地四至快速提取方法的实现与改进
地籍调查成果在数字时代下的管理研究
CGCS2000坐标系统转换引起宗地面积的变化
基于移动点对象和事件的宗地时空变化表达
基于ArcEngine平台的宗地四至自动生成方法研究
云南省新旧宗地编码转换方法*——以曲靖市麒麟区中心城区为例
基于宗地层次的合肥市产业用地集约利用评价
基于历史归档的宗地查询系统的设计与实现
地籍宗地时空数据库中的变化检测
基于多色图的宗地信息历史回溯模型及实现