馬云飛
(長(zhǎng)春市測(cè)繪院,吉林 長(zhǎng)春 130021)
日照測(cè)量是一種常見的測(cè)繪工程,是一種為規(guī)劃及土地主管部門提供科學(xué)、準(zhǔn)確的基礎(chǔ)信息而進(jìn)行的技術(shù)服務(wù)工作[1,2]。日照測(cè)量主要的測(cè)繪內(nèi)容包括測(cè)量建筑物室內(nèi)地坪、室外地面高程、建筑物高度、建筑層高、建筑物向陽面立面等,日照測(cè)量報(bào)告為日照測(cè)量工程所需提交的重要成果之一[3,4]。目前來說,日照測(cè)量的外業(yè)數(shù)據(jù)采集模式主要是采用GPS-RTK技術(shù)結(jié)合全站儀野外數(shù)字化測(cè)圖方法,內(nèi)業(yè)數(shù)據(jù)整理可使用EPS2008地理信息工作站對(duì)外業(yè)采集點(diǎn)位進(jìn)行平面圖、立面圖進(jìn)行繪制,并標(biāo)注正負(fù)零、房屋高度等信息。現(xiàn)階段日照測(cè)量報(bào)告編制作業(yè)模式多為手工填寫,參照日照測(cè)量平面圖及立面圖與Word文檔交互進(jìn)行編制,該方法效率低且極易出錯(cuò)。本文基于EPS2008地理信息工作站模板定制及腳本開發(fā)技術(shù),借助Microsoft Office的OLE組件研究并開發(fā)一套自動(dòng)化生成日照測(cè)量報(bào)告插件,與傳統(tǒng)的手動(dòng)輸入報(bào)告相比,該方法可極大提升生成日照測(cè)量報(bào)告的效率,并能避免人為填寫所造成的錯(cuò)誤,極大提高了作業(yè)的自動(dòng)化水平,除此之外,可利用正則表達(dá)式對(duì)相應(yīng)字段進(jìn)行檢查,以確保報(bào)告的規(guī)范性、完整性及統(tǒng)一性。
EPS2008地理信息工作站是一種集成了外業(yè)信息采集、內(nèi)業(yè)數(shù)據(jù)處理、制圖一體化的綜合性作業(yè)平臺(tái),該平臺(tái)由清華山維公司研發(fā)。EPS2008地理信息工作站平臺(tái)的優(yōu)點(diǎn)為信息化程度高、兼容度高、可擴(kuò)展性強(qiáng)、系統(tǒng)開放等。該平臺(tái)為用戶提供了二次開發(fā)接口,結(jié)合其模板定制技術(shù),可實(shí)現(xiàn)多種特定功能的定制目的。下文將說明EPS2008地理信息工作站的模板定制技術(shù)及腳本開發(fā)技術(shù)[5,6]。
模板是EPS2008地理信息工作站的基礎(chǔ),模板不但是數(shù)據(jù)標(biāo)準(zhǔn)化的有力保證,而且同時(shí)體現(xiàn)了生產(chǎn)與技術(shù)相分離的先進(jìn)理念[7,8]。EPS2008模板定義了數(shù)據(jù)的比例尺、坐標(biāo)系統(tǒng)、圖幅分幅方案、數(shù)據(jù)輸入輸出轉(zhuǎn)換對(duì)照、屬性數(shù)據(jù)結(jié)構(gòu)等內(nèi)容,描述了各種地物及注記,包括注記分類號(hào)、圖層、顏色、地物編碼、線型等信息。EPS2008地理信息工作站的模板表現(xiàn)形式上是一個(gè)數(shù)據(jù)庫文件,可用Access等數(shù)據(jù)庫類型軟件打開。模板定制是以某類工程遵循的技術(shù)標(biāo)準(zhǔn)為基準(zhǔn),通過模板語言在軟件內(nèi)置的模板中對(duì)該基準(zhǔn)進(jìn)行數(shù)字化、標(biāo)準(zhǔn)化、形式化的表達(dá),從而實(shí)現(xiàn)工程數(shù)據(jù)的規(guī)范化,為后期的數(shù)據(jù)處理、數(shù)據(jù)檢查做好前期的鋪墊工作。模板定制完成后,均存放在程序運(yùn)行目錄中的Templates子目錄下,之后即可以使用該模板進(jìn)行日照測(cè)量工作的基本要素定制以及相關(guān)圖件的繪制和編輯工作。
以目前所使用的建設(shè)工程模板為基礎(chǔ),為方便報(bào)告輸出,對(duì)建設(shè)模板下的房屋線、房屋實(shí)線、圖廓、棟號(hào)、正負(fù)零、房屋結(jié)構(gòu)層數(shù)注記、房屋高度注記分別定制相應(yīng)編碼,并定制日照測(cè)量報(bào)告Word模板,為自動(dòng)生成日照測(cè)量報(bào)告做好基礎(chǔ)工作。
EPS2008地理信息工作站支持兩類二次開發(fā)技術(shù),一是基于基礎(chǔ)庫的二次開發(fā),二是基于腳本類的二次開發(fā),前者主要使用C++編程語言進(jìn)行開發(fā),后者支持VBScript和JavaScript作為開發(fā)語言,本文采用VBScript語言開發(fā)自動(dòng)化生成日照測(cè)量報(bào)告插件。EPS2008二次開發(fā)提供了SSProcess對(duì)象,SSProcess對(duì)象是與EPS地理信息工作站交互的主要入口對(duì)象,SSProcess對(duì)象可調(diào)用EPS2008地理信息工作站平臺(tái)下許多功能強(qiáng)大的方法,使用系統(tǒng)提供的類方法時(shí),需要加上此類名[9,10]。
為解決自動(dòng)生成報(bào)告問題,本文使用VBScript腳本開發(fā)語言開發(fā)自動(dòng)生成報(bào)告插件,原理流程圖如圖1所示。本插件由圖面檢查腳本、棟號(hào)匹配腳本、自動(dòng)輸出報(bào)告腳本3個(gè)腳本組成。圖面檢查腳本的功能為根據(jù)圖形之間的拓?fù)潢P(guān)系,檢查圖面中出現(xiàn)的錯(cuò)誤。棟號(hào)匹配腳本的功能是將圖面中的正負(fù)零、房屋高度注記與棟號(hào)相互匹配,為下一步自動(dòng)生成報(bào)告打好基礎(chǔ)。在運(yùn)行圖面檢查腳本、棟號(hào)匹配腳本均無錯(cuò)誤提示的情況下,即可使用自動(dòng)生成報(bào)告腳本生成日照測(cè)量報(bào)告。
圖1 自動(dòng)化輸出日照測(cè)量報(bào)告插件原理流程圖
以EPS2008地理信息工作站平面圖繪制為例。圖面中各類地物均有其對(duì)應(yīng)編碼。本文以“建設(shè)工程模板”為基礎(chǔ),將日照測(cè)量中房屋線、房屋實(shí)線、圖廓、棟號(hào)、正負(fù)零、房屋結(jié)構(gòu)層數(shù)注記、房屋高度注記均定制對(duì)應(yīng)唯一編碼。房屋實(shí)線為整棟房屋的最外圍邊線,房屋實(shí)線應(yīng)包含一個(gè)或多個(gè)房屋面、一個(gè)棟號(hào)、一個(gè)正負(fù)零、一個(gè)或多個(gè)注記說明,并且不能缺失任何一項(xiàng)信息,一個(gè)房屋面還應(yīng)包含一個(gè)房屋結(jié)構(gòu)層數(shù)注記。圖面檢查腳本功能是根據(jù)上述圖形地物之間的拓?fù)潢P(guān)系對(duì)圖面進(jìn)行檢查,如缺失正負(fù)零檢查、缺失棟號(hào)檢查、缺失房屋線檢查、缺失房屋結(jié)構(gòu)層數(shù)注記、缺失房屋高度注記、存在多余正負(fù)零檢查、存在多余棟號(hào)檢查、棟號(hào)重復(fù)檢查、注記說明描述不合理檢查。若有上述檢查錯(cuò)誤發(fā)生,腳本會(huì)將錯(cuò)誤詳細(xì)信息提示給用戶,如圖2所示。圖面檢查腳本是自動(dòng)生成報(bào)告非常重要的一步,是規(guī)范化圖面、排除常見錯(cuò)誤的有效手段。
圖2 日照測(cè)繪平面圖及報(bào)錯(cuò)提醒
在圖面檢查步驟完成之后,還需將棟號(hào)信息寫入至正負(fù)零、房屋高度注記之中,即將兩者應(yīng)與棟號(hào)進(jìn)行匹配關(guān)聯(lián)。棟號(hào)匹配腳本提供兩種匹配關(guān)聯(lián)方式,分別是自動(dòng)匹配模式及手動(dòng)匹配模式。自動(dòng)匹配模式的原理是利用房屋實(shí)線應(yīng)包含棟號(hào)、正負(fù)零、房屋高度注記之間的拓?fù)潢P(guān)系,將房屋實(shí)線內(nèi)的正負(fù)零、房屋高度注記與房屋實(shí)線內(nèi)的棟號(hào)進(jìn)行匹配關(guān)聯(lián),操作簡(jiǎn)單,速度快,可對(duì)全圖進(jìn)行匹配操作。但有時(shí)會(huì)出現(xiàn)房屋實(shí)線面積較小,房屋高度注記需注記在房屋實(shí)線范圍外,用指示線標(biāo)注的情況。遇到此類情況需使用手動(dòng)匹配模式,在選擇手動(dòng)匹配模式下,同時(shí)框選圖面中的正負(fù)零、房屋高度注記、棟號(hào),即可將選中的棟號(hào)寫入正負(fù)零、房屋高度注記之中,完成棟號(hào)匹配任務(wù)。
在棟號(hào)匹配完成之后,即可使用生成報(bào)告腳本一鍵生成日照測(cè)量報(bào)告。根據(jù)日照測(cè)量平面圖中圖形地物之間的拓?fù)潢P(guān)系提取所需信息,對(duì)房屋實(shí)線編碼進(jìn)行檢索,提取實(shí)線中的房屋結(jié)構(gòu)信息、棟號(hào)信息,根據(jù)提取得到的棟號(hào)信息繼續(xù)檢索與之相匹配的正負(fù)零、房屋高度信息,將提取出的相關(guān)信息按日照測(cè)量報(bào)告格式進(jìn)行計(jì)算整理,輸出至定制的日照測(cè)量模板中,最后讀取圖廓中的工程名稱、測(cè)繪單位、工程位置、測(cè)繪時(shí)間等信息,將所讀取的信息填寫至日照測(cè)量模板首頁,從而完成生成日照測(cè)量報(bào)告的任務(wù),所生成報(bào)告如圖3所示。
圖3 日照測(cè)量報(bào)告
以某市某小區(qū)的日照測(cè)量項(xiàng)目為例進(jìn)行說明。工程的任務(wù)是測(cè)繪范圍線內(nèi)小區(qū)建筑物的平面圖及指定的立面圖、建筑物的樓高正負(fù)零以及測(cè)量建筑物之間的間距。目前常用的作業(yè)模式為使用GPS-RTK技術(shù)在范圍線內(nèi)布設(shè)合適數(shù)量的測(cè)量控制點(diǎn),使用全站儀數(shù)字化成圖方式對(duì)所需信息進(jìn)行測(cè)繪。外業(yè)數(shù)據(jù)采集任務(wù)完成后,使用EPS2008地理信息工作站進(jìn)行內(nèi)業(yè)繪制成圖。成圖完畢后,首先使用圖面檢查腳本對(duì)圖面中的壓蓋錯(cuò)誤、包含關(guān)系錯(cuò)誤、注記不規(guī)范錯(cuò)誤、缺失關(guān)鍵信息錯(cuò)誤進(jìn)行檢查,發(fā)現(xiàn)錯(cuò)誤需核實(shí)并查明錯(cuò)誤原因并逐條進(jìn)行修改。之后使用自動(dòng)匹配模式使棟號(hào)與相應(yīng)的正負(fù)零、房屋高度注記進(jìn)行匹配,在自動(dòng)匹配模式不能完成的情況下,使用手動(dòng)匹配模式對(duì)棟號(hào)與相應(yīng)的正負(fù)零、房屋高度注記進(jìn)行匹配。在完成棟號(hào)匹配步驟之后,即可使用日照測(cè)量報(bào)告生成腳本一鍵生成所需報(bào)告,生成的報(bào)告仍需與圖面測(cè)繪信息進(jìn)行檢查核實(shí),以防止遺漏丟失某些重要信息?;贓PS2008地理信息工作站自動(dòng)化生成日照測(cè)量報(bào)告插件界面簡(jiǎn)潔,操作簡(jiǎn)單,無特殊注意事經(jīng)實(shí)例驗(yàn)證,使用該插件輸出報(bào)告準(zhǔn)確無誤,驗(yàn)證了本插件的可行性及可靠性。自動(dòng)化生成日照測(cè)量報(bào)告插件如圖4所示。
圖4 自動(dòng)化生成日照測(cè)量報(bào)告插件
本文探索了基于EPS2008地理信息工作站自動(dòng)化生成日照測(cè)量報(bào)告的方法,并使用VBScript腳本語言開發(fā)了生成報(bào)告插件。該插件具有圖面檢查、棟號(hào)匹配、自動(dòng)輸出報(bào)告三項(xiàng)功能,并且操作簡(jiǎn)單,穩(wěn)定可靠,無特殊注意事項(xiàng)。使用該插件進(jìn)行報(bào)告輸出可極大減輕內(nèi)業(yè)作業(yè)人員的工作量,提升作業(yè)的自動(dòng)化水平,減少了人工干預(yù),同時(shí)又能保證數(shù)據(jù)的準(zhǔn)確性和可靠性,可供業(yè)內(nèi)人士使用參考。