李甫群,曾光清,彭軍文,黃江雄
(長沙市規劃勘測設計研究院,湖南 長沙 425501)
隨著城市化、工業化的發展,城市環境矛盾日趨突出,而園林綠化是城市生態系統中促進良性發展的積極因素,在創造優良的生產環境和改善人們的生存條件方面的作用是其他系統所不能代替的。根據《城市園林綠化當前產業政策實施辦法》相關要求指出對于新建住宅區和舊城改造,需同步搞好綠化和建設配套公園,改善人民居住環境,為兒童和老年人提供休息和活動條件,按各類規劃指標,同步建設好附屬環境綠地。為此通過行政立法和技術立法規定城市總體和各類用地的園林綠化指標、各類功能區域的綠地率,作為編制城市園林綠化規劃的依據,促進城市綠地系統規劃的實現。城市規劃測量中一個重要的內容就是測算建設工程項目的綠化面積、計算綠地率,以驗證建設工程項目綠化指標是否達到規劃設計要求。生產實踐中對于建設工程綠地面積的分類、標注、繪制、計算是一項煩瑣的工作,研究其自動化操作具有一定的現實意義。本文結合長沙市規劃竣工驗收測量生產中綠地面積測算的實際情況,分析了綠地面積自動化測算程序設計需求,在EPS平臺下利用VBS二次開發技術設計并實現了綠地面積自動分類、提取、統算及成果表自動繪制等程序。
EPS平臺是北京清華山維自主創新研發的集GIS數據采集、處理、建庫更新于一體的地理信息系統軟件[1]。如圖1所示,EPS平臺遵循從底至上的設計思想,可分為數據存儲、管理、通用及專業功能層四個功能區,利用模板定制、信息映射、二次開發等關鍵技術實現了GIS數據的高效采集、處理、入庫及應用維護,在國土規劃領域應用廣泛[2~6]。EPS二次開發方式主要有C++程序級及腳本功能級兩種:C++開發方式是在VC++6.0環境下利用EPS提供的SDL包進行開發;腳本開發常用的是VBScript,VBS分為有模腳本和無模腳本,其中無模腳本支持與視圖窗口交互操作。相比C++開發方式,腳本功能級二次開發具有簡單、易學、實用、開發周期短等優點,本文主要采用VBS腳本語言開發[7]。

圖1 EPS平臺框架
按《長沙市城市規劃管理技術規定》要求,建設工程綠地面積測算需根據地面綠地、生態停車場綠地、屋頂覆土種植綠地等不同地塊類型進行分類,核實各地塊面積測算邊界與測算系數,計算各地塊的綠化面積,進而下列公式計算建設工程項目的綠地率,以便規劃審批主管部門核對建設工程項目綠地率是否滿足規劃控制需求。
綠地率=綠地面積總和/建設工程項目用地面積×100%
根據長沙市建設工程綠地面積測算生產實踐,總結出綠地面積測算生產流程,如圖2所示。長沙市建設工程綠地面積測算內業數據處理使用的是北京清華山維EPS軟件,目前EPS 2018版軟件中竣工測量模塊對綠地面積測算存在以下問題:①根據綠化地塊分類分系數計算要求,需進行計算的地塊數量較多,內業數據處理工作量大;②涉及的綠地地塊圖形編輯、地塊標注及綠地面積計算表繪制等環節均由內業作業人員處理,未能有效地利用EPS軟件中腳本的圖形編輯操作、數據整理功能,自動化程度低,生產效率低;③易產生數據編輯錯誤與統計錯誤,影響成果質量。針對以上問題,為了提高作業效率和面積測算成果質量,在綠地地塊范圍線繪制、地塊注記、面積計算表繪制及地塊屬性提取、面積數據統計等環節開發設計綠地面積自動化測算程序。

圖2 綠地面積測算生產流程
針對地塊范圍線繪制和地塊注記問題,設計程序采用EPS腳本語言進行編寫處理,對地塊范圍線實現自動繪制,同時標注地塊編號。EPS腳本語言在EPS腳本編輯器下運行,腳本語言具體運行時解釋執行[8]。腳本采用目錄樹方式組織腳本,支持新建腳本分組、刪除腳本分組、新建腳本、刪除腳本、保存腳本和執行腳本等功能。腳本文件存放在工作臺面下,可以在菜單欄中單獨指定存放,方便運行[9]。
SSProcess是系統缺省定義的對象,是與EPS平臺交互的主要入口對象,SSProcess對象的功能包括工程管理、選擇集操作、圖形編輯操作、數據整理、數據轉換、坐標體系轉換和系統設置等[10]。通過SetSelectCondition函數,設置選擇集條件,選定滿足選擇集條件的地塊,運用ChangeSelectionObj函數將地塊面屬性轉換為范圍線屬性,轉換操作前關鍵需要對地塊進行分類構面,通過研究分析綠地面積計算細則,地面綠地有效面積與地面標高和最小覆土厚度有關,而綠化面積折算系數則根據屋面(頂板)標高與道路(地坪)的平均高差和地塊最小覆土厚度確定,對應綠地面積計算細則將綠化地塊按折算系數劃分不同類型,對不同類型及計算系數的地塊設定構面屬性,在竣工基礎地形圖基礎上按地塊構面屬性進行構面,通過腳本程序設置地塊面屬性選擇集條件,將選定的地塊面運用ChangeSelectionObj函數轉換為地塊范圍線,完成地塊范圍線繪制,核心程序代碼為:
SSProcess.ClearSelection ’
SSProcess.ClearSelectCondition
SSProcess.SelectFilter
SSProcess.ClearChangeSelectionParameter
SSProcess.SetChangeSelectionObjParameter "SSObj_Code=2", "SSObj_Code=1,SSObj_Color=COLORNO(258),SSObj_LineWidth=30" ’設置轉換條件為將地塊面屬性編碼=2的地塊面轉換為地塊范圍線,同時設置范圍線顏色和寬度
SSProcess.ChangeSelectionObj ’執行轉換
按地塊的類型及計算系數對地塊進行編號,并將編號標注于地塊內,首先需要提取地塊的屬性,各不同屬性的地塊按面積計算系數從大到小依次排列,相同屬性的地塊按順序編號依次遞增。標注地塊編號需新增注記要素,利用Function函數設定程序AddNote添加注記模塊工具包,在SSProcess對象中調用Function函數AddNote實現添加注記功能。Function函數需要設定AddNote的相關參數模式,包括注記分類號、注記內容、字體、注記高、注記寬、注記坐標等。調用Function函數AddNote時需參照參數模式設置標注屬性。最終生成的地塊范圍線及地塊標注如圖3所示。

圖3 地塊范圍線及地塊標注
建設工程綠地面積計算表內容包括地塊編號、地塊面積、地塊類別、有效系數、有效面積、總面積、單位等,運用解析法計算各地塊面積,為便于規劃審批主管部門執法,實際生產中通常將面積計算表繪制于建設工程綠地面積計算圖中。為實現綠地面積計算表自動化繪制,設計程序流程如圖4所示。

圖4 自動化繪制程序設計流程
綠地面積計算表自動化繪制的關鍵環節是繪制表格框架與地塊屬性數據填充。表格框架繪制首先需要確定表格參數,其次是要添加空間線到新圖形對象。在不同比例尺成圖中,表格參數也不同,通過對比分析,總結出在1∶250、1∶500比例尺成圖中表格框架的參數;通過Function函數設定AddLine程序添加空間線模塊工具包,根據表格參數調用Function函數AddLine程序繪制表格。地塊屬性數據填充可利用地塊面積計算系數設置選擇集條件篩選綠地地塊,提取對應地塊的地塊編號、地塊類型、地塊面積等屬性數據,調用AddNote程序將提取的屬性數據按地塊編號對應填充至綠地面積計算表中,完成地塊屬性數據填充。同時匯總所有地塊面積及有效綠地面積,計算地塊總面積與有效綠地總面積,填充至綠地面積計算表對應匯總項。程序運行生成綠地面積計算表如表1所示。

綠地面積計算表 表1
通過程序設計,生產實踐中僅需在基礎地形圖上按照計算細則確定各地塊面積計算邊界,對各地塊按照“相同計算系數構面屬性一致”原則進行構面處理后,運行自動化繪制程序,即可完成地塊范圍線繪制、地塊編號注記、綠地面積計算表繪制及地塊屬性數據填充與統計,將腳本管理器中的自動化繪制程序腳本添加至菜單工具欄,便于生產實踐中對程序進行調用。
本文緊密結合長沙市城市規劃管理中綠地面積測算生產實際,提出了目前綠地面積測算中內業數據處理存在的一些基本問題,針對相應問題分析總結了自動化程序設計需求,利用EPS平臺二次開發技術設計并實現了綠地地塊范圍線的繪制、地塊分類、地塊編號注記、地塊面積屬性提取、綠地面積計算表繪制、地塊屬性填充與統計等系列自動化繪制程序,實踐證明這一系列自動化繪制與面積測算過程的實現在很大程度上減少了內業處理的工作量,減少了人為編輯錯誤的概率,提高了內業數據處理工作效率,更確保了產品的成果質量。通過對綠地面積測算自動化繪制程序設計的探索,可利用EPS平臺二次開發技術對涉及面積計算的測繪工作領域進行實際生產環節的程序設計及改進,如國土三調、房產實測繪等生產實踐中,將具體的內業數據處理環節通過自動化程序處理,為大數據的信息自動化處理提供基礎技術支撐。