文獻標(biāo)識碼: A
隨著人類社會向信息化迅速發(fā)展,,人防系統(tǒng)已成為現(xiàn)代化國防建設(shè)的一項重要內(nèi)容,。人民防空[1],是指動員和組織人民群眾防備敵人空中襲擊,、消除空襲后果所采取的行動,,簡稱人防,;人防工程,是指為保障戰(zhàn)時人員與物資掩蔽,、人民防空指揮,、醫(yī)療救護而單獨修建的地下防護建筑,以及結(jié)合地面建筑修建的戰(zhàn)時可用于防空的地下室,;應(yīng)急指揮[2],是指人防機構(gòu)在突發(fā)事件的事前預(yù)防,、事發(fā)應(yīng)對、事中處置和善后管理過程中,,采取的一系列指揮與協(xié)調(diào)措施,。人防工程的規(guī)劃、建設(shè),、管理需要科學(xué)化,、正規(guī)化,人防職能管理部門必須依靠相應(yīng)的人防工程,、資源信息,,隨時掌握市區(qū)內(nèi)的人防工程情況,并根據(jù)這些情況及時進行應(yīng)急指揮處理,,這就要求能夠有一套滿足人防工程管理,、應(yīng)急預(yù)案、協(xié)同辦公,、應(yīng)急指揮的綜合系統(tǒng),。本文依據(jù)《中華人民共和國人民防空法》和各地人防法規(guī)的具體要求,成功研發(fā)了某市人防電子地圖系統(tǒng),,為現(xiàn)代化國防建設(shè)提供了一個有力的技術(shù)保障,。
1 基于MapXtreme的人防電子地圖系統(tǒng)設(shè)計
1.1 系統(tǒng)總體架構(gòu)
通過對系統(tǒng)的背景和設(shè)計原則的分析,考慮到要充分利用客戶現(xiàn)有的網(wǎng)絡(luò)環(huán)境,,達到支持網(wǎng)絡(luò)共享和并發(fā)控制,,允許多個用戶同時進行相關(guān)操作的需求,系統(tǒng)采用基于C/S與B/S混合的總體架構(gòu)方案,。
系統(tǒng)由表示層,、業(yè)務(wù)層和數(shù)據(jù)層組成。針對地理空間數(shù)據(jù)量大,、種類多,,且用戶并發(fā)請求多,網(wǎng)絡(luò)傳輸量大的特點[3],,將系統(tǒng)組網(wǎng)方式分為內(nèi)部的局域網(wǎng)和連接外部用戶的外網(wǎng),。內(nèi)網(wǎng)負(fù)責(zé)處理業(yè)務(wù)邏輯和生成包含地圖數(shù)據(jù)的HTML代碼。外網(wǎng)負(fù)責(zé)對外發(fā)布地理信息服務(wù),,實現(xiàn)內(nèi)網(wǎng)與外網(wǎng)在物理上的隔離,。其中,,地圖數(shù)據(jù)和應(yīng)用程序都放在服務(wù)器端,客戶端不需要安裝GIS軟件,,使用瀏覽器即可獲得GIS應(yīng)用功能,,這使得GIS應(yīng)用不受地域和終端類型的限制。業(yè)務(wù)層采用MapXtreme2004.NET作為應(yīng)用服務(wù)器,,專門負(fù)責(zé)生成和打包在網(wǎng)絡(luò)上傳輸?shù)牡貓D信息,。當(dāng)MapXtreme應(yīng)用服務(wù)器運行后,若接收到客戶端的請求,,由MapXtreme應(yīng)用服務(wù)器將矢量地圖通過MapX引擎轉(zhuǎn)換成GIF或JPG格式的柵格圖像,,并生成包含圖像數(shù)據(jù)的HTML代碼,使用戶可以通過WWW瀏覽器訪問地圖數(shù)據(jù),。由于傳遞到瀏覽器端的是一幅經(jīng)過壓縮的柵格地圖,,而真正的矢量地圖和屬性數(shù)據(jù)仍保留在服務(wù)器端,因此減少了網(wǎng)絡(luò)傳輸負(fù)擔(dān),,同時降低了原始數(shù)據(jù)被盜用的可能,。
1.2 系統(tǒng)數(shù)據(jù)庫設(shè)計
系統(tǒng)數(shù)據(jù)包括空間數(shù)據(jù)和屬性數(shù)據(jù),它們通過唯一的ID號關(guān)聯(lián),。本系統(tǒng)對數(shù)據(jù)的管理采用文件系統(tǒng)和數(shù)據(jù)庫相結(jié)合的混合管理方式,,其中地圖數(shù)據(jù)采用文件管理策略,即每一類型的地圖數(shù)據(jù)都存放在一個圖層文件中,,對應(yīng)地圖對象的屬性數(shù)據(jù)和人防工程數(shù)據(jù)則由關(guān)系數(shù)據(jù)庫統(tǒng)一管理,。
1.2.1 空間數(shù)據(jù)庫
系統(tǒng)選擇MapInfo格式的矢量圖作為地圖數(shù)據(jù),其中屬性數(shù)據(jù)存儲在關(guān)系數(shù)據(jù)庫的若干屬性表中,,而空間數(shù)據(jù)則以MapInfo自定義模式保存于若干文件中,。
本設(shè)計將人防業(yè)務(wù)相關(guān)的空間數(shù)據(jù)分為圖層類和專題圖類:
(1) 圖層類。本系統(tǒng)將具有相同空間幾何特征和屬性特征的空間對象的集合,,如河流,、公路、行政區(qū)域,、居民地等分別存儲在不同的圖層中,。同一個層上的多個空間地物共享同一個屬性結(jié)構(gòu),,同一個圖層中的所有對象共享相同的顏色,、符號、線型等特性,。
(2) 專題圖類,。某市人防電子地圖系統(tǒng)涉及到“來襲敵情判斷圖”、“預(yù)防空襲部署圖”,、“離城人口疏散圖”,、“留城人員隱蔽圖”,、“通信警報保障圖”、“物資保障計劃圖”和“人防工程保障圖”7個預(yù)案專題圖,。每個專題圖由多個圖層構(gòu)建而成,。系統(tǒng)共有56個自定義圖層數(shù)據(jù),其中某市的地圖(包括道路,、湖泊等基礎(chǔ)信息)是這7個預(yù)案專題圖共享的,,其余的人防業(yè)務(wù)相關(guān)圖層按照其所包含的地物類別來分層組織。
1.2.2 屬性數(shù)據(jù)庫
屬性數(shù)據(jù)庫主要包括兩類屬性表,,一類是對應(yīng)于地圖實體的可地圖化的屬性表,,用于存儲地圖實體的屬性。本系主要設(shè)計了路段屬性表,、連接點屬性表,、行政區(qū)劃屬性表、土地利用屬性表,、鐵路屬性表等,。另一類是非地圖化的常規(guī)的屬性表,本系統(tǒng)主要有用戶表,、人防設(shè)施類型表,、人防工程類型表、人防工程表,、人防工程維修表,、人防設(shè)備類型表、人防設(shè)備表,、人防設(shè)備維修表,、保護對象類型表、保護對象表和預(yù)案數(shù)據(jù)表等,,由Oracle 9i進行管理和維護,。
1.3 系統(tǒng)功能設(shè)計
根據(jù)系統(tǒng)的業(yè)務(wù)要求和設(shè)計原則,某市人防電子地圖系統(tǒng)由人防遠(yuǎn)程子系統(tǒng)和人防本地子系統(tǒng)組成,,遠(yuǎn)程子系統(tǒng)用B/S模式實現(xiàn),,本地子系統(tǒng)用C/S模式實現(xiàn)。系統(tǒng)功能模塊設(shè)計如圖1所示,。
主要功能模塊如下:
(1) 圖形變換與圖層管理:包括專題地圖切換,、地圖縮放、鷹眼圖例管理和圖層添加刪除等,。此模塊提供①縮放,、平移等幾何變換功能,電子地圖可以按照任意比例進行放大,、縮小,、漫游,,使用戶能夠詳細(xì)地查看空間目標(biāo)及目標(biāo)的周圍情況;②鷹眼功能,,根據(jù)電子地圖的縮放比例,,將當(dāng)前區(qū)域在整幅地圖中所處的位置顯示在鷹眼窗口,使用戶能夠把握全局,;③圖層,、標(biāo)注和圖例的顯示控制功能,使得用戶能夠?qū)W⒂诋?dāng)前關(guān)心的目標(biāo),,并且可以讓顯示的圖形更加簡潔清晰,。
(2) 空間信息查詢:包括空間量算、坐標(biāo)查詢和地物查詢功能,??臻g量算包含距離查詢和面積查詢功能,其中距離查詢能夠得到當(dāng)前地圖任意連續(xù)點構(gòu)成的折線的總長度,,面積查詢則能夠得到當(dāng)前地圖任意多邊形的面積,。空間量算功能使用戶能夠快捷準(zhǔn)確地得到空襲后受災(zāi)面積的大小以及救助人員及設(shè)施離受災(zāi)地區(qū)的距離,。坐標(biāo)查詢功能使用戶能夠查詢空間地理坐標(biāo)位置,。地物查詢根據(jù)用戶鼠標(biāo)在地圖上選中的實體,將與該實體相關(guān)的屬性信息(如名稱,、位置等)及多媒體信息(如圖片,、音頻和視頻等)展現(xiàn)給用戶,能清楚查詢顯示任何一處人防要素及其周邊環(huán)境的狀況,。
(3) 空間分析模塊:此模塊包括最短路徑規(guī)劃和緩沖區(qū)分析功能,。最短路徑分析功能根據(jù)用戶輸入的起點及終點位置的名稱,規(guī)劃出了兩者之間連通的1條最短路徑,,系統(tǒng)將在地圖上予以展現(xiàn),,還可以根據(jù)道路狀況等約束條件優(yōu)化其路徑,從而達到戰(zhàn)時快速疏散,、救護,、維修、消防和集結(jié)等目的,。緩沖區(qū)分析功能則根據(jù)用戶輸入的點狀或線狀地物名稱查詢其周圍指定半徑范圍內(nèi)的地物,,并將符合條件的地物在地圖上突出顯示。
(4) 地圖編輯模塊:包括點狀,、線狀和面狀地物的添加,、刪除功能。利用GIS數(shù)據(jù)編輯技術(shù),,對人防工程,、重點保護目標(biāo)、人防指揮所等人防要素進行增加,、刪除,、修改,該模塊相當(dāng)于一個GIS數(shù)據(jù)維護平臺,。
(5) 人防預(yù)案模塊:包括預(yù)案查詢,、預(yù)案管理和預(yù)案評估。將所有人防預(yù)案集成到一個統(tǒng)一的平臺,,方便戰(zhàn)時或演習(xí)時調(diào)用,。
(6) 專題制圖:用于制作專題地圖和電子沙盤,包括二維數(shù)據(jù)網(wǎng)格化,、三角網(wǎng)等值線嵌入,、地形圖三維顯示、地形圖柵格圖像生成,、預(yù)案套圖制作與查詢,。
2 人防系統(tǒng)的關(guān)鍵問題及實現(xiàn)
2.1 最短路徑查詢及其優(yōu)化
根據(jù)某市人防電子地圖系統(tǒng)的實際需求,,最短路徑查詢有時要求距離最短,、有時要求時間最短,,且道路或橋梁有可能被炸毀而不能通行,,這使得道路的正向,、反向權(quán)值不是固定值,,需隨著應(yīng)用背景的變化而更新,。因此,,進行最短路徑分析時,,若要求距離最短,,則可以直接利用路段的正向、反向權(quán)值進行計算,;若要求時間最短,,則可以利用路段的正向、反向權(quán)值,,并結(jié)合道路的平均速度進行計算,。然而,無論按時間還是距離查詢最短路徑,,其實還是一個單源單目問題,,可以使用最經(jīng)典的Dijkstra算法[4]并加以優(yōu)化。
在本系統(tǒng)中,,首先將現(xiàn)實中的道路網(wǎng)絡(luò)實體抽象化為網(wǎng)絡(luò)圖論理論中的網(wǎng)絡(luò)拓?fù)鋱D,,交叉路口為結(jié)點,道路為邊,道路長度為權(quán)值,;其次,,獲取起始點名與終止點名,并對輸入的始末點名,,通過在道路結(jié)點表中查詢的點的名稱,,得到始末點的結(jié)點NODE_ID;再次,,將道路結(jié)點集與道路弧段集作為Dijkstra算法中的參數(shù),,計算從出發(fā)點到目的點的最短路徑的結(jié)點序列;最后,,將返回結(jié)點序列即最佳路徑在電子地圖上高亮顯示,。
在最短路徑查詢的實際應(yīng)用中,本系統(tǒng)從以下兩方面進行了優(yōu)化:
(1) 初始化始末點時,,若該點不是道路結(jié)點,,則一般的處理是遍歷道路結(jié)點表,查詢離該地物點最近的道路結(jié)點作為起始點,。由于道路結(jié)點數(shù)據(jù)量太大,,這種方法不僅效率低,且對于某些特殊的地物點會出錯,。比如某點A,,若離它最近的道路較長,則該道路的端點離A就比較遠(yuǎn),,繼而選擇的是另一條端點離A近的道路,,而實際上該選擇結(jié)果并不是離A最近的道路。為了解決這兩個問題,,系統(tǒng)在初始化始末點時,,不是以道路結(jié)點為參照,而是將道路層單獨提練出來,。設(shè)定某個距離值為半徑畫圓,,若該圓與某條道路有交點,則說明此道路為離該點最近的道路,,從該點向道路作垂線,,即為該點的第1條路線;若沒有交點,,則按某個設(shè)定值繼續(xù)擴大半徑搜索,,直至查詢到最近道路為止。這種優(yōu)化方法,,一方面解決了某些對特殊地物點進行最短路徑查詢時可能出現(xiàn)的錯誤,;另一方面也提高了查詢的效率,。在實際情況中,道路結(jié)點數(shù)據(jù)量大,,而采用優(yōu)化方法后只需進行幾次循環(huán)查找即可,。
(2) 由于每次做路徑查詢時都需要將所有道路結(jié)點和道路弧段的集合構(gòu)建道路拓?fù)渚W(wǎng)絡(luò),但道路網(wǎng)絡(luò)的數(shù)據(jù)量非常大,,而且該拓?fù)潢P(guān)系是不會改變的,,所以原有的最短路徑查詢功能在構(gòu)建路網(wǎng)拓?fù)潢P(guān)系時做了大量重復(fù)的工作,。為提高最短路徑查詢過程的效率,,在系統(tǒng)初始化過程中,將所有道路節(jié)點的拓?fù)潢P(guān)系緩沖到服務(wù)器端內(nèi)存中,,每次做路徑查詢時先檢查緩存中是否已經(jīng)存在生成的路網(wǎng)拓?fù)湫畔?,避免了道路拓?fù)渚W(wǎng)絡(luò)的重復(fù)生成。優(yōu)化后的最短路徑查詢的工作流程如圖2所示,。
本文將系統(tǒng)重構(gòu)為基于上述優(yōu)化方法的電子地圖系統(tǒng),,并選擇8對相同的始末結(jié)點進行最短路徑查詢,并與使用傳統(tǒng)方法的系統(tǒng)進行比較測試,,最終得到如圖3所示的性能測試對比圖,。
從圖中可以看出,未經(jīng)優(yōu)化的電子地圖系統(tǒng)響應(yīng)時間比優(yōu)化后的系統(tǒng)響應(yīng)時間長,,可見該優(yōu)化在當(dāng)前實驗環(huán)境下,,對系統(tǒng)性能的提升有較大的幫助。
2.2 基于MapXtreme的鷹眼技術(shù)
鷹眼是除了主視圖外的一個小視圖窗口,,用來顯示全圖,,并用1個矩形表示大圖的地圖邊界。點擊鷹眼窗口時,,地圖自動定位到相應(yīng)位置,,當(dāng)?shù)貓D視圖(包括縮放比例和中心)發(fā)生變化時,鷹眼上的導(dǎo)航矩形框相應(yīng)變化,,以指示用戶當(dāng)前所處的位置,。
鷹眼的實現(xiàn)思路:在同一頁面表單上放置2個MapControl控件,分別為地圖主窗口(mainMapControl)和鷹眼窗口(overviewMapControl),地圖主窗口用于顯示實際的地圖,,鷹眼窗口則需要將地圖按合適的比例尺顯示,,然后在鷹眼窗口上創(chuàng)建1個圖層,在該圖層上添加1個矩形對象FeatureGeometry,,該矩形的大小隨著主圖邊界而變化,。由于兩個窗口的大小不同,需要經(jīng)過1次比例轉(zhuǎn)換,,因此首先定義1個setView()方法,,該方法用于實現(xiàn)地圖數(shù)據(jù)自適應(yīng)任意大小地圖窗口。當(dāng)?shù)貓D主窗口中的圖形被縮放或者平移之后,在鷹眼窗口已有圖層中加入1個臨時層,,在臨時層上動態(tài)生成1個紅色矩形,,顯示地圖主窗口中顯示的圖形在整體地圖中所處的位置。
系統(tǒng)中鷹眼功能的具體實現(xiàn)步驟如下:(1)判斷用戶是否對主地圖窗口進行了縮放或平移操作,,若沒有變換則鷹眼窗口內(nèi)容不變,,若有變換則獲取主地圖窗口顯示的地圖范圍。然后創(chuàng)建1個矩形對象并設(shè)置其顏色和寬度屬性,,創(chuàng)建窗口樣式并設(shè)置樣式屬性,;(2)再判斷鷹眼窗口的圖層中是否已經(jīng)存在臨時圖層,若存在則先清空臨時圖層中的所有對象,;若不存在則創(chuàng)建1個臨時圖層并將臨時圖層加入到鷹眼窗口圖層中,; (3)將矩形對象插入臨時圖層。到此系統(tǒng)即完成了鷹眼窗口的地圖視圖變換,。
2.3 人防系統(tǒng)的安全保證
由于本系統(tǒng)應(yīng)用于市人防辦,涉及國家安全信息,,對數(shù)據(jù)安全性非常敏感,因此使用了多種安全機制保障系統(tǒng)的安全,。
(1) 表單驗證和Session認(rèn)證機制[5]相結(jié)合
本系統(tǒng)采用表單驗證和Session認(rèn)證機制相結(jié)合的方式加強登錄過程的身份認(rèn)證,,即由用戶以表單形式向服務(wù)器發(fā)送登錄憑證,如果用戶通過了服務(wù)器端的身份驗證,,系統(tǒng)的權(quán)限管理將會給用戶授予一定的權(quán)限標(biāo)志信息,,通過Session對象跟蹤本次登錄的整個會話生存周期;如果用戶沒有通過身份驗證,客戶端將重定向到指定的頁面,。Session對象用于存儲特定的用戶會話所需的信息,,從1個用戶開始訪問某個特定的主頁起,到用戶離開為止,。服務(wù)器可以分配給每個用戶1個Session,,以存儲特定的用戶信息,包括用戶名,、用戶ID等,。如果用戶沒有經(jīng)過登錄而直接進入頁面,則Session中存放的用戶信息無效,程序?qū)⒅囟ㄎ坏接脩舻卿浗缑?,以防止通過網(wǎng)頁地址而繞過登錄控制的企圖,。
(2) 基于角色的訪問控制
為了保證系統(tǒng)的訪問安全,防止非法用戶進入系統(tǒng)及合法用戶對系統(tǒng)資源的非法使用,,本系統(tǒng)采用基于角色的訪問控制模型RBAC(Role Based Access Control)來實現(xiàn),。RBAC的基本思想[6]是:在用戶和訪問權(quán)限之間引入角色的概念,將用戶和角色聯(lián)系起來,,通過對角色的授權(quán)來控制用戶對系統(tǒng)資源的訪問,。根據(jù)人防電子地圖系統(tǒng)的具體應(yīng)用需求,,系統(tǒng)定義了3種角色:系統(tǒng)管理員、通信指揮用戶和普通用戶,。系統(tǒng)管理員負(fù)責(zé)管理維護系統(tǒng),,沒有任何業(yè)務(wù)權(quán)限,其主要權(quán)限有添加,、刪除,、修改用戶信息,授予用戶權(quán)限和管理日志等,;通信指揮用戶除了具有對地圖數(shù)據(jù)的操作權(quán)限,,包括地圖的查詢、瀏覽等以外,,還有一個特殊的權(quán)限——編輯地圖,,與人防業(yè)務(wù)相關(guān)的信息都交由這類角色的用戶負(fù)責(zé),;普通用戶則只擁有瀏覽和查詢一些指定專題地圖的權(quán)限,。系統(tǒng)將根據(jù)登錄用戶的角色加載不同的功能模塊。
此外,,本系統(tǒng)還通過數(shù)據(jù)庫身份驗證模式和防SQL注入攻擊保證了數(shù)據(jù)庫的安全,;使用SSL機制對客戶端和服務(wù)器之間發(fā)送的消息進行加密和解密,保證系統(tǒng)數(shù)據(jù)通信的安全,;通過采用完全備份,、增量備份、系統(tǒng)備份3種備份方式,,定期對空間數(shù)據(jù)進行備份,,保證數(shù)據(jù)和使用對象都不崩潰。
3 系統(tǒng)實例及運行效果
人防電子地圖系統(tǒng)采用MapInfo公司推出的MapXtreme2004組件式GIS平臺作為實現(xiàn)地理信息存儲,、顯示,、操作等功能的二次開發(fā)平臺, 以Visual Studio 2003
.net為開發(fā)工具,采用Oracle 9i作為數(shù)據(jù)庫管理系統(tǒng),,在此基礎(chǔ)上實現(xiàn)了具有GIS特點和功能的某市人防電子地圖系統(tǒng),。圖4是該系統(tǒng)應(yīng)用于某市時系統(tǒng)最短路徑查詢的功能界面。
人防電子地圖系統(tǒng)是現(xiàn)代化國防建設(shè)的核心應(yīng)用系統(tǒng)之一,,其研發(fā)涉及地理信息系統(tǒng)和計算機科學(xué)領(lǐng)域的眾多應(yīng)用技術(shù),,是一項較大規(guī)模的軟件開發(fā)工程。該系統(tǒng)不僅實現(xiàn)了電子地圖操作的基本功能以及多種方式的信息查詢,,而且專門針對某市“防空襲預(yù)案”中對人口疏散,、空襲后果消除等方面的要求,設(shè)計了空間量算,、最短路徑規(guī)劃和緩沖區(qū)分析等實用功能,,另外還集成了人防工程信息管理系統(tǒng),。
目前,該系統(tǒng)已經(jīng)在某市人防辦得到了實際應(yīng)用。通過用戶反饋表明,,該系統(tǒng)具有功能強大,、實時性強、安全可靠,、易于使用等優(yōu)點,,可以進行人防工程信息管理、應(yīng)急指揮調(diào)度,、預(yù)案管理和組織演練等,,不但能夠滿足該市在戰(zhàn)時組織防空襲指揮的需求,也能為平時防災(zāi),、救災(zāi)等城市應(yīng)急管理工作提供技術(shù)平臺和決策支持,。
參考文獻
[1] 翁紀(jì)勤,楊海,杜文興. 人防信息化建設(shè)的重點及難點[J]. 中國人民防空,2006(3):10-11.
[2] 沈蔚,陳去浩,胡德勇,等. 城市應(yīng)急聯(lián)運系統(tǒng)的研究與實現(xiàn)[J]. 計算機工程,2006,32(20):267-272.
[3] 劉明德,林杰斌. 地理信息系統(tǒng)GIS理論與實務(wù)[M]. 北京:清華大學(xué)出版社,2006.
[4] ORDA A, ROM R. Shortest path and minimum delay algorithms in networks with time dependent edge length[J].Journal of the Association for Computing Machinery, 2002,37(3):607-625.
[5] LI Ning Hui, TRIPUNITARA M V. Security analysis in role-based access control[J]. ACM Transactions on Information and System Security, 2006,9(4):391-420.