王真立,吳子為
(廣州市城市規(guī)劃勘測設(shè)計研究院,廣東 廣州 510060)
城市規(guī)劃監(jiān)督測量是一項配合、保障城市規(guī)劃各部門各項內(nèi)容具體實施的基礎(chǔ)性工作,它在城市建設(shè)工程的設(shè)計、施工、竣工和運營管理環(huán)節(jié)起到不可或缺的作用,其主要內(nèi)容包括工程測圖、工程放線、工程驗收、工程違章等測量工作[1]。規(guī)劃監(jiān)督測量與其他工程測量最大的一個區(qū)別是規(guī)劃測量成果需要加入規(guī)劃路、用地紅線、擬征地界線、界址坐標(biāo)等相關(guān)規(guī)劃要素信息。生產(chǎn)實踐中規(guī)劃要素信息的標(biāo)注、繪制、計算是一項煩瑣的工作,研究其自動化操作具有一定的現(xiàn)實意義。本文結(jié)合廣州市規(guī)劃監(jiān)督測量生產(chǎn)中規(guī)劃要素繪制效率低下等問題,分析了生產(chǎn)過程中規(guī)劃要素自動化繪制需求,在EPS平臺下采用VBS二次開發(fā)技術(shù)設(shè)計并實現(xiàn)了一系列規(guī)劃要素自動化繪制程序。
EPS平臺是北京清華山維自主創(chuàng)新研發(fā)的集GIS數(shù)據(jù)采集、處理、建庫更新于一體的地理信息系統(tǒng)軟件[2]。如圖1所示,EPS平臺遵循從底至上的設(shè)計思想,可分為數(shù)據(jù)存儲、管理、通用及專業(yè)功能層四個功能區(qū),利用模板定制、信息映射、二次開發(fā)等關(guān)鍵技術(shù)實現(xiàn)了GIS數(shù)據(jù)的高效采集、處理、入庫及應(yīng)用維護,在國土規(guī)劃領(lǐng)域應(yīng)用廣泛[3~7]。EPS二次開發(fā)方式主要有 C++程序級及腳本功能級兩種:C++開發(fā)方式是在VC++6.0環(huán)境下利用EPS提供的SDL包進行開發(fā);腳本開發(fā)常用的是VBScript,VBS分為有模腳本和無模腳本,其中無模腳本支持與視圖窗口交互操作。相比C++開發(fā)方式,腳本功能級二次開發(fā)具有簡單、易學(xué)、實用、開發(fā)周期短等優(yōu)點,本文主要采用VBS腳本語言開發(fā)。
圖1 EPS平臺框架
規(guī)劃監(jiān)督測量中的規(guī)劃要素主要包括規(guī)劃路界線、征地界線、擬征地界線、境界線等,規(guī)劃界線由界址點確定,界址點分為圓弧點和非圓弧點,在規(guī)劃監(jiān)督測量成果中需要表示出界線界址點的點位、點號注記、坐標(biāo)等信息。根據(jù)廣州規(guī)劃監(jiān)督測量生產(chǎn)實踐,分析總結(jié)出規(guī)劃要素成果生成流程如圖2所示。廣州規(guī)劃監(jiān)督測量生產(chǎn)使用的是北京清華山維EPS軟件,目前EPS軟件規(guī)劃測量模塊對規(guī)劃要素自動化繪制還存在以下問題:①生成界址點、線、注記時未考慮圓弧點;②生成的界址線與界址點注記相互疊加;③界址點坐標(biāo)表不能一步生成,不能計算界線面積;④不能生成固定格式的Excel坐標(biāo)表。為了提高作業(yè)效率,針對規(guī)劃要素成果生成流程及以上問題,設(shè)計實現(xiàn)了一系列規(guī)劃要素自動化繪制程序。
圖2 規(guī)劃要素成果生成流程
如圖3所示,規(guī)劃界線BAC,以界址點A為例,對于A點點號注記問題,目前EPS采用的是固定偏移值XA,YA,當(dāng)BAC夾角θ在0°~360°變化時,A點注記可能會與界線BAC疊加,需要人工挪動注記。對于A點點號編號問題,當(dāng)A點為非圓弧點時直接注記A,當(dāng)A點為圓弧點時,注記由相鄰兩點的注記組成為“B,C”,而目前EPS繪制規(guī)劃界線時未考慮圓弧點的情況,當(dāng)規(guī)劃界線存在圓弧點時需要人工編號。
針對界址點注記與界線壓蓋問題,本文采用界線BAC夾角θ角平分線L上的一點S作為界址點A的注記位置,以避免與界線相交,如圖3所示。關(guān)鍵問題是如何根據(jù)BAC的坐標(biāo)及界址點注記大小求得注記位置S的坐標(biāo)(XS,YS)。根據(jù)線性代數(shù)幾何向量知識[8,9],可計算出角平分線向量AM,再根據(jù)向量AM與SA的方向向量e相等,可求得S點的坐標(biāo)值,起始界址點的標(biāo)注采用界線的末點作為第一點計算角平分線。
圖3 規(guī)劃界線示意圖
(1)
圓弧界址點繪制及其自動編號問題關(guān)鍵是判斷界址點類型,當(dāng)由委托方提供的界線生成規(guī)劃界線時,通過SSProcess.GetSelGeoPoint函數(shù)獲取界線點列及界址點類型PointType(128或129為圓弧點),考慮到程序的可擴展性,設(shè)計了腳本參數(shù)“編號的起始點點號、點號前綴、是否提取界址點坐標(biāo)到TXT文件、生成的規(guī)劃界線類型”,編寫了“選擇線生成界址點及注記”自動化繪制腳本,程序界面如圖4(a)。當(dāng)由委托方提供的界址點坐標(biāo)生成規(guī)劃界線時,本文通過點名判斷界址點類型,將點號中含有“中英文逗號、點號、橫杠或下劃杠”符號時默認界址點為圓弧點,通過讀取“點號X坐標(biāo)Y坐標(biāo)”格式數(shù)據(jù)的TXT文件,自動繪制并編號圓弧點,編寫了“讀取TXT坐標(biāo)文件生成規(guī)劃界線”腳本,程序界面如圖4(b)。最終生成的規(guī)劃界線如圖4(c)。
圖4規(guī)劃界線自動繪制
規(guī)劃監(jiān)督測量成果中基本都需要繪制界址點坐標(biāo)表規(guī)劃要素,按照廣州規(guī)劃監(jiān)督測量成果要求,界址點坐標(biāo)表需要包括界線面積、界線來源等信息,且需要將圓弧界址點與非圓弧界址點分開,如圖6(b)。另外,當(dāng)界址點超過一定數(shù)量時需要將坐標(biāo)表分列繪制,其次在生產(chǎn)實踐中還需生成固定格式的Excel坐標(biāo)報表。以上需求目前EPS坐標(biāo)表繪制功能均需要人工干預(yù),為了實現(xiàn)界址點坐標(biāo)表繪制自動化,設(shè)計程序流程如圖5所示。
根據(jù)以上流程及自定義的功能函數(shù),編寫了“坐標(biāo)表自動生成”腳本。自定義TXT坐標(biāo)文件內(nèi)容分兩部分:標(biāo)題部分,第一行為同一界址點在不同坐標(biāo)系統(tǒng)下的坐標(biāo)系統(tǒng)名稱,用一個或多個空格間隔,如“廣州坐標(biāo)1980西安坐標(biāo)”;數(shù)據(jù)部分,坐標(biāo)數(shù)據(jù)從第二行起,格式為“界址點點號X坐標(biāo)Y坐標(biāo)X坐標(biāo)Y坐標(biāo)……”,采用空格間隔。程序運行界面如圖6(a),界址點坐標(biāo)成果表如圖6(b),Excel坐標(biāo)報表如圖6(c)。
圖5 界址點坐標(biāo)表自動繪制程序設(shè)計
最終在EPS軟件中生成規(guī)劃要素自動化繪制工具條,方便生產(chǎn)作業(yè),如圖7所示。
圖7規(guī)劃要素自動繪制工具條
本文緊密結(jié)合廣州市規(guī)劃監(jiān)督測量生產(chǎn)實際,針對規(guī)劃要素繪制效率低下問題,分析總結(jié)了廣州市規(guī)劃要素繪制基本流程及關(guān)鍵問題,利用EPS平臺二次開發(fā)技術(shù),設(shè)計并實現(xiàn)了規(guī)劃界線生成及信息提取、界址點坐標(biāo)表自動生成、固定Excel報表輸出等系列規(guī)劃要素自動化繪制程序,實踐證明所設(shè)計并實現(xiàn)的規(guī)劃要素自動化繪制系列程序不僅提高了生產(chǎn)效率,而且減少了作業(yè)人員的犯錯概率,提高了規(guī)劃監(jiān)督測量成果的質(zhì)量。