李 雷 劉 光 張保鋼
(1. 北京市測(cè)繪設(shè)計(jì)研究院, 北京 1000382; 2. 城市空間信息工程北京重點(diǎn)實(shí)驗(yàn)室, 北京 100038)
建設(shè)工程規(guī)劃用地(撥地)測(cè)量是土地使用、施工建設(shè)的法律依據(jù),在城市規(guī)劃、管理中發(fā)揮著重要作用,測(cè)量手段也在不斷發(fā)展[1-2]。北京市規(guī)劃和自然資源委員會(huì)負(fù)責(zé)北京地區(qū)的用地設(shè)計(jì)審批,并作為行政主管部門(mén)下達(dá)“建筑用地釘樁通知單”[3]。北京市測(cè)繪設(shè)計(jì)研究院作為測(cè)量的實(shí)施單位負(fù)責(zé)具體的測(cè)量工作,并存有歷年各個(gè)地塊的測(cè)量成果。豐富用地測(cè)量成果管理方式,高效利用已有成果一直以來(lái)都是需要被研究和解決的問(wèn)題[4]。北京市測(cè)繪設(shè)計(jì)研究院王旭輝等已對(duì)政務(wù)電子地圖的編制技術(shù)進(jìn)行研究并形成了相關(guān)產(chǎn)品[5],為本系統(tǒng)底圖的使用提供了先決條件。在撥地?cái)?shù)據(jù)處理方面,劉延松基于AutoCAD,對(duì)封閉地塊的多邊形圖形算法進(jìn)行研究,實(shí)現(xiàn)了地塊坐標(biāo)成果的自動(dòng)化輸出[2]。秦學(xué)秀等設(shè)計(jì)了相關(guān)數(shù)據(jù)庫(kù)模型,并實(shí)現(xiàn)了AutoCAD格式的地塊坐標(biāo)成果輸入到地理信息系統(tǒng)(Geographic Information System,GIS)平臺(tái),以及將相關(guān)信息存儲(chǔ)到Oracle數(shù)據(jù)庫(kù)中[6-7]。上述人的研究成果,為本文所述內(nèi)容提供了前期基礎(chǔ)和數(shù)據(jù)支持。本文在上述研究基礎(chǔ)上,將撥地測(cè)量成果的表述信息以及釘樁點(diǎn)位信息保存在數(shù)據(jù)庫(kù)中,當(dāng)用戶通過(guò)范圍、工程號(hào)等信息獲取數(shù)據(jù)時(shí),系統(tǒng)將自動(dòng)尋找符合條件的點(diǎn)位信息并轉(zhuǎn)化為計(jì)算機(jī)輔助設(shè)計(jì)(Computer Aided Design,CAD)圖形提供下載。這使得在撥地測(cè)量任務(wù)中,歷年成果數(shù)據(jù)均可以得到充分利用,如圖1所示。
圖1 撥地?cái)?shù)據(jù)選擇
本系統(tǒng)瀏覽器端負(fù)責(zé)用戶交互,服務(wù)器端完成數(shù)據(jù)生成。其最大優(yōu)勢(shì)是用戶無(wú)須安裝專業(yè)軟件環(huán)境,通過(guò)主流瀏覽器輸入相應(yīng)網(wǎng)址,即可以使用相關(guān)功能。為方便用戶直觀定位到所需區(qū)域,本文將北京市域范圍的政務(wù)版電子地圖發(fā)布到ArcGIS Server并切片,以TileLayer的方式作為底圖在瀏覽器中調(diào)用。本文將歷年包含地塊坐標(biāo)成果的GIS數(shù)據(jù)發(fā)布為網(wǎng)絡(luò)服務(wù),并以動(dòng)態(tài)圖層的方式在瀏覽器中進(jìn)行調(diào)取。
通過(guò)將空間數(shù)據(jù)庫(kù)引擎(Spatial Database Engine,SDE)中的歷年撥地釘樁數(shù)據(jù)建立撥地圖層,每個(gè)閉合的建設(shè)用地范圍線具備的屬性信息如表1所示,撥地號(hào)、提交日期將作為圖形篩選的條件項(xiàng)。
表1 建設(shè)用地范圍線屬性信息
將撥地圖層發(fā)布為Map Service,并采用動(dòng)態(tài)方式加載到瀏覽器中,以方便用戶直觀看到當(dāng)前位置已有的用地線范圍和撥地號(hào)。在圖形選擇上,可以采取按年代區(qū)間、輸入測(cè)號(hào)、繪制范圍、拖入SHP(shape文件格式)和對(duì)應(yīng)數(shù)字波束合成(Digital Beam Forming, DBF)文件的方式對(duì)所需數(shù)據(jù)進(jìn)行選取。
通過(guò)以下方式可以實(shí)現(xiàn)根據(jù)撥地測(cè)號(hào)獲取相應(yīng)數(shù)據(jù):(1)獲取撥地服務(wù)地址;(2)建立QueryTask;(3)構(gòu)造query的where條件,根據(jù)北京市撥地號(hào)命名規(guī)則,一個(gè)撥地號(hào)會(huì)出現(xiàn)多種情況,如“2020撥地049”在數(shù)據(jù)庫(kù)查詢時(shí)需要將“2020撥049”、“2020撥049-%”、“2020撥0049”、“2020撥0049-%”、“2020撥地049”、“2020撥地049-%”、“2020撥地0049”、“2020撥地0049-%”均作為查詢條件,與GIS服務(wù)中的撥地號(hào)SURVENO進(jìn)行匹配;(4)根據(jù)屬性信息在地圖服務(wù)上獲取對(duì)應(yīng)的Features和屬性值。
對(duì)于繪制范圍獲取數(shù)據(jù)則進(jìn)行以下處理:(1)利用dojo.connect將“onDrawEnd”動(dòng)作與處理函數(shù)進(jìn)行掛接;(2)設(shè)置Symbol樣式,利用點(diǎn)選多邊形的geometry建立graphic,并將其添加到頁(yè)面地圖中的graphics圖層中,以便用戶可以直觀看到所繪制的圖形范圍;(3)獲取撥地服務(wù)地址;(4)建立IdentifyTask,在IdentifyParameters中將geometry設(shè)置為繪制的圖形范圍;(5)根據(jù)圖形范圍在地圖服務(wù)上獲取對(duì)應(yīng)的Features和屬性值。
對(duì)CAD文件進(jìn)行操作具有多種方式,AutoCAD自帶的LISP語(yǔ)句是在普通LISP語(yǔ)言基礎(chǔ)上,又?jǐn)U充了適用于CAD功能的設(shè)計(jì)語(yǔ)言,功能較強(qiáng)[8],但不同CAD版本對(duì)應(yīng)不同的API,兼容性不強(qiáng),功能修改和版本控制也不方便。通過(guò)C#調(diào)用CAD的指令集繪圖時(shí)間較長(zhǎng),中斷后需要重新啟動(dòng)執(zhí)行。上述兩種方式都需要與AutoCAD軟件直接進(jìn)行通信,而直接生成圖形文件則可以避免調(diào)用CAD軟件,便于在服務(wù)器端實(shí)現(xiàn)。DWG格式的CAD文件結(jié)構(gòu)沒(méi)有公開(kāi),無(wú)法直接對(duì)其進(jìn)行操作,DXF是繪圖交換文件,其作用是用于AutoCAD和其他軟件進(jìn)行交換。筆者通過(guò)在服務(wù)器端使用C#調(diào)用NetDxf庫(kù)實(shí)現(xiàn)DXF文件的創(chuàng)建和撥地?cái)?shù)據(jù)的圖形繪制。
首先需要在Oracle數(shù)據(jù)庫(kù)中建立如表2~3所示撥地成果表,將撥地成果的每一個(gè)點(diǎn)位信息存儲(chǔ)到成果表中,其中具備相同PARCELID的點(diǎn)位屬于同一個(gè)閉合面,弧長(zhǎng)、半徑、圓心坐標(biāo)定義圖中的曲線信息。將數(shù)據(jù)庫(kù)表中的點(diǎn)位信息還原到CAD中并對(duì)點(diǎn)位進(jìn)行連接、賦予點(diǎn)名和屬性值,則可以還原出所需撥地號(hào)的完整圖形。
表2 地塊信息表
表3 點(diǎn)位信息表
具體實(shí)現(xiàn)方式為:(1)將撥地號(hào)由瀏覽器發(fā)送到服務(wù)器端,每個(gè)撥地號(hào)同時(shí)應(yīng)攜帶地塊唯一編碼標(biāo)識(shí)(Identity Document,ID);(2)連接撥地成果表所在的數(shù)據(jù)庫(kù);(3)定義用于AutoCAD繪圖交換文件(Drawing Exchange Format,DXF)文件的存儲(chǔ)路徑;(4)定義字體樣式,并選擇CAD字體文件;(5)對(duì)于撥地號(hào)和地塊ID進(jìn)行分割,以便逐一操作;(6)建立List
通常一個(gè)撥地工程(即一個(gè)SERVENO)中包含多個(gè)地塊,每個(gè)地塊通過(guò)不同的PARCELID值進(jìn)行識(shí)別,在圖形上表現(xiàn)為一個(gè)或多個(gè)閉合面。對(duì)于每個(gè)地塊進(jìn)行如下操作:(1)建立LwPolyline,并將此多段線放入以撥地號(hào)命名的CAD圖層中;(2)建立firstPointName=””(此閉合面首個(gè)點(diǎn)的點(diǎn)名),firstnum=0(此閉合面首個(gè)點(diǎn)經(jīng)過(guò)點(diǎn)ID排序后所處的位置),count=0,List
當(dāng)某點(diǎn)圓心X、圓心Y這兩個(gè)屬性項(xiàng)不為空時(shí),可以認(rèn)為本點(diǎn)屬于弧線中的一點(diǎn),進(jìn)行圖形還原時(shí),需要計(jì)算出本點(diǎn)的凸度值。令本點(diǎn)與下一點(diǎn)組成圓弧所在圓的圓心坐標(biāo)(Xc,Yc),本點(diǎn)坐標(biāo) (X1,Y1),下一點(diǎn)坐標(biāo) (X2,Y2),起始角A1與結(jié)束角A2的計(jì)算方法為
(1)
(2)
式中,當(dāng)計(jì)算的角度值A(chǔ)小于0時(shí),A=A+2π。令α=A2-A1,當(dāng)|α|>π時(shí),α=2π+α,此點(diǎn)凸度B的計(jì)算方法為
(3)
并將凸度值賦予多段線中此點(diǎn)的點(diǎn)位上。
基于上述技術(shù),在北京市測(cè)繪設(shè)計(jì)研究院建立了撥地分發(fā)系統(tǒng),本系統(tǒng)從北京市撥地庫(kù)中獲取歷年數(shù)據(jù),并生成DXF文件供用戶下載。通過(guò)本系統(tǒng)的使用,減少了大量外業(yè)工作時(shí)間,極大提高了北京市各類型用地的劃撥效率。用戶可以在瀏覽器中通過(guò)選擇年代、繪制多邊形或輸入撥地測(cè)號(hào)的方式進(jìn)行選擇[9-10]。
選擇后系統(tǒng)后臺(tái)通過(guò)上述計(jì)算生成DXF圖形,將圖形保存到服務(wù)器,用戶可以在瀏覽器上直接下載所需區(qū)域的圖形文件,如圖2所示。
圖2 DXF圖形及點(diǎn)名
在對(duì)數(shù)據(jù)庫(kù)中近半年申請(qǐng)情況進(jìn)行統(tǒng)計(jì),得出表4所述數(shù)據(jù)。可以看出本功能在普測(cè)、詳測(cè)、撥地、核建、驗(yàn)測(cè)等多種類型的測(cè)繪項(xiàng)目中得到了應(yīng)用,半年來(lái)共申請(qǐng)195次,月均使用32.5次,涉及11 204個(gè)撥地點(diǎn)位所組成的圖形。
表4 各工程測(cè)量類型申請(qǐng)數(shù)量統(tǒng)計(jì)
對(duì)于建設(shè)工程規(guī)劃用地(撥地)測(cè)繪工程,需要按照規(guī)劃行政主管部門(mén)所下達(dá)的《建筑用地釘樁通知單》進(jìn)行作業(yè),并要求與已有撥地范圍線進(jìn)行無(wú)縫連接,不允許出現(xiàn)縫隙或交叉的情況。因此,測(cè)繪單位在項(xiàng)目作業(yè)前需要到檔案部門(mén)進(jìn)行數(shù)據(jù)申請(qǐng),再根據(jù)已有規(guī)劃測(cè)量成果進(jìn)行生產(chǎn)作業(yè)。本文所開(kāi)發(fā)功能實(shí)現(xiàn)了已有撥地成果數(shù)據(jù)的還原和圖形自動(dòng)生成,使生產(chǎn)單位可以快速、便捷地申請(qǐng)到所需數(shù)據(jù),保障了測(cè)繪項(xiàng)目順利實(shí)施。本文總結(jié)了具體技術(shù)路線和相應(yīng)算法,所編寫(xiě)的系統(tǒng)在項(xiàng)目中得到了廣泛應(yīng)用,為其他單位建設(shè)工程規(guī)劃用地(撥地)成果的信息化建設(shè)和利用提供了相應(yīng)示范。在實(shí)際使用過(guò)程中要求在數(shù)據(jù)庫(kù)中對(duì)申請(qǐng)內(nèi)容進(jìn)行記錄,并保證可追溯性。但當(dāng)申請(qǐng)面積過(guò)大時(shí)受數(shù)據(jù)庫(kù)自身限制,一條記錄難以將所有內(nèi)容記錄完整,因此系統(tǒng)中限制了普通用戶的單次申請(qǐng)數(shù)量,如何解決此項(xiàng)問(wèn)題,有待今后進(jìn)一步研究。