協(xié)同顯示系統(tǒng)實現(xiàn)GIS的超高分辨率顯示
圖3例舉了一個由四個從節(jié)點顯示終端所組成的超分辨率顯示系統(tǒng)。主節(jié)點控制模塊是控制核心,第一步,按照行優(yōu)先,從左到右的順序,為每個從節(jié)點賦予了一個唯一的編號。
由這個唯一的編號可以查找到對應的從節(jié)點的地址、端口、可用狀態(tài)等,為通信模塊做好通信準備。第二步,要計算出每個從節(jié)點所需顯示的區(qū)域的地理范圍。由圖我們可以看出,整個大視景顯示區(qū)域由若干局部區(qū)域拼接而成,各從節(jié)點的編號決定了它們所要顯示的局部區(qū)域。具體實現(xiàn)是,將主節(jié)點的顯示屏幕分割成與從節(jié)點顯示矩陣成相似形的若干區(qū)塊,每個屏幕區(qū)塊和一個從節(jié)點對應。GIS平臺提供了將屏幕坐標轉化為地理坐標的接口,因此每個屏幕區(qū)塊的地理坐標都可以計算出來。地理坐標計算出來之后,由編號值查找對應從節(jié)點的地址和端口,并將地理坐標信息傳送給該從節(jié)點。到這里,主節(jié)點控制模塊將從節(jié)點的編號和它所要顯示的內容緊密地結合在了一起。圖3右側是系統(tǒng)顯示的戰(zhàn)場推演圖。
系統(tǒng)通信模塊基于ICE平臺而開發(fā),支持分布式對象通信,主節(jié)點端系統(tǒng)通信模塊主要負責:
一、向各個從節(jié)點發(fā)送消息或者數(shù)據(jù),包括命令消息、地理坐標信息、圖層數(shù)據(jù)等,
二、接受從節(jié)點返回的確認信息,包括從節(jié)點的可用狀態(tài)、同步狀態(tài)等。
從節(jié)點一側,同樣包括通信模塊、控制模塊。從節(jié)點通信模塊負責接收主節(jié)點發(fā)送來的消息及數(shù)據(jù),以及向主節(jié)點反饋響應結果。從節(jié)點控制模塊響應接受到的命令消息,執(zhí)行相應操作,訪問地理信息數(shù)據(jù)庫,讀取相應的數(shù)據(jù)進行繪制并顯示。
3 系統(tǒng)同步技術
作為一個分布式協(xié)同顯示系統(tǒng),為了能給用戶呈現(xiàn)邏輯上唯一的、完整的、正確的大視景,各從節(jié)點之間的顯示同步顯得尤為重要,因此在實現(xiàn)過程中,必須對同步實施嚴格精準的控制,具體的指令流同步控制邏輯如圖4所示。
由圖可以看出,系統(tǒng)需要同步的操作主要分為三大類:繪圖、視圖變更、系統(tǒng)命令。繪圖命令包括繪制和顯示;視圖變更操作包括改變地圖投影類型和改變圖層顯示控制;系統(tǒng)命令指少量操作系統(tǒng)消息。這些同步的實現(xiàn)根據(jù)所涉及的層次由低到高劃分為:幀緩存交換同步,數(shù)據(jù)同步,消息同步。
(1)幀緩存交換同步
圖形顯示卡由兩組幀緩存的支持以達到幀與幀之間平滑的過渡。其中一組緩存用于畫面的顯示,而畫面的繪制則是在另一組緩存上進行,當一幅畫面繪制完成后這兩組幀緩存進行交換,新完成繪制的畫面將被顯示,而下一幅畫面將被繪制。這么做的目的在于避免發(fā)生在相同的幀緩存上進行顯示和繪制的工作所造成的畫面失真感。
幀緩存交換同步指的是各從節(jié)點圖形顯示卡的前后緩沖區(qū)交換動作的同步性:在二維GIS動態(tài)推演和三維GIS中,各從節(jié)點的幀繪制時間互有長短,若我們沒有有效的手段控制各幀繪制完成后幀緩沖交換動作的同步進行,那么繪制較快的從節(jié)點將提前進入下一幀的顯示,這就造成了各從節(jié)點顯示內容的不一致性。例如,顯示移動目標時,如果其中一個從節(jié)點先進行幀緩沖交換而提前進入下一幀的顯示,那么大視景顯示矩陣的接縫處就會產生撕裂感。我們是用軟件實現(xiàn)幀緩存交換同步的,通過網絡進行消息傳遞,控制圖形API的SwapBuffers指令同步執(zhí)行:具體來說是使用網絡柵障(networkbarrier)功能,各從節(jié)點SwapBuffers命令的同步執(zhí)行由主節(jié)點控制,從節(jié)點在完成繪制并能夠進行幀緩存交換時將到達同步點,此時從節(jié)點將通知主節(jié)點并進入等待狀態(tài);繪制較快的從節(jié)點進程將被阻塞,直到最后的節(jié)點也完成繪制抵達同步點后,主節(jié)點向所有從節(jié)點發(fā)送繼續(xù)執(zhí)行的命令,各節(jié)點才同時執(zhí)行SwapBuffers指令,從而達到同時交換幀緩存的效果。由于同步的手段是通過網絡以軟件方式實現(xiàn)的,幀緩存交換同步在效果上可能會受到網絡延時影響。
(2)數(shù)據(jù)同步
數(shù)據(jù)同步指的是,主節(jié)點作為全景操作控制端,導入新的地圖圖層或者添加新的標繪圖形,從節(jié)點必須同步導入相同的地圖圖層或者同步畫上相同的標繪圖形。系統(tǒng)的數(shù)據(jù)同步是以主節(jié)點“推”的方式實現(xiàn)的,即主節(jié)點有新的數(shù)據(jù)輸入時,主動向所有從節(jié)點廣播數(shù)據(jù)同步消息,如果是主節(jié)點導入外部數(shù)據(jù),主節(jié)點就將外部數(shù)據(jù)源地址發(fā)送給所有從節(jié)點,各從節(jié)點自行從該數(shù)據(jù)源中取相應數(shù)據(jù);如果是主節(jié)點自行添加標繪數(shù)據(jù),主節(jié)點就向所有從節(jié)點發(fā)送一份該標繪層的數(shù)據(jù)。
(3)消息同步
此處的消息包括GIS平臺定義的消息以及少量操作系統(tǒng)消息。比如,地圖投影坐標系的改變、圖層顯示控制的改變、窗口大小的改變等等。主節(jié)點一旦截獲這些來自平臺或者操作系統(tǒng)的消息,就立即通知所有從節(jié)點,從節(jié)點根據(jù)收到的消息作同步響應動作。
4 結語
目前該系統(tǒng)已經應用于某軍區(qū)的GIS作戰(zhàn)綜合應用系統(tǒng),獲得良好的表現(xiàn)。超高分辨率大視景顯示系統(tǒng)為GIS應用提供一種多通道并行協(xié)同圖形輸出,實現(xiàn)超高分辨率顯示的方法,適用于軍事指揮調度、交通路況分析、搶險救災分析、電網鋪設分析、國土資源調查等大型GIS應用場景。
評論