習(xí)永強(qiáng),李天文,程晨健
(西北大學(xué) 城市與環(huán)境學(xué)院,陜西西安 710127)
現(xiàn)階段,今年是我國(guó)十二五規(guī)劃的第一年,水利建設(shè)作為今年的中央一號(hào)文件,是發(fā)展的重中之重。對(duì)土石壩的安全評(píng)價(jià)作為水利建設(shè)一個(gè)重要組成部分,也就成為現(xiàn)階段的一次重要任務(wù)。為加強(qiáng)土石壩安全管理,保障人民生命財(cái)產(chǎn)安全和建設(shè)事業(yè)的順利發(fā)展,中央政府和地方各級(jí)政府加強(qiáng)了水利信息化的建設(shè)。[1]基于 GIS的土石壩安全監(jiān)測(cè)會(huì)商系統(tǒng)正是水利信息化建設(shè)的一部分,該系統(tǒng)可以對(duì)土石壩及水庫(kù)的一系列信息進(jìn)行采集、存儲(chǔ)、處理以及模擬等,除了這些基本功能之外,會(huì)商系統(tǒng)區(qū)別于其他系統(tǒng)最重要的一點(diǎn)是該系統(tǒng)可以實(shí)現(xiàn)多個(gè)專家同時(shí)進(jìn)行在線評(píng)估,然后由會(huì)議主持人總結(jié)所有專家的評(píng)估得出相關(guān)結(jié)論,以對(duì)土石壩的安全風(fēng)險(xiǎn)管理起到?jīng)Q策支持作用。[2]
ASP是A ctive Server Page的縮寫(xiě),意為“動(dòng)態(tài)服務(wù)器頁(yè)面”。ASP是微軟公司開(kāi)發(fā)的代替 CGI腳本程序的一種應(yīng)用,它可以與數(shù)據(jù)庫(kù)和其它程序進(jìn)行交互,是一種簡(jiǎn)單、方便的編程工具。ASP的網(wǎng)頁(yè)文件的格式是.asp,現(xiàn)在常用于各種動(dòng)態(tài)網(wǎng)站中,ASP是一種服務(wù)器端腳本編寫(xiě)環(huán)境,可以用來(lái)創(chuàng)建和運(yùn)行動(dòng)態(tài)網(wǎng)頁(yè)或 Web應(yīng)用程序。[3]ASP網(wǎng)頁(yè)可以包含 HTML標(biāo)記、普通文本、腳本命令以及 COM組件等。利用ASP可以向網(wǎng)頁(yè)中添加交互式內(nèi)容(如在線表單),也可以創(chuàng)建使用 HTML網(wǎng)頁(yè)作為用戶界面的 web應(yīng)用程序。
SQL是英文 Structured Query Language的縮寫(xiě),意思為結(jié)構(gòu)化查詢語(yǔ)言。SQL語(yǔ)言的主要功能就是同各種數(shù)據(jù)庫(kù)建立聯(lián)系,進(jìn)行溝通。按照 ANSI(美國(guó)國(guó)家標(biāo)準(zhǔn)協(xié)會(huì))的規(guī)定,SQL被作為關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)的標(biāo)準(zhǔn)語(yǔ)言。SQL語(yǔ)句可以用來(lái)執(zhí)行各種各樣的操作,例如更新數(shù)據(jù)庫(kù)中的數(shù)據(jù),從數(shù)據(jù)庫(kù)中提取數(shù)據(jù)等。目前,絕大多數(shù)流行的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),如 Oracle,Sybase,Microsoft SQL Server,Access等都采用了SQL語(yǔ)言標(biāo)準(zhǔn)。[4]雖然很多數(shù)據(jù)庫(kù)都對(duì) SQL語(yǔ)句進(jìn)行了再開(kāi)發(fā)和擴(kuò)展,但是包括 Select,Insert,Update,Delete,Create,以及 Drop在內(nèi)的標(biāo)準(zhǔn)的 SQL命令仍然可以被用來(lái)完成幾乎所有的數(shù)據(jù)庫(kù)操作。
該系統(tǒng)主要功能有:
(1)熱點(diǎn)屬性信息的查詢
(2)歷史水位信息的動(dòng)態(tài)模擬顯示
(3)專家異地會(huì)商
(4)會(huì)議主持(管理員)
系統(tǒng)通過(guò)這些功能,實(shí)現(xiàn)網(wǎng)上信息的快速共享與傳遞,最終對(duì)土石壩管理工作起到?jīng)Q策支持作用。
該系統(tǒng)的主界面如圖 1所示:
圖1 主界面
開(kāi)發(fā)語(yǔ)言:Asp.Net
數(shù)據(jù)庫(kù):Sq l Server 2005
開(kāi)發(fā)環(huán)境:M icrsoft Visual Stidio 2005
1)相關(guān)操作
專家登錄以后,可以進(jìn)入到專家評(píng)分界面 hshsystem.aspx,專家根據(jù)所列出的項(xiàng)目點(diǎn)擊后面的“開(kāi)始評(píng)分”進(jìn)行評(píng)分,評(píng)分依據(jù)是根據(jù)專家自身的專業(yè)知識(shí)經(jīng)驗(yàn)及每個(gè)項(xiàng)目的權(quán)重值,點(diǎn)擊“確定”后專家的評(píng)分信息就錄入到數(shù)據(jù)庫(kù),點(diǎn)擊“評(píng)分結(jié)果”可以查看當(dāng)前的評(píng)分結(jié)果,以及系統(tǒng)根據(jù)現(xiàn)階段的評(píng)估值判斷出的安全等級(jí)、輔助決策等。會(huì)議支持人登錄后進(jìn)入管理系統(tǒng)可以對(duì)評(píng)分系統(tǒng)進(jìn)行綜合管理,如對(duì)評(píng)估過(guò)程的控制等。其總體流程如圖 3-1所示:
圖2 專家評(píng)估系統(tǒng)流程圖
2)實(shí)現(xiàn)過(guò)程:
在專家評(píng)估模塊中,主要是數(shù)據(jù)庫(kù)的綁定、數(shù)據(jù)表的更新和計(jì)算、風(fēng)險(xiǎn)等級(jí)的判斷及輔助決策等。界面如圖 3所示:
GridView與 SQL SERVER里數(shù)據(jù)表的綁定是通過(guò)代碼編寫(xiě)實(shí)現(xiàn)的,通過(guò)對(duì) GridView的編輯列選項(xiàng)對(duì)顯示的字段進(jìn)行綁定,使得在 GridView中選擇性的顯示某些字段或者隱藏某些字段。然后在 GridView中添加CommandField字段,選擇編輯列并添加到 GridView中,并為編輯字段編寫(xiě)程序語(yǔ)言。再將某些不需要編輯的綁定列的 ReadOn ly屬性設(shè)置為 true,以為了不對(duì)該字段進(jìn)行編輯操作。
為了驗(yàn)證專家在評(píng)估過(guò)程中輸入的值是否符合該字段中數(shù)據(jù)庫(kù)中的數(shù)據(jù)類型,這里也同樣用到了 CompareValidator驗(yàn)證控件,當(dāng)輸入數(shù)據(jù)不符合特定數(shù)據(jù)類型時(shí),會(huì)顯示提示信息。
圖3 專家評(píng)估模塊界面
專家對(duì)各項(xiàng)評(píng)分的輸入值稱為標(biāo)準(zhǔn)分,該項(xiàng)的得分為標(biāo)準(zhǔn)分與該項(xiàng)權(quán)重值的乘積。[5]評(píng)分結(jié)束后點(diǎn)擊“評(píng)分結(jié)果”查看各項(xiàng)當(dāng)前評(píng)分的平均值。平均值先是從數(shù)據(jù)庫(kù)里計(jì)算當(dāng)前已有幾位專家進(jìn)行評(píng)分,再根據(jù)數(shù)據(jù)庫(kù)里的總值除以評(píng)分完成的人數(shù)所得。最終系統(tǒng)根據(jù)各項(xiàng)平均值的和算出總體的值,用以判斷更高層次的風(fēng)險(xiǎn)等級(jí)以及土石壩的整體安全風(fēng)險(xiǎn)等級(jí)。
在該模塊中,管理員的作用也非常重要,管理員起到對(duì)評(píng)估過(guò)程的控制作用。管理員通過(guò)首頁(yè)登錄進(jìn)入管理系統(tǒng)界面。點(diǎn)擊“開(kāi)始評(píng)分”后系統(tǒng)將對(duì)后臺(tái)數(shù)據(jù)庫(kù)里的相關(guān)數(shù)據(jù)進(jìn)行初始化,以便于得到更加可靠性的數(shù)據(jù)。管理員還可以查看當(dāng)前完成評(píng)分的評(píng)委人數(shù)、當(dāng)前評(píng)分的整體情況、以及整體的風(fēng)險(xiǎn)等級(jí)等內(nèi)容,從而更好的把握評(píng)估過(guò)程的穩(wěn)定性。
1)相關(guān)操作
用戶通過(guò)點(diǎn)擊網(wǎng)頁(yè)上的熱點(diǎn),可以動(dòng)態(tài)的鏈接到數(shù)據(jù)庫(kù),查看該點(diǎn)的屬性數(shù)據(jù)。例如,當(dāng)點(diǎn)擊觀測(cè)點(diǎn) 4時(shí),頁(yè)面彈出一個(gè)類似于對(duì)話框的界面,顯示了觀測(cè)點(diǎn) 4的屬性信息,如圖 3所示。熱點(diǎn)查詢使得用戶對(duì)信息的獲取更加的方便、快捷。
圖4 熱點(diǎn)屬性信息查詢
2)實(shí)現(xiàn)過(guò)程
上圖中熱點(diǎn)屬性信息的界面實(shí)為一個(gè) Panel,這個(gè) Panel鏈接了一個(gè)數(shù)據(jù)庫(kù),用于動(dòng)態(tài)顯示某個(gè)點(diǎn)的屬性數(shù)據(jù),這個(gè)Panel初始 Visible設(shè)為 false,當(dāng)單擊“觀測(cè)點(diǎn) 4”時(shí)觸發(fā)事件,將 Panel的 Visib le屬性改為 true,同時(shí)從數(shù)據(jù)庫(kù)中動(dòng)態(tài)檢測(cè)到該點(diǎn)并將其顯示出來(lái)。圖片上的“觀測(cè)點(diǎn) 4”等熱點(diǎn)為L(zhǎng)inkButton控件,通過(guò)把 LinkButton的屬性設(shè)置為透明后即可得到界面上的效果。
LinkButton和 HyperLink都是用來(lái)做超級(jí)鏈接的按鈕,但兩者卻有著很大的區(qū)別,當(dāng)用戶點(diǎn)擊控件時(shí):HyperLink控件會(huì)立即將用戶“導(dǎo)航”到目標(biāo) URL,不會(huì)與服務(wù)器發(fā)生數(shù)據(jù)響應(yīng)。LinkButton控件則首先將數(shù)據(jù)發(fā)送到服務(wù)器,然后將用戶導(dǎo)航到目標(biāo) URL。當(dāng)用戶點(diǎn)擊觀測(cè)點(diǎn)時(shí),需要在數(shù)據(jù)庫(kù)中對(duì)該點(diǎn)信息進(jìn)行查詢檢索,所以應(yīng)該 LinkButton控件。
3)相關(guān)數(shù)據(jù)庫(kù)
該模塊中用到 safe數(shù)據(jù)庫(kù)中的 infor表,infor表是用來(lái)存儲(chǔ)觀測(cè)點(diǎn)的系列屬性數(shù)據(jù),如圖 5所示:
圖5 in for數(shù)據(jù)表
在頁(yè)面上顯示的時(shí)候通過(guò)字段的綁定來(lái)選擇性的顯示特定字段,操作如圖 6所示:
圖6 GridView的綁定
選擇 “BoundField”,單 擊 “添 加 ”輸 入 “HeaderText” 和“DateField”,用來(lái)顯示標(biāo)題及內(nèi)部綁定字段。將“自動(dòng)生成字段”的選擇取消,則實(shí)現(xiàn)了字段的綁定。此外,還必須通過(guò)代碼的編寫(xiě)來(lái)實(shí)現(xiàn)數(shù)據(jù)庫(kù)的綁定。
1)相關(guān)操作
用戶通過(guò)頁(yè)面上部的導(dǎo)航條進(jìn)入歷史查詢頁(yè)面historicaldata.aspx,可以對(duì)土石壩已有的某段時(shí)間的歷史信息進(jìn)行查詢,這里主要針對(duì)水位信息做出動(dòng)態(tài)顯示,根據(jù)輸入的起始時(shí)間和截止時(shí)間將該時(shí)間段的歷史水位信息以圖表形式繪制出來(lái)。輸出結(jié)果如圖 7所示:
圖7 歷史水位信息查詢報(bào)表
(2)實(shí)現(xiàn)過(guò)程:
用戶進(jìn)入歷史信息查詢頁(yè)面后,首先需要對(duì)需要查詢的信息進(jìn)行條件選擇。輸入起始時(shí)間和截止時(shí)間,選擇圖表模式,填寫(xiě)完畢后點(diǎn)擊“查看報(bào)表”,如圖 8所示:
圖8 歷史水位信息查詢界面
用戶輸入起始時(shí)間及截止時(shí)間時(shí),用到 CompareValidator驗(yàn)證控件,該控件可以驗(yàn)證用戶輸入的數(shù)據(jù)類型,這里設(shè)置為“date”類型,當(dāng)用戶輸入數(shù)據(jù)為非日期類型時(shí)會(huì)提示出錯(cuò)。
在動(dòng)態(tài)圖表的顯示方面,選擇了 CrystalReportViewer控件。CrystalReport(水晶報(bào)表)是業(yè)內(nèi)最專業(yè)、功能最強(qiáng)的報(bào)表系統(tǒng),它除了強(qiáng)大的報(bào)表功能外,最大的優(yōu)勢(shì)是實(shí)現(xiàn)了與絕大多數(shù)流行開(kāi)發(fā)工具的集成和接口。在開(kāi)發(fā)和生成報(bào)表時(shí)結(jié)合水晶報(bào)表,往往能事半功倍。CrystalReportViewer正是CrystalReport下面一個(gè)很常用的控件。
新建一個(gè)ViewReport.aspx頁(yè)面,在頁(yè)面里添加一個(gè) CrystalReportViewer控件。再新建一個(gè)水晶報(bào)表文件類型,命名為 item report.rp t,接著使用報(bào)表設(shè)計(jì)專家,選擇 ADO并選擇SQL鏈接文件。接下來(lái)是登錄數(shù)據(jù)源的系列信息填寫(xiě),包括登錄用戶名、密碼、數(shù)據(jù)庫(kù)名稱等。緊接著選擇需要報(bào)告的數(shù)據(jù)及顯示的信息,這里選擇 height表中的的 itemDate和itemHeight兩個(gè)字段,一直點(diǎn)擊完成后。再次選擇報(bào)表專家,在彈出的窗口中選擇數(shù)據(jù)選項(xiàng)卡,在數(shù)據(jù)可用字段中選擇itemDate,并且可以在文本頁(yè)中,設(shè)置適當(dāng)?shù)膱?bào)表標(biāo)題。
表1 字段資源管理器新建的參數(shù)字段
由于要根據(jù)輸入的日期來(lái)動(dòng)態(tài)顯示報(bào)表,因此我們要設(shè)置參數(shù)字段。在報(bào)表設(shè)計(jì)器的
字段資源管理器中,選擇參數(shù)字段,鼠標(biāo)右擊選擇“新建”,新建三個(gè)參數(shù)字段,如表 1所示。
最后,要設(shè)置相關(guān)的查詢公式,在除報(bào)表頁(yè)眉的區(qū)域,鼠標(biāo)右鍵點(diǎn)擊,在彈出菜單中選擇“報(bào)表 |選定公式|記錄”,輸入公式,如圖 9所示:
在公式編輯器中,分為左中右三部分,左邊的是報(bào)表的字段,中間的是相關(guān)的功能函數(shù),最右邊的是運(yùn)算符,雙擊其中選中的部分,則可以添加到下部的公式顯示區(qū)域中。最后,保存建立的公式。
圖9 查詢公式編輯
(3)相關(guān)數(shù)據(jù)庫(kù):
該模塊中主要用到 safe數(shù)據(jù)庫(kù)中的 height數(shù)據(jù)表,如圖10所示:
圖10 height數(shù)據(jù)表
經(jīng)過(guò)開(kāi)發(fā),該系統(tǒng)基本實(shí)現(xiàn)了 GIS技術(shù)在土石壩安全評(píng)價(jià)專家會(huì)商系統(tǒng)方面的應(yīng)用。實(shí)現(xiàn)了熱點(diǎn)屬性信息查詢、動(dòng)態(tài)水位的模擬、專家異地會(huì)商等一系列的主要功能,能夠初步應(yīng)用到實(shí)際工作中,為土石壩安全管理提供決策支持。
該系統(tǒng)的實(shí)現(xiàn)也證明了 GIS技術(shù)可以以多種形式體現(xiàn)出來(lái),為我們的日常工作及管理提供服務(wù),如工程、商業(yè)、經(jīng)濟(jì)等方面,而并不僅僅局限于地理學(xué)科。由此可見(jiàn),GIS技術(shù)在我們的生產(chǎn)生活中是大有用途的。
[1]戚安邦.項(xiàng)目管理十大風(fēng)險(xiǎn)[M].北京:中國(guó)經(jīng)濟(jì)出版社,2004.
[2]高俊峰,閭國(guó)年,劉曉玫等.基于地理數(shù)據(jù)庫(kù)模型的流域數(shù)據(jù)模型設(shè)計(jì)[J].現(xiàn)代測(cè)繪,2004,27(5).
[3]崔陽(yáng),王華.基于 GIS的城市地下管線數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)[J].地理空間信息,2008,6(3):9-12.
[4]劉振巖.基于 ASP.NET的 Web程序設(shè)計(jì)[M].北京:電子工業(yè)出版社,2006.
[5]張學(xué)會(huì).山西省夾馬口灌區(qū)的水利管理信息化[J].中國(guó)農(nóng)村水利水電,2004(1):51-52.
[6]邱集煦.小型水庫(kù)土石壩防滲處理方案選擇[J].水利科技,2010(3):42-43.