摘 要:在地籍制圖處理過程中,傳統(tǒng)的CASS宗地屬性更新完善方法需要在圖形界面下逐一點(diǎn)擊宗地權(quán)屬線完成屬性信息錄入。該方法不僅效率低,還容易出現(xiàn)錯(cuò)漏,不便于大量宗地信息的統(tǒng)一檢查,而且只能在圖形界面下完成。本文以分析不動(dòng)產(chǎn)DXF圖形文件格式為例,提出了一種以電子表格記錄宗地屬性,并利用VB6.0編程實(shí)現(xiàn)的CASS宗地屬性自動(dòng)化輸入輸出方法,擺脫了更新完善宗地屬性必須依賴制圖環(huán)境的制約,提高了制圖效率,降低了錯(cuò)漏率,方便了大量宗地的統(tǒng)一檢查。
關(guān)鍵詞:宗地;CASS;DXF;自動(dòng)化輸入輸出
中圖分類號(hào):P 27" " " 文獻(xiàn)標(biāo)志碼:A
對(duì)帶有宗地屬性的權(quán)屬線進(jìn)行處理是不動(dòng)產(chǎn)確權(quán)信息化處理的一項(xiàng)重要內(nèi)容。在南方CASS軟件中,由于CASS自己定義了擴(kuò)展代碼[1],使宗地權(quán)屬線擁有豐富的屬性,利用這些屬性可以準(zhǔn)確表達(dá)宗地權(quán)利人、面積和用途等信息,為制作各類不動(dòng)產(chǎn)圖件、報(bào)表提供了依據(jù)。對(duì)于CASS宗地屬性的更新完善,傳統(tǒng)方法需要在圖形界面逐一點(diǎn)擊宗地權(quán)屬線,在宗地屬性頁(yè)面對(duì)應(yīng)屬性項(xiàng)錄入相關(guān)信息。該方法工作量大,效率低,錯(cuò)誤多[2],不便于大量宗地的統(tǒng)一檢查,而且只能在圖形界面下完成。
為了擺脫更新完善宗地屬性必須依賴制圖環(huán)境的制約,提高制圖效率,降低錯(cuò)漏率,必須進(jìn)行測(cè)量數(shù)據(jù)的轉(zhuǎn)換工作[3],以方便大量宗地信息的統(tǒng)一檢查。本文探索了實(shí)現(xiàn)CASS宗地屬性輸入輸出自動(dòng)化的方法,即利用VB6.0編程工具和電子表格,通過關(guān)鍵字段賦值[4]來(lái)輸入不動(dòng)產(chǎn)DXF圖形文件宗地屬性,讀取不動(dòng)產(chǎn)DXF圖形文件,并將宗地屬性輸出到電子表格。
1 不動(dòng)產(chǎn)DXF圖形文件CASS宗地屬性分析
DXF文件是AutoCAD中用來(lái)進(jìn)行圖形信息交換的一種文件。DXF文件中存儲(chǔ)的每一個(gè)圖形元素均以成對(duì)的組碼和組值來(lái)表示[5],每個(gè)組碼和值各占一行。南方CASS中的擴(kuò)展屬性數(shù)據(jù)是在圖形數(shù)據(jù)基礎(chǔ)上增加的、按一系列分類代碼組合而成的數(shù)據(jù)塊,其中組碼1001表示擴(kuò)展屬性數(shù)據(jù)的開始[6]。在DXF圖形文件中,圖形元素信息主要存儲(chǔ)在entities節(jié),并定位到該節(jié),根據(jù)CASS擴(kuò)展屬性值為30000的多段線找到宗地權(quán)屬線記錄段,發(fā)現(xiàn)每宗地CASS屬性起始位置均有以組碼“1001”開頭、次行內(nèi)容為“SOUTH”的特征符。宗地代碼、權(quán)利人和地類編碼是宗地的基本屬性,在CASS屬性起始特征符后,分別用4個(gè)組碼“1000”和次行內(nèi)容依次記錄宗地權(quán)屬線CASS實(shí)體編碼、宗地代碼、權(quán)利人和地類編碼,其記錄方式為每2行一個(gè)屬性項(xiàng),示例和說(shuō)明見表1。
經(jīng)分析可知,在CASS宗地權(quán)屬線的屬性項(xiàng)中,除宗地代碼、權(quán)利人和地類編碼3個(gè)基本宗地屬性項(xiàng)沒有賦予CASS字段名稱外,其余37個(gè)宗地?cái)U(kuò)展屬性項(xiàng)均有特定的CASS字段名稱(見表2),其記錄方式為每4行一個(gè)宗地屬性項(xiàng)。第1行為組碼“1001”,第2行為宗地屬性項(xiàng)CASS字段名稱,第3行為組碼“1000”,第4行為宗地屬性項(xiàng)內(nèi)容,示例和說(shuō)明見表3。
以南方CASS10.1軟件為例。宗地屬性頁(yè)一共有宗地屬性40項(xiàng)(見表3),在實(shí)施不動(dòng)產(chǎn)統(tǒng)一確權(quán)資料處理過程中,農(nóng)村不動(dòng)產(chǎn)確權(quán)較常用的宗地屬性只有20項(xiàng)(見表3序號(hào)1~20),其余20項(xiàng)宗地屬性項(xiàng)(見表3序號(hào)21~40)主要為國(guó)有宗地確權(quán)時(shí)使用。
觀察表3不難發(fā)現(xiàn),除宗地代碼、權(quán)利人和地類編碼3項(xiàng)沒有CASS字段名稱的宗地基本屬性項(xiàng)以外,其余宗地屬性項(xiàng)名稱所對(duì)應(yīng)的CASS字段名稱均是其中文拼音全稱或?qū)傩皂?xiàng)名稱每個(gè)字拼音首字母的串聯(lián)。在不動(dòng)產(chǎn)DXF圖形文件中,宗地屬性項(xiàng)名稱及其對(duì)應(yīng)的CASS字段名稱保持不變,為程序批量化處理創(chuàng)造了條件。
2 模板表格的定制
電子表格具有優(yōu)秀的數(shù)據(jù)存儲(chǔ)管理功能,由于不動(dòng)產(chǎn)權(quán)籍?dāng)?shù)據(jù)量和信息量較大,為使最終輸出成果表具有規(guī)范性、統(tǒng)一性和準(zhǔn)確性[7],可以制作一個(gè)固定樣式的模板表格,同時(shí)用于宗地屬性的輸入和輸出。表格的每一列對(duì)應(yīng)宗地的一個(gè)權(quán)籍屬性項(xiàng),可以將宗地的屬性項(xiàng)信息輸出到模板表格中去,同時(shí)也可以讀取模板表格中的數(shù)據(jù),根據(jù)列標(biāo)與宗地屬性項(xiàng)、CASS字段名稱的對(duì)應(yīng)關(guān)系,輸入不動(dòng)產(chǎn)DXF圖形文件的對(duì)應(yīng)宗地屬性中。模板表格起始行表頭字段可按表3的宗地屬性項(xiàng)順序,將序號(hào)1~40分別對(duì)應(yīng)模板表格的A~AN列。
與建立宗地及其定著物的關(guān)聯(lián)關(guān)系[8]類似,模板表格建立了宗地與其屬性的對(duì)應(yīng)關(guān)系,固定宗地屬性字段列位置可以確保數(shù)據(jù)源穩(wěn)定,方便程序讀取和寫入。
3 核心代碼設(shè)計(jì)
VB語(yǔ)言是一種面向?qū)ο蟮目梢暬绦蛟O(shè)計(jì)語(yǔ)言。本文設(shè)計(jì)了簡(jiǎn)潔的界面,實(shí)現(xiàn)了CASS宗地屬性的自動(dòng)化輸入輸出。其核心代碼如下所示。
3.1 CASS宗地屬性輸入
CASS宗地屬性輸入需要先讀取不動(dòng)產(chǎn)DXF圖形文件,識(shí)別宗地屬性項(xiàng)并記錄到數(shù)組中,代碼示例如下。
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表示宗地線個(gè)數(shù);qs1(i)和js1(i)分別表示第i宗地的屬性項(xiàng)在DXF文件中的起始行號(hào)和結(jié)束行號(hào);a(j)表示讀取的DXF文件的第j行字符串;st(i,j)表示第i宗地第j個(gè)屬性項(xiàng),j的數(shù)值與表3中的序號(hào)對(duì)應(yīng)。DXF宗地屬性項(xiàng)記錄到數(shù)組以后,創(chuàng)建表格對(duì)象,并激活工作表,讀取表格中的宗地屬性項(xiàng)字段值到數(shù)組中,代碼示例如下。
For i = 1 To 99999
If xlapp.ActiveSheet.Cells(i + 1, 1) = \" \"Then" " " " '宗地號(hào)為空結(jié)束信息讀取
Exit For
End If
n3 = n3 + 1" " '基礎(chǔ)信息表記錄行數(shù)
For j = 1 To 40
r(n3, j)= xlapp.ActiveSheet.Cells(i + 1, j)" " "'讀取表格數(shù)據(jù)到數(shù)組
Next
Next
模板表格第一行為宗地屬性項(xiàng)表頭字段,有效的宗地屬性記錄是從i+1行開始的。表格宗地屬性項(xiàng)記錄到數(shù)組以后,將其與DXF宗地屬性項(xiàng)進(jìn)行匹配。如果匹配成功,就更新對(duì)應(yīng)值,代碼示例如下。
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)" " " '寫入宗地匹配屬性(基本屬性)
不動(dòng)產(chǎn)DXF圖形文件中的某些記錄內(nèi)容與宗地屬性項(xiàng)無(wú)關(guān),因此可先識(shí)別不動(dòng)產(chǎn)DXF圖形文件的固定段,進(jìn)行宗地屬性輸入時(shí),只需要在可變段中查找匹配并改變其中的對(duì)應(yīng)值即可。
3.2 CASS宗地屬性輸出
在DXF宗地屬性項(xiàng)記錄到數(shù)組以后,與CASS宗地屬性輸入相比,CASS宗地屬性輸出缺少讀取表格宗地屬性項(xiàng)和匹配更新的過程,以輸出宗地屬性項(xiàng)到表格的過程相取代。創(chuàng)建表格對(duì)象后直接創(chuàng)建新的表格工作簿文件,將宗地屬性字段名稱依次輸入表格第一行并將其作為表頭,示例代碼如下。
xlapp.ActiveSheet.Cells(1,1)=\"宗地編碼\"
xlapp.ActiveSheet.Cells(1,2)=\"權(quán)利人\"
xlapp.ActiveSheet.Cells(1,3)=\"地類編碼\"
宗地屬性字段輸入表格表頭后,采用循環(huán),將每個(gè)宗地屬性項(xiàng)的值輸出到每宗地對(duì)應(yīng)位置的表格中,示例代碼如下。
For i = 1 To n
xlapp.ActiveSheet.Cells(i + 1, 8) = s8(i)" " " '權(quán)屬來(lái)源證明
xlapp.ActiveSheet.Cells(i + 1, 9) = s9(i)" " " '通信地址
xlapp.ActiveSheet.Cells(i + 1, 10) = s10(i)" " "'土地坐落
Next
為使輸出表格格式美觀,可以通過程序代碼設(shè)置單元格對(duì)齊方式、值類型、行高、列寬和保留小數(shù)位等。
4 運(yùn)行效果和改進(jìn)
程序?qū)崿F(xiàn)了CASS宗地屬性的自動(dòng)化輸入輸出,便于檢查、修改宗地屬性,效率比逐宗點(diǎn)擊、查看和修改有大幅提高。本文所述方法可廣泛適用于不動(dòng)產(chǎn)確權(quán)、耕地調(diào)查監(jiān)測(cè)以及自然資源確權(quán)等各類CASS宗地屬性的自動(dòng)化輸入輸出。當(dāng)僅更新部分宗地時(shí),一種方法是在數(shù)據(jù)源表格中只保留需要更新信息的宗地,另一種方法是保留全部宗地,但是屬性項(xiàng)只保留需要更新的項(xiàng)。
需要注意的是,宗地面積、建筑占地面積、建筑密度和容積率等4項(xiàng)宗地屬性項(xiàng)(表3序號(hào)后標(biāo)記“-”)與宗地權(quán)屬線關(guān)聯(lián),嚴(yán)禁人為修改其值,以防止信息錯(cuò)亂,同時(shí)應(yīng)確保標(biāo)定地價(jià)和申報(bào)地價(jià)(表3序號(hào)后標(biāo)記“*”)這2項(xiàng)宗地屬性項(xiàng)的值不為空,以免造成DXF文件無(wú)法打開。
5 結(jié)語(yǔ)
本文所實(shí)現(xiàn)的功能對(duì)地籍確權(quán)圖件、檔案資料的處理有重要意義,提供了一種確權(quán)CASS宗地屬性更新完善的新方法,擺脫了長(zhǎng)期以來(lái)利用制圖環(huán)境進(jìn)行CASS宗地屬性更新完善的制約,提高了制圖效率,顯著降低了錯(cuò)漏率,使宗地信息的統(tǒng)一檢查變得更簡(jiǎn)單。在本文研究基礎(chǔ)上,可以進(jìn)一步實(shí)現(xiàn)地籍權(quán)籍調(diào)查表的批量自動(dòng)生成,提高內(nèi)業(yè)效率,助力不動(dòng)產(chǎn)、自然資源確權(quán)信息化和自動(dòng)化。
參考文獻(xiàn)
[1]劉希雙,潘奕,王林.解析CASS擴(kuò)展屬性數(shù)據(jù)[J].測(cè)繪與空間地理信息,2009,32(6):182-183,189.
[2]潘宸,陳文軍,林巧.村莊地籍調(diào)查之宗地自動(dòng)編號(hào)的實(shí)現(xiàn)[J].測(cè)繪與空間地理信息,2012(9):175-177.
[3]高麗,王小剛,張建輝.一體化數(shù)據(jù)庫(kù)在房地確權(quán)登記發(fā)證中的應(yīng)用[J].北京測(cè)繪,2019,33(7):847-849.
[4]吳金豪,劉劍,易雅琴.一站式房地一體成圖建庫(kù)平臺(tái)搭建[J].地理空間信息,2022,20(10):107-109,133.
[5]尹端,梅連輝.DXF格式數(shù)字地形圖坐標(biāo)轉(zhuǎn)換軟件開發(fā)研究[J].測(cè)繪地理信息,2014,39(5):28-31.
[6]梁艷艷,張?jiān)?基于VBA的宗地批處理程序設(shè)計(jì)與實(shí)現(xiàn)[J].黑龍江科技信息,2017(1):176-177.
[7]李琴,閆昶.農(nóng)村不動(dòng)產(chǎn)權(quán)籍調(diào)查中的成果表輸出技術(shù)研究[J].江西測(cè)繪,2018(3):54-57.
[8]裴蓮蓮,陳品祥,李金剛.基于GIS技術(shù)的不動(dòng)產(chǎn)落宗方法研究與實(shí)踐[J].北京測(cè)繪,2017(增刊1):228-231.