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