李 雷 劉 光 張保鋼
(1. 北京市測繪設計研究院, 北京 1000382; 2. 城市空間信息工程北京重點實驗室, 北京 100038)
建設工程規劃用地(撥地)測量是土地使用、施工建設的法律依據,在城市規劃、管理中發揮著重要作用,測量手段也在不斷發展[1-2]。北京市規劃和自然資源委員會負責北京地區的用地設計審批,并作為行政主管部門下達“建筑用地釘樁通知單”[3]。北京市測繪設計研究院作為測量的實施單位負責具體的測量工作,并存有歷年各個地塊的測量成果。豐富用地測量成果管理方式,高效利用已有成果一直以來都是需要被研究和解決的問題[4]。北京市測繪設計研究院王旭輝等已對政務電子地圖的編制技術進行研究并形成了相關產品[5],為本系統底圖的使用提供了先決條件。在撥地數據處理方面,劉延松基于AutoCAD,對封閉地塊的多邊形圖形算法進行研究,實現了地塊坐標成果的自動化輸出[2]。秦學秀等設計了相關數據庫模型,并實現了AutoCAD格式的地塊坐標成果輸入到地理信息系統(Geographic Information System,GIS)平臺,以及將相關信息存儲到Oracle數據庫中[6-7]。上述人的研究成果,為本文所述內容提供了前期基礎和數據支持。本文在上述研究基礎上,將撥地測量成果的表述信息以及釘樁點位信息保存在數據庫中,當用戶通過范圍、工程號等信息獲取數據時,系統將自動尋找符合條件的點位信息并轉化為計算機輔助設計(Computer Aided Design,CAD)圖形提供下載。這使得在撥地測量任務中,歷年成果數據均可以得到充分利用,如圖1所示。

圖1 撥地數據選擇
本系統瀏覽器端負責用戶交互,服務器端完成數據生成。其最大優勢是用戶無須安裝專業軟件環境,通過主流瀏覽器輸入相應網址,即可以使用相關功能。為方便用戶直觀定位到所需區域,本文將北京市域范圍的政務版電子地圖發布到ArcGIS Server并切片,以TileLayer的方式作為底圖在瀏覽器中調用。本文將歷年包含地塊坐標成果的GIS數據發布為網絡服務,并以動態圖層的方式在瀏覽器中進行調取。
通過將空間數據庫引擎(Spatial Database Engine,SDE)中的歷年撥地釘樁數據建立撥地圖層,每個閉合的建設用地范圍線具備的屬性信息如表1所示,撥地號、提交日期將作為圖形篩選的條件項。

表1 建設用地范圍線屬性信息
將撥地圖層發布為Map Service,并采用動態方式加載到瀏覽器中,以方便用戶直觀看到當前位置已有的用地線范圍和撥地號。在圖形選擇上,可以采取按年代區間、輸入測號、繪制范圍、拖入SHP(shape文件格式)和對應數字波束合成(Digital Beam Forming, DBF)文件的方式對所需數據進行選取。
通過以下方式可以實現根據撥地測號獲取相應數據:(1)獲取撥地服務地址;(2)建立QueryTask;(3)構造query的where條件,根據北京市撥地號命名規則,一個撥地號會出現多種情況,如“2020撥地049”在數據庫查詢時需要將“2020撥049”、“2020撥049-%”、“2020撥0049”、“2020撥0049-%”、“2020撥地049”、“2020撥地049-%”、“2020撥地0049”、“2020撥地0049-%”均作為查詢條件,與GIS服務中的撥地號SURVENO進行匹配;(4)根據屬性信息在地圖服務上獲取對應的Features和屬性值。
對于繪制范圍獲取數據則進行以下處理:(1)利用dojo.connect將“onDrawEnd”動作與處理函數進行掛接;(2)設置Symbol樣式,利用點選多邊形的geometry建立graphic,并將其添加到頁面地圖中的graphics圖層中,以便用戶可以直觀看到所繪制的圖形范圍;(3)獲取撥地服務地址;(4)建立IdentifyTask,在IdentifyParameters中將geometry設置為繪制的圖形范圍;(5)根據圖形范圍在地圖服務上獲取對應的Features和屬性值。
對CAD文件進行操作具有多種方式,AutoCAD自帶的LISP語句是在普通LISP語言基礎上,又擴充了適用于CAD功能的設計語言,功能較強[8],但不同CAD版本對應不同的API,兼容性不強,功能修改和版本控制也不方便。通過C#調用CAD的指令集繪圖時間較長,中斷后需要重新啟動執行。上述兩種方式都需要與AutoCAD軟件直接進行通信,而直接生成圖形文件則可以避免調用CAD軟件,便于在服務器端實現。DWG格式的CAD文件結構沒有公開,無法直接對其進行操作,DXF是繪圖交換文件,其作用是用于AutoCAD和其他軟件進行交換。筆者通過在服務器端使用C#調用NetDxf庫實現DXF文件的創建和撥地數據的圖形繪制。
首先需要在Oracle數據庫中建立如表2~3所示撥地成果表,將撥地成果的每一個點位信息存儲到成果表中,其中具備相同PARCELID的點位屬于同一個閉合面,弧長、半徑、圓心坐標定義圖中的曲線信息。將數據庫表中的點位信息還原到CAD中并對點位進行連接、賦予點名和屬性值,則可以還原出所需撥地號的完整圖形。

表2 地塊信息表

表3 點位信息表
具體實現方式為:(1)將撥地號由瀏覽器發送到服務器端,每個撥地號同時應攜帶地塊唯一編碼標識(Identity Document,ID);(2)連接撥地成果表所在的數據庫;(3)定義用于AutoCAD繪圖交換文件(Drawing Exchange Format,DXF)文件的存儲路徑;(4)定義字體樣式,并選擇CAD字體文件;(5)對于撥地號和地塊ID進行分割,以便逐一操作;(6)建立List
通常一個撥地工程(即一個SERVENO)中包含多個地塊,每個地塊通過不同的PARCELID值進行識別,在圖形上表現為一個或多個閉合面。對于每個地塊進行如下操作:(1)建立LwPolyline,并將此多段線放入以撥地號命名的CAD圖層中;(2)建立firstPointName=””(此閉合面首個點的點名),firstnum=0(此閉合面首個點經過點ID排序后所處的位置),count=0,List
當某點圓心X、圓心Y這兩個屬性項不為空時,可以認為本點屬于弧線中的一點,進行圖形還原時,需要計算出本點的凸度值。令本點與下一點組成圓弧所在圓的圓心坐標(Xc,Yc),本點坐標 (X1,Y1),下一點坐標 (X2,Y2),起始角A1與結束角A2的計算方法為
(1)
(2)
式中,當計算的角度值A小于0時,A=A+2π。令α=A2-A1,當|α|>π時,α=2π+α,此點凸度B的計算方法為
(3)
并將凸度值賦予多段線中此點的點位上。
基于上述技術,在北京市測繪設計研究院建立了撥地分發系統,本系統從北京市撥地庫中獲取歷年數據,并生成DXF文件供用戶下載。通過本系統的使用,減少了大量外業工作時間,極大提高了北京市各類型用地的劃撥效率。用戶可以在瀏覽器中通過選擇年代、繪制多邊形或輸入撥地測號的方式進行選擇[9-10]。
選擇后系統后臺通過上述計算生成DXF圖形,將圖形保存到服務器,用戶可以在瀏覽器上直接下載所需區域的圖形文件,如圖2所示。

圖2 DXF圖形及點名
在對數據庫中近半年申請情況進行統計,得出表4所述數據??梢钥闯霰竟δ茉谄諟y、詳測、撥地、核建、驗測等多種類型的測繪項目中得到了應用,半年來共申請195次,月均使用32.5次,涉及11 204個撥地點位所組成的圖形。

表4 各工程測量類型申請數量統計
對于建設工程規劃用地(撥地)測繪工程,需要按照規劃行政主管部門所下達的《建筑用地釘樁通知單》進行作業,并要求與已有撥地范圍線進行無縫連接,不允許出現縫隙或交叉的情況。因此,測繪單位在項目作業前需要到檔案部門進行數據申請,再根據已有規劃測量成果進行生產作業。本文所開發功能實現了已有撥地成果數據的還原和圖形自動生成,使生產單位可以快速、便捷地申請到所需數據,保障了測繪項目順利實施。本文總結了具體技術路線和相應算法,所編寫的系統在項目中得到了廣泛應用,為其他單位建設工程規劃用地(撥地)成果的信息化建設和利用提供了相應示范。在實際使用過程中要求在數據庫中對申請內容進行記錄,并保證可追溯性。但當申請面積過大時受數據庫自身限制,一條記錄難以將所有內容記錄完整,因此系統中限制了普通用戶的單次申請數量,如何解決此項問題,有待今后進一步研究。