劉召龍,盧建青
(浙江省測繪大隊,浙江 杭州 310030)
基于Visual Lisp的農村土地承包經營權確權中幾個基本功能程序的實現(xiàn)*
劉召龍,盧建青
(浙江省測繪大隊,浙江 杭州 310030)
目前農村土地承包經營權確權登記頒證工作在全國范圍內已經大規(guī)模的開展。在確權的過程中,測繪人員常使用AutoCAD軟件繪制地塊圖,并進行簡單的預處理,最后統(tǒng)一匯交到農業(yè)部的標準數(shù)據(jù)庫中。針對該工作的特點,利用Visual Lisp語言開發(fā)了一些小程序,應用于農村土地承包經營權確權工作中。
Visual Lisp;農村土地承包經營權確權;AutoCAD
農村土地承包經營權(簡稱農經權)確權登記頒證是保護農村土地權益,促進土地流轉、發(fā)展規(guī)模經營和完善農村治理體系的重要基礎性工作[1]。在這項工作中,需要在AutoCAD中進行數(shù)據(jù)的處理,而AutoLISP語言是嵌套于AutoCAD內部,將LISP語言和AutoCAD有機結合的產物[2]。使用AutoLISP幾乎可以直接調用全部的AutoCAD命令。而Visual LISP不僅繼承了AutoLISP程序設計的優(yōu)點,而且還對AutoLISP語言的功能進行了拓展,所以使用Visual LISP 進行程序設計可以提高不同版本AutoCAD的兼容性、通用性。本文主要研究在AutoCAD平臺上利用Visual LISP 進行農村土地承包經營權確權登記頒證數(shù)據(jù)處理的幾個基本功能程序的設計及實現(xiàn)。
在AutoCAD的菜單欄上,新建一個工具欄。工具欄界面,如圖1所示。
圖1 農經權工具菜單欄Fig.1 Tool menu about rural land contractual management right
該工具欄下共有:標注實測面積、檢查、快速繪圖、面積分割、標注界址線類別、導入地塊屬性信息等工具。其中,檢查工具功能又包括面積過大檢查功能和重疊檢查功能,標注界址線類型工具的功能分為單點標注和批量標注。程序功能設計,如圖2所示。
2.1 標注實測面積
標注實測面積目的主要是方便瀏覽每一個地塊的實測面積。標注實測面積關鍵程序代碼如下:
(command "area" "o" DK);;計算多邊形DK的面積
(setq MianJi(getvar "area"))
(setq MianJiMu(/ MianJi 666.667));;平方米轉換成畝
(setq mjj(rtos mj 2));;取兩位有效數(shù)字
(command "text" "s" "HZ" "j" "mc" zhixin 1.5 0 mjj "");;把面積標注在地塊的質心處
圖2 農經權功能設計圖Fig.2 Function design of rural land contractual management right
2.2 檢查
檢查功能包括面積過大檢查和重疊檢查。面積過大檢查的主要目的是檢查合同面積和實測面積的差值,如果超過規(guī)定值,就會被篩選出來,標記出不同的顏色;重疊檢查是檢查地塊之間的重疊,如果有地塊重疊的情況,將會被篩選出來,標記出不同的顏色。
1)檢查面積過大的關鍵程序代碼為:
(setq ji(ssget "_CP" pts ' ((0."*text")(8."合同面積"))));;獲取標注在地塊中的合同面積
2)重疊檢查的設計思路為:把地塊向質心方向縮放0.001 m的距離,并以縮放后的地塊作為選擇范圍,然后選擇地塊對象,若選擇對象為nil,則說明沒有地塊重疊,否則說明地塊有重疊。程序關鍵代碼為:
(setvar "OSMODE" 0);;關閉對象捕捉
(vla-offset(vlax-ename->vla-object namemjj)0.001)
2.3 快速繪圖
快速繪圖功能主要解決當相鄰地塊公共節(jié)點較多時,不需要一一繪制的情況。如圖3(a)所示,繪制完地塊1,繪制地塊2時不需要將與地塊1公共的節(jié)點全部繪制出,只需要繪制pt1點和pt2點,中間的點可以省略,當繪制完成后,運行“快速繪圖”命令,則程序就會把地塊1和地塊2重疊的部分切除,最終效果如圖3(b)所示。
圖3 相鄰地塊重疊節(jié)點較多時的處理Fig.3 The case of more overlapping nodes in adjacent land parcels
快速繪圖的的設計思路為:使用REGION命令,把多線段繪制的地塊轉換成面域,然后使用SUBTRACT命令,進行面域相減,最后使用通過BOUNDARY命令,從相減后的面域中生成新的多邊形面,程序關鍵代碼為:
(setq DK(entlast));;獲得圖形對象
(command "region" DK "");;把獲得圖形對象轉換成面域
(setq en(entlast));;獲得面域對象
(command "subtract" en);;面域相減
(command "BOUNDARY" pt1 "");;根據(jù)新生成的面域,創(chuàng)建多邊形的面,其中,pt1為面域的內部點
2.4 面積分割
面積分割主要針對原有的土地界線因流轉等原因被打破,不能測繪出原有界線時,只能按照村里臺賬面積比例來分割該地塊的實測面積的情況。打開“分割”工具,先繪制分割線,然后繪制分割的方向線(如圖4所示),最后輸入分割參數(shù)。如本例中,地塊的實測面積為1.852畝,需要分割成3個地塊,而每個地塊的合同面積分別是:0.5畝、0.7畝、0.6畝。分割參數(shù)填寫,如圖5所示。
圖4 分割步驟Fig.4 The splitting step
圖5 分割參數(shù)填寫Fig.5 The input of splitting parameters
最后得到分割后的地塊,如圖6所示。
圖6 分割完成的地塊Fig.6 Land parcels after splitting
2.5 標注界址線類型
界址線類別主要包括:田埂、溝渠、道路、行樹、圍墻、墻壁、柵欄、兩點連線、其他界線[3],這些界址線類別對應的代碼分別01、02、03、04、05、06、07、08、99,界址線位置的內、中、外分別用01、02、03表示[4],例如0301代表“道路內”
提高界址線標注的效率本質在于兩方面:一方面是在不同的界址線類別之間切換要方便,另一方面是對于相同的界址線類別能夠批量標注。本程序的標注界址線類型主要包括兩種標注方式:單點標注和批量標注。單點標注解決界址線類別之間切換效率的問題,主要使用在地塊界址線類別較復雜的地塊區(qū)域;批量標注解決相同的界址線類別能夠批量標注的問題,主要用于大范圍、同類型的界址線標注的地塊區(qū)域。
1)單點標注的設計思路是:使用grread函數(shù)不斷獲取用戶鍵盤和鼠標輸入的內容,如果用戶鼠標單擊位置,則把界址線類型插入到指定位置,如果用戶鍵盤輸入代碼,例如31(道路內),則界址線類型立刻被切換。具體程序代碼為:
(while loop (setq code(grread T 8));;獲取輸入的內容
(setq pt(getpoint " 選擇插入位置: "))
(if(/= pt nil)
*** ;;當輸入的內容是坐標時,把類型插入指定坐標處
)
(progn
(setq str(getstring "選擇類型: "));;當輸入的內容不是坐標時,通過代碼輸入類型
***
))
2)批量標注的設計思路是:先把需要批量標注界址線類別的地塊用范圍線圈出來,然后通過ssget函數(shù)中的CP模式選擇
地塊,并逐一遍歷地塊對象,獲取地塊各節(jié)點坐標,計算地塊每邊的中點坐標,最后把界址線類別標注在每一條邊的中點上。
2.6 導入地塊屬性信息
導入地塊屬性信息是以外業(yè)編碼為關鍵字,把以.txt格式存儲的地塊屬性信息(承包方名稱、合同面積)導入到AutoCAD的地塊中,具體程序代碼為:
(setq getfilen(getfiled "選擇文件" "" "txt" 8));;彈出對話框打開文件
(setq getfileo(open getfilen "r"))
(setq c(ssget"X"'((0."*TEXT")(8. "外業(yè)編號"))));;讀取cad中的外業(yè)編號
(while(setq data(read-line getfileo));;讀取.txt文件的信息
(if(and(equal MyText temptText)(/= MyText ""));;比較字符串
))
(close getfileo)
該程序已經在浙江省溫嶺市、金華市婺城區(qū)、德清縣的農村土地承包經營權確權工作中得到了實際運用。從實際應用來看,利用該程序在處理承包地塊及地塊屬性方面可以提高效率,但是有些功能仍需要完善,如在分割地塊時,如果地塊的形狀是凹多邊形,則有可能出現(xiàn)分割失敗,對這一問題,還有待研究解決。
[1] 李偉方,裴志遠.農村土地承包經營權登記頒證技術教程[M].北京:中國農業(yè)出版社,2015:1-2.
[2] 周樂來,馬婧.AutoCAD 2008 Visual Lisp 二次開發(fā)入門到精通[M].北京:機械工業(yè)出版社,2008:1-3.
[3] 中華人民共和國農業(yè)部.NY/T 2537—2014農村土地承包經營權調查規(guī)程[S].北京:中國農業(yè)出版社,2014.
[4] 中華人民共和國農業(yè)部.NY/T 2539—2014農村土地承包經營權確權登記數(shù)據(jù)庫規(guī)范[S].北京:中國農業(yè)出版社,2014.
Implementation of Some Programs in Confirmation of Rural LandContractual Management Right Based on Visual Lisp
LIU Zhao-long,LU Jian-qing
(ZhejiangBrigadeofSurveyingandMapping,HangzhouZhejiang310030,China)
The work of confirmation of rural land contractual management right has been carried out on a large scale in China.In this process surveyors need to draw the parcel map with AutoCAD.Then after making a simple pretreatment,the obtained data is sent to the standard database of Ministry of Agriculture.Based on the characteristics of the work,the paper developed some small programs by using Visual Lisp and these programs have been applied in this work.
Visual Lisp;rural land contractual management right;AutoCAD
2017-02-25
P 208;P 279
B
1007-9394(2017)02-0028-03
劉召龍(1988~),男,安徽淮北人,碩士,助理工程師,主要研究方向:測繪工程。