韓葵,胡朝輝,盧永華(深圳市勘察研究院有限公司,廣東深圳 518026)
基于模板引擎驅(qū)動(dòng)的地下管線數(shù)據(jù)采集-處理一體化系統(tǒng)
韓葵?,胡朝輝,盧永華
(深圳市勘察研究院有限公司,廣東深圳 518026)
摘 要:隨著城市地下空間的發(fā)展,城市地下管線普查、規(guī)劃越來(lái)越受重視,城市地下管線探測(cè)成為基礎(chǔ)測(cè)繪的重點(diǎn)。為了適應(yīng)城市中發(fā)展越來(lái)越多樣化的管線探測(cè)需求,改善傳統(tǒng)的內(nèi)外業(yè)作業(yè)方式,本文設(shè)計(jì)并開(kāi)發(fā)了基于模板引擎驅(qū)動(dòng)的地下管線數(shù)據(jù)采集-處理一體化系統(tǒng),系統(tǒng)為不同地方標(biāo)準(zhǔn)、不同探測(cè)目的管線項(xiàng)目提供了可擴(kuò)展、可定制、適應(yīng)性強(qiáng)的管線探測(cè)作業(yè)工具,提高管線項(xiàng)目數(shù)據(jù)生產(chǎn)效率和自動(dòng)化水平,保障數(shù)據(jù)生產(chǎn)質(zhì)量。
關(guān)鍵詞:模板引擎;管線;一體化;數(shù)據(jù)生產(chǎn);自動(dòng)化
隨著城市的發(fā)展,城市地下空間越來(lái)越受重視,城市地下管線探測(cè)成為城市基礎(chǔ)測(cè)繪的重點(diǎn)。近年來(lái),各類項(xiàng)目需求的發(fā)展,傳統(tǒng)固定成果格式的綜合管線探測(cè)項(xiàng)目逐漸轉(zhuǎn)變?yōu)橐阅愁惞芫€為主的專業(yè)管線探測(cè)項(xiàng)目,數(shù)據(jù)采集方式、成果格式都提出了新的要求,特別是不同專業(yè)類型的管線,由于建設(shè)單位[7]和資料用途不同,產(chǎn)生了大量新的成果格式,對(duì)管線探測(cè)數(shù)據(jù)處理與自動(dòng)化生產(chǎn)提出了新的要求。同時(shí),與管線有關(guān)的,如管道檢測(cè)等新興項(xiàng)目在深圳等大城市的大規(guī)模開(kāi)展,增加了多種成果格式,且計(jì)算量大,成果表多,圖面信息專業(yè)性強(qiáng),現(xiàn)有的管線處理軟件已無(wú)法滿足生產(chǎn)要求。
為適應(yīng)不同數(shù)據(jù)標(biāo)準(zhǔn),在同一平臺(tái)下滿足各類管線項(xiàng)目數(shù)據(jù)采集信息化、數(shù)據(jù)處理自動(dòng)化、成果導(dǎo)出多樣化的生產(chǎn)需求,本文設(shè)計(jì)并實(shí)現(xiàn)了基于模板引擎驅(qū)動(dòng)的地下管線數(shù)據(jù)采集-處理一體化系統(tǒng),以匹配各種數(shù)據(jù)標(biāo)準(zhǔn)的系統(tǒng)模板,創(chuàng)建與之匹配的程序界面,結(jié)合可定制的數(shù)據(jù)處理邏輯,實(shí)現(xiàn)軟件的自適應(yīng)性,解決不同類型項(xiàng)目數(shù)據(jù)生產(chǎn)軟件差異化的問(wèn)題,完成地下管線相關(guān)項(xiàng)目的數(shù)據(jù)生產(chǎn)任務(wù)。
目前,地下管線項(xiàng)目數(shù)據(jù)處理的軟件多以固定的數(shù)據(jù)標(biāo)準(zhǔn)為數(shù)據(jù)接入口,當(dāng)有新的需求時(shí),則通過(guò)增加數(shù)據(jù)接入口格式與增加成果輸出格式的方式,開(kāi)發(fā)新的工具條、界面視圖、數(shù)據(jù)處理邏輯,以實(shí)現(xiàn)管線數(shù)據(jù)生產(chǎn)的自動(dòng)化與批量化。
2.1堆砌式主要特點(diǎn)
(1)開(kāi)發(fā)平臺(tái)統(tǒng)一,系統(tǒng)框架不統(tǒng)一、可擴(kuò)展性差; (2)工具條和視圖任意疊加,且相互獨(dú)立,缺乏系統(tǒng)性;
(3)適應(yīng)性差,使用范圍局限,推廣性差; (4)開(kāi)發(fā)簡(jiǎn)單。
2.2并列式主要特點(diǎn)
(1)開(kāi)發(fā)平臺(tái)不統(tǒng)一,系統(tǒng)性差;
(2)針對(duì)性強(qiáng),適應(yīng)性差,不具推廣性;
(3)界面繼承性差,不利于用戶學(xué)習(xí)使用;
(4)開(kāi)發(fā)簡(jiǎn)單。
堆砌式和并列式具有天然的缺陷,導(dǎo)致目前新類型、新需求的管線項(xiàng)目生產(chǎn)中,無(wú)法滿足自動(dòng)化生產(chǎn)的需求。尤其是,管線項(xiàng)目的迅速發(fā)展,沒(méi)有內(nèi)外業(yè)一體化的、可擴(kuò)充的管線數(shù)據(jù)生產(chǎn)軟件,導(dǎo)致外業(yè)記錄、內(nèi)業(yè)錄入、數(shù)據(jù)處理不能基于同一數(shù)據(jù)庫(kù),數(shù)據(jù)格式多,圖屬一致性差。
為適應(yīng)目前多需求、多類型的管線項(xiàng)目生產(chǎn)需求,本文提出了基于模板驅(qū)動(dòng)的地下管線數(shù)據(jù)采集-處理一體化系統(tǒng)。系統(tǒng)以統(tǒng)一的可擴(kuò)展框架作為內(nèi)核,以模板作為用戶定制基礎(chǔ),以模板引擎、數(shù)據(jù)模型作為視圖轉(zhuǎn)化、數(shù)據(jù)處理的動(dòng)力引擎,根據(jù)不同項(xiàng)目、不同需求,生成不同的用戶定制界面、成果定制格式、數(shù)據(jù)處理定制邏輯,同時(shí),系統(tǒng)為用戶提供豐富的圖屬一致性操作,徹底解決管線圖屬操作不一致的問(wèn)題。
同時(shí),系統(tǒng)注重外業(yè)數(shù)據(jù)采集和內(nèi)業(yè)數(shù)據(jù)處理一致性,圖形操作與屬性操作的一致性,解決管線數(shù)據(jù)調(diào)查、測(cè)量、成圖、成表的作業(yè)流程分離問(wèn)題,力求真正實(shí)現(xiàn)地下管線探測(cè)數(shù)據(jù)成果從始至終全電子化、信息化。
系統(tǒng)設(shè)計(jì)分為三個(gè)部分,一是基于Android平臺(tái)的數(shù)據(jù)采集終端[9],二是基于Windows PC的數(shù)據(jù)處理終端,三是基于Web服務(wù)的數(shù)據(jù)同步服務(wù)端,網(wǎng)絡(luò)數(shù)據(jù)庫(kù)采用開(kāi)源數(shù)據(jù)庫(kù)Mysql,數(shù)據(jù)處理邏輯采用PHP語(yǔ)言開(kāi)發(fā)。
系統(tǒng)通過(guò)Android平板電腦將采集的數(shù)據(jù)利用無(wú)線網(wǎng)絡(luò)實(shí)時(shí)傳輸至Web數(shù)據(jù)服務(wù)器進(jìn)行保存;Web服務(wù)器實(shí)時(shí)對(duì)Android客戶端傳輸?shù)臄?shù)據(jù)進(jìn)行分析、統(tǒng)計(jì)、檢查,并發(fā)送回Android客戶端,有外業(yè)作業(yè)人員及時(shí)對(duì)數(shù)據(jù)進(jìn)行驗(yàn)證、修改;Windows PC客戶端通過(guò)從Web數(shù)據(jù)庫(kù)中獲取數(shù)據(jù),并進(jìn)行數(shù)據(jù)處理,按照所需格式導(dǎo)出成果。Android客戶端、Web數(shù)據(jù)庫(kù)、Windows PC客戶端均采用同一數(shù)據(jù)視圖模板,建立模板驅(qū)動(dòng)引擎,實(shí)現(xiàn)統(tǒng)一數(shù)據(jù)格式的數(shù)據(jù)操作。
3.1基于模板驅(qū)動(dòng)的系統(tǒng)總體設(shè)計(jì)與系統(tǒng)架構(gòu)
管線類項(xiàng)目數(shù)據(jù)生產(chǎn)主要分兩大環(huán)節(jié):數(shù)據(jù)采集與數(shù)據(jù)處理,系統(tǒng)根據(jù)數(shù)據(jù)采集在野外,數(shù)據(jù)處理在室內(nèi)的區(qū)別,設(shè)計(jì)分兩大板塊:數(shù)據(jù)采集終端(Pad端)與數(shù)據(jù)處理端(PC機(jī)端),兩大板塊通過(guò)共用系統(tǒng)定制模板與數(shù)據(jù)庫(kù)服務(wù)端,實(shí)現(xiàn)數(shù)據(jù)實(shí)時(shí)交換、數(shù)據(jù)質(zhì)量實(shí)時(shí)跟蹤。如圖1所示:
圖1 基于模板驅(qū)動(dòng)的系統(tǒng)架構(gòu)圖
3.2邏輯模板
3.2.1模板表達(dá)
模板以XML數(shù)據(jù)庫(kù)的形式存儲(chǔ),結(jié)合XML節(jié)點(diǎn)的層級(jí)包含和模板意圖的表達(dá),形成系統(tǒng)可解譯的視圖(View)或過(guò)程(Function)。視圖是以操作界面的形式,與用戶進(jìn)行交互,過(guò)程則是以功能函數(shù)的形式,處理用戶與系統(tǒng)交互過(guò)程中的事務(wù)請(qǐng)求。
3.2.2 模板創(chuàng)建
系統(tǒng)分別為一般作業(yè)人員和高級(jí)技術(shù)人員提供了兩種截然不同的模板創(chuàng)建方式。針對(duì)一般作業(yè)人員,系統(tǒng)以交互視圖的形式,通過(guò)界面的點(diǎn)選、錄入等方式創(chuàng)建模板;針對(duì)高級(jí)技術(shù)人員,系統(tǒng)則提供模板代碼編輯窗口,通過(guò)直接輸入、編輯模板代碼的方式創(chuàng)建新的模板。其中視圖模板和簡(jiǎn)單的過(guò)程模板可由界面交互的方式創(chuàng)建,算法復(fù)雜的過(guò)程模板,則只能通過(guò)直接編寫(xiě)模板代碼的方式創(chuàng)建。圖2為兩種模板創(chuàng)建方式的視圖:
圖2 兩種模板創(chuàng)建方式的視圖
3.2.3模板分類
模板主要分為視圖模板(界面邏輯模板)和過(guò)程模板(數(shù)據(jù)檢查邏輯模板、數(shù)據(jù)處理邏輯模板、數(shù)據(jù)統(tǒng)計(jì)邏輯模板、數(shù)據(jù)交換邏輯模板)。
(1)界面邏輯模板
不同數(shù)據(jù)標(biāo)準(zhǔn)最直接表現(xiàn)為數(shù)據(jù)錄入界面的不同,用戶根據(jù)項(xiàng)目需求,建立適應(yīng)該項(xiàng)目數(shù)據(jù)格式的視圖模板,系統(tǒng)則根據(jù)模板統(tǒng)一管理機(jī)制,利用模板引擎,驅(qū)動(dòng)生成與之相匹配的錄入界面、錄入提示邏輯、數(shù)據(jù)存儲(chǔ)的數(shù)據(jù)庫(kù)結(jié)構(gòu),從而保證操作者按照項(xiàng)目數(shù)據(jù)標(biāo)準(zhǔn)生產(chǎn)數(shù)據(jù)。
(2)數(shù)據(jù)檢查邏輯模板
不同類型的數(shù)據(jù),檢查類型、檢查重點(diǎn)不同,按照界面邏輯模板所建立起的數(shù)據(jù)字段信息,系統(tǒng)自動(dòng)生成或用戶通過(guò)設(shè)置定制,形成滿足用戶需求的檢查邏輯模板,系統(tǒng)可根據(jù)檢查邏輯模板完成數(shù)據(jù)的拓?fù)錂z查、邏輯檢查、標(biāo)準(zhǔn)化檢查、自定義綜合檢查。
(3)數(shù)據(jù)處理邏輯模板
管線數(shù)據(jù)處理包含圖形數(shù)據(jù)處理和屬性數(shù)據(jù)處理,通過(guò)用戶自定數(shù)據(jù)處理邏輯,可以達(dá)到設(shè)定條件,批量化處理數(shù)據(jù)的目的,如批量移動(dòng)管線點(diǎn)號(hào)、圖形縮編、批量篩選、批量管線符號(hào)替換等。
(4)數(shù)據(jù)統(tǒng)計(jì)邏輯模板
圍繞管線、管點(diǎn)數(shù)據(jù)的統(tǒng)計(jì)包括類型統(tǒng)計(jì)、數(shù)量統(tǒng)計(jì)等,用戶根據(jù)界面邏輯模板字段,建立數(shù)據(jù)統(tǒng)計(jì)邏輯模板,完成屬性數(shù)據(jù)和圖形數(shù)據(jù)的各項(xiàng)統(tǒng)計(jì)。
(5)數(shù)據(jù)交換邏輯模板
界面邏輯模板解決的是數(shù)據(jù)錄入的統(tǒng)一,成果導(dǎo)出邏輯模板解決的是利用已錄入的統(tǒng)一數(shù)據(jù)生成各類所需數(shù)據(jù)成果,包括定義標(biāo)注字段、標(biāo)注類型、圖形比例尺、圖層劃分、數(shù)據(jù)表格所需字段、屬性數(shù)據(jù)格式(Excel、Word、Mdb等)、圖形數(shù)據(jù)格式(dxf、dwg、shp、mdb等),成果格式完全由自定義的模板控制。
3.3模板驅(qū)動(dòng)引擎(模板控制器與模型控制器)
系統(tǒng)三個(gè)部分,采用三種平臺(tái),但模板控制器和模型控制器保持采用“接口-虛類-實(shí)體類”的形式設(shè)計(jì)開(kāi)發(fā),模板控制器主要完成模板的生成、調(diào)用與管理,模型控制器主要執(zhí)行模板所記錄的數(shù)據(jù)邏輯,包括生成用戶操作視圖、數(shù)據(jù)庫(kù)存儲(chǔ)結(jié)構(gòu),執(zhí)行數(shù)據(jù)處理、統(tǒng)計(jì)分析、成果導(dǎo)出等具體事務(wù),是用戶意圖的主要執(zhí)行者,是整個(gè)系統(tǒng)邏輯處理的核心。
4.1基于Android的數(shù)據(jù)采集Pad
Android平臺(tái)上設(shè)計(jì)開(kāi)發(fā)的數(shù)據(jù)采集Pad主要完成野外屬性數(shù)據(jù)錄入、數(shù)據(jù)傳遞、地形圖瀏覽、百度地圖導(dǎo)航、草圖繪制、野外行駛路線及操作行為跟蹤等任務(wù),所記錄的所有數(shù)據(jù)通過(guò)無(wú)線網(wǎng)絡(luò)(3G或4G網(wǎng)絡(luò))上傳至Web數(shù)據(jù)庫(kù)。如圖3所示:
圖3 Pad端的模板引擎架構(gòu)
4.2基于Mysql數(shù)據(jù)庫(kù)的Web服務(wù)
Mysql數(shù)據(jù)庫(kù)服務(wù)通過(guò)PHP語(yǔ)言利用項(xiàng)目模板生成與項(xiàng)目數(shù)據(jù)相匹配的數(shù)據(jù)庫(kù),并根據(jù)數(shù)據(jù)處理邏輯模板,生成數(shù)據(jù)庫(kù)拓?fù)錂z查觸發(fā)器、數(shù)據(jù)統(tǒng)計(jì)觸發(fā)器。
同時(shí),Web服務(wù)還兼顧消息分發(fā)與任務(wù)分發(fā),將PC端的數(shù)據(jù)處理消息、Web服務(wù)端的數(shù)據(jù)自檢消息及時(shí)分發(fā)至PAD端,另將PAD端的數(shù)據(jù)更新、刪除、修改等信息、Web服務(wù)端的自動(dòng)識(shí)別消息以及設(shè)備連接狀態(tài)信息及時(shí)分發(fā)至PC端。項(xiàng)目管理人員的項(xiàng)目管理任務(wù)也是通過(guò)Web服務(wù)端及時(shí)分發(fā)給PC端和PAD端的生產(chǎn)技術(shù)人員。
4.3基于.net 4.0的數(shù)據(jù)處理PC
基于.net 4.0平臺(tái)的c#語(yǔ)言進(jìn)行PC端的開(kāi)發(fā),充分利用開(kāi)源資源NPOI、netdxf、GDAL等開(kāi)源類庫(kù),開(kāi)發(fā)出不依賴CAD平臺(tái)和Office平臺(tái)的管線專用數(shù)據(jù)處理平臺(tái)。
PC端主要完成Android端的數(shù)據(jù)接收、數(shù)據(jù)統(tǒng)計(jì)、數(shù)據(jù)處理、數(shù)據(jù)協(xié)同、成果導(dǎo)出、數(shù)據(jù)建庫(kù)等任務(wù),是系統(tǒng)的數(shù)據(jù)處理中心和管理中心。如圖4所示:
圖4 PC端的模板架構(gòu)
系統(tǒng)主界面分為兩部分:Android端和PC端,圖5、圖6為基于界面邏輯模板hk1.xml和mmt.xml模板的PAD調(diào)查屬性輸入界面和PC端的主視圖界面。
5.1hk1.xml模板的內(nèi)容
<Tpl>
<Setting><TplName name="tplName" value="hk1"></ TplName><TplCreator name =" tplCreator" value ="韓葵"></ Tpl-Creator>
<TplRemark name="tplRemark" value="測(cè)試2"></ Tpl-Remark>
<TplControlNum name =" tplControlNum" value ="3"></ TplControlNum>
<TplDate name =" tplDate" value ="2014/12/3"></ Tpl-Date>
<TplPipeClass name="tplPipeClass">
<val name="pipeClass" value="電力" classSymple=" DL" />
……
<val name="pipeClass" value="給水" classSymple="JL" />
</ TplPipeClass></ Setting><TplFields>
<Field name="MSFS" label="埋設(shè)方式" tapIndex="5" class="2" types="3" controlClass ="3" isNull ="0" isShow=" 1">
<val name =" fieldVal" value ="直埋" tapIndex ="0" class="全部" />
……</ Field>
</ TplFields>
</ Tpl>
5.2mmt.xml模板的內(nèi)容
<Tpl>
<Setting><TplName name="tplName" value="mmT"></ TplName><TplCreator name =" tplCreator" value ="韓葵"></ Tpl-Creator>
<TplRemark name = " tplRemark" value = "慢慢挑"></ TplRemark>
<TplControlNum name =" tplControlNum" value ="3"></ TplControlNum>
<TplDate name =" tplDate" value ="2015/1/13"></ Tpl-Date>
<TplPipeClass name="tplPipeClass">
<val name="pipeClass" value="電力" classSymple=" DL" />
……
</ TplPipeClass></ Setting><TplFields>
<Field name="p_start" label ="預(yù)編點(diǎn)號(hào)" tapIndex ="0" class="3" types="3" controlClass ="1" isNull ="0" isShow=" 1" />
……
</ TplFields>
</ Tpl>
圖5 hk1.xml和mmt.xml模板在PAD端的界面視圖
圖6 hk1.xml和mmt.xml模板在PC端的界面視圖
基于模板引擎驅(qū)動(dòng)的地下管線數(shù)據(jù)采集-處理一體化系統(tǒng),更適合當(dāng)前多類型、多成果需求的管線項(xiàng)目。項(xiàng)目作業(yè)人員不需要開(kāi)發(fā)新的工具條和界面視圖,就可以根據(jù)項(xiàng)目類型和業(yè)主要求進(jìn)行任意定制,通過(guò)自定義錄入界面、自定義查詢、編輯、檢查、統(tǒng)計(jì)、導(dǎo)出成果等模板,完成項(xiàng)目數(shù)據(jù)采集、處理以及入庫(kù)等任務(wù)。
該系統(tǒng)的設(shè)計(jì)實(shí)現(xiàn)不僅對(duì)作業(yè)效率有了明顯的提高,系統(tǒng)通過(guò)對(duì)用戶數(shù)據(jù)操作行為的跟蹤,能夠很好記錄用戶的行為習(xí)慣,分析產(chǎn)生數(shù)據(jù)問(wèn)題的原因,將數(shù)據(jù)采集、處理過(guò)程中人為錯(cuò)誤率降至最低,提高數(shù)據(jù)生產(chǎn)質(zhì)量。
參考文獻(xiàn)
[1] 常洲,戴相喜,王華峰.地下管線內(nèi)外業(yè)一體化探測(cè)技術(shù)研究及實(shí)現(xiàn)[J].測(cè)繪通報(bào),2011(7):50~53.
[2] 樊靜,周運(yùn)斌.基于Android的地下管線竣工測(cè)量信息采集系統(tǒng)開(kāi)發(fā)與實(shí)現(xiàn)[J].測(cè)繪通報(bào),2013(S):260~263.
[3] 史廷玉,黃勇,張志全.面向多種應(yīng)用主題的地下管線綜合數(shù)據(jù)組織方法的研究[J].測(cè)繪通報(bào),2005(1):35~38.
[4] 李學(xué)軍,洪立波.城市地下管線探測(cè)與管理技術(shù)的發(fā)展及應(yīng)用[J].城市勘測(cè),2010(4):5~11.
[5] 宋衛(wèi)明,苑志剛.管線探測(cè)數(shù)據(jù)內(nèi)業(yè)處理流程優(yōu)化[J].測(cè)繪通報(bào),2013(S):276~277.
[6] 周京春,江貽芳,王貴武.地下管線技術(shù)標(biāo)準(zhǔn)數(shù)字化實(shí)施探討[J].測(cè)繪通報(bào),2010(2):56~59.
[7] 陳光.地下管線三維CAD與信息管理軟件開(kāi)發(fā)[D].西安:西安理工大學(xué),2008.
[8] 李杰.城市地下管線技術(shù)及質(zhì)量控制研究[D].北京:中國(guó)地質(zhì)大學(xué)(北京),2013.
[9] 劉國(guó)安.平板電腦的地下管線數(shù)據(jù)采集系統(tǒng)應(yīng)用[J].測(cè)繪通報(bào),2013(S):151~160.
The System for Collection and Deeling Pipe Data Based By Template Engine
Han Kui,Hu Chaohui,Lu Yonghua
(ShenZhen Investigation & Research Institute Co.,Ltd,ShenZhen 518026,China)
Abstract:With the development of urban underground space,urban underground pipeline survey,planning more and more attention,urban underground pipeline detection has become the focus of basic surveying and mapping.In order to adapt to the development of the city,to improve the traditional method of internal and external operations,this paper designs and develops an integrated system of underground pipeline data acquisition and processing based on template engine driven.
Key words:template engine;pipeline;integration;data production;automation
文章編號(hào):1672-8262(2015)05-47-05中圖分類號(hào):P208.2
文獻(xiàn)標(biāo)識(shí)碼:A
收稿日期:?2015—06—23
作者簡(jiǎn)介:韓葵(1987—),男,工程師,主要從事GIS應(yīng)用開(kāi)發(fā)以及管線探測(cè)、檢測(cè)等方面的技術(shù)工作。