


摘 要:在地籍制圖處理過程中,傳統的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.