

摘 要 針對電子海圖顯示應用場景,本文提出了電子海圖自動調顯應遵循的4條規則,并重點介紹了規則的實現,其中對自動調顯過程中比例尺的選取、屏幕留白的格網化處理、自動調顯的整體流程進行了詳細描述。
【關鍵詞】電子海圖 S57-標準 自動調圖 自動調顯 拼接顯示 屏幕格網
1 引言
電子海圖的顯示是電子海圖系統的一個最基本的功能,當前很多電子海圖系統的顯示還是基于單幅圖模式的,對其的縮放實質上是單幅海圖的矢量縮放;也有少數電子海圖系統實現了海圖的自動調顯功能,但普遍都存在這樣那樣的問題。所有這些問題的核心都可以歸結到對海圖自動調顯規則的處理上。本文結合電子海圖的使用場景,提出電子海圖自動調顯應遵循的規則,研究并實現了將物理上離散分布的電子海圖數據通過自動調顯處理形成邏輯上一張圖在屏幕上的無縫拼接顯示。
2 自動調顯原理
電子海圖的顯示本質上包含兩個過程:數據加載和數據顯示。單幅圖模式,由用戶通過鼠標或者鍵盤操作選擇要打開的海圖數據進行數據加載,然后完成顯示;自動調顯模式,將完全解放用戶的雙手,由自動調顯程序根據當前窗口顯示范圍和顯示比例尺信息,基于海圖顯示不留白的核心原則,自動完成最合適海圖數據的搜尋并調度顯示,直至將屏幕全部覆蓋或最大覆蓋。
3 自動調顯規則
規則1:窗口顯示范圍內不能留白,除非這個區域沒有任何比例尺的數據,這是自動調顯最核心規則,其他規則必須以此為前提;
規則2:窗口顯示范圍內如果存在多個比例尺的數據時,應首先按比例尺最優匹配程度排序,然后按此順位依次掃描數據進行屏幕覆蓋檢測,直至數據將屏幕完全覆蓋或最大覆蓋;
規則3:多個比例尺數據如果存在重疊部分,必須保證大比例尺數據在最后繪制顯示,以始終呈現給用戶在給定條件下最精細的數據表達為目的;
規則4:為了加快判斷并保證小比例尺下不顯示大比例尺航海圖,對于顯示比例尺:數據比例尺大于等于100(datascale*100 <= dispscale)的航海圖不參與搜索。
4 自動調顯規則實現
以上規則中,以規則1為第1準則,確保顯示不留白,盡可能顯示更精細的數據,并在多比例尺數據重疊時,保證大比例尺數據始終在最上層顯示。下面將從比例尺、窗口顯示范圍、數據范圍,并結合屏幕格網,綜合運用多種算法實現多比例尺電子海圖的自動調顯。
4.1 最佳數據比例尺確定
根據人眼視覺感受,理論上按數據比例尺進行1:1顯示最符合地圖瀏覽查看。基于此原理,最佳數據比例尺的確定,按數據比例尺與當前顯示比例尺的匹配程度確定。
假設當前共有6個比例尺的海圖數據,圖1展示了海圖顯示過程中如何根據顯示比例尺調度數據比例尺的關系。
4.2 按數據比例尺最優匹配順序排序
在進行全球多尺度電子海圖調度顯示時,大部分情況下單憑一個最佳數據比例尺數據是無法做到完全覆蓋屏幕的。這時候就需要按照比例尺匹配程度逐個搜尋。所以在按4.1確定最佳數據比例尺后,還需要據此確定第二、三最佳等等順位的比例尺。此處通過比例尺與最佳比例尺做差值,按絕對值從小到大排序,此順序即為比例尺最優匹配順位。
4.3 窗口顯示范圍與數據范圍相交判斷
為提高顯示效率,加快數據的搜尋過程,依次輪循各比例尺數據進行屏幕覆蓋情況判斷時,應首先將電子海圖數據的地理范圍與窗口顯示范圍進行相交判斷,過濾掉一部分不相交的數據。
4.4 屏幕留白格網法處理
此處采用屏幕格網法處理電子海圖顯示留白問題,將窗口視圖區域按照64*64像素大小的格子進行格網劃分。通過檢測數據范圍對窗口范圍的覆蓋情況,賦值格網單元。最后通過判斷屏幕格網是否還有空白確定海圖是否已經完全覆蓋屏幕。
圖2為根據窗口視圖區域大小劃分為6X 6(6行6列)的格網,紅色單元格為有效數據覆蓋的范圍,白色單元格為無效數據范圍,尚沒有被有效數據覆蓋,因此自動調顯程序還需要繼續掃描數據,以找到合適數據將剩余的白色單元格覆蓋,最終達到屏幕不留白的完全覆蓋。
5 自動調顯整體流程
綜上,可以看出自動調顯過程是綜合運用多種算法和多種方式互補控制協同完成的。下面將結合以上描述,完整闡述整個流程。
首先,根據當前顯示比例尺確定最佳數據比例尺,接著確定比例尺最優匹配排序。
其次,分別構造多比例尺數據合并覆蓋屏幕格子對象(sMulitScaleUnionCoverGrid)、當前比例尺數據合并覆蓋屏幕格子對象(sCurScaleUnionCoverGrid)和當前數據覆蓋屏幕格子對象(sCurDataCoverGrid),用以自動調顯過程中檢測屏幕是否已被完全覆蓋。
最后,結合矩形相交算法和格網法,開始自動調顯兩層循環邏輯處理,外層輪循處理各比例尺,內層輪循處理當前比例尺下各個數據。
(1) 如果當前處理數據已能完全覆蓋屏幕(sCurDataCoverGrid),此時找到最佳匹配數據,將待調度列表清空并放入數據,然后退出輪循,調入并顯示數據;
(2)如果當前處理數據不能完全覆蓋屏幕,則將數據放入待調度列表,同時將sCurDataCoverGrid合并到sCurScaleUnionCoverGrid,判斷sCurScaleUnionCoverGrid是否完全覆蓋屏幕,如果完全覆蓋,則退出輪循,調入并顯示數據,如果不能完全覆蓋則繼續下一個同比例尺數據,重復1)操作;
(3)如果直到當前比例尺數據搜尋完畢還是未能完全覆蓋屏幕,則將sCurScaleUnionCoverGrid合并到sMulitScaleUnionCoverGrid,判斷sMulitScaleUnionCoverGrid是否完全覆蓋屏幕,如果完全覆蓋,則退出輪循,調入并顯示數據;如果未能完全覆蓋則繼續下一個次優比例尺搜尋,重復1)2)操作;
(4)直至所有比例尺都搜尋完畢,如果數據還是未能完全覆蓋屏幕,即最糟糕的情況,也調入列表中所有數據完成最大覆蓋顯示。
6 實驗原型及分析
為測試調度規則、算法的可用性和顯示性能,本文基于WinXP操作系統,硬件配置為i7-3770 3.4GHz,顯示器分辨率為1920*1080。使用VS2010+QT4.8.4開發平臺,采用140幅S57標準海圖數據做實驗。自動調顯模式下,海圖顯示符合規則要求,縮放、漫游等顯示性能基本都在100ms以內,能很好的達到使用需求。圖3為自動調顯某時刻示意圖。
7 結束語
本文通過對電子海圖自動調顯規則的研究,提出了電子海圖自動調顯過程中需要遵循的4條規則。其中重點介紹了對數據比例尺的擇優選取以及對屏幕留白問題的格網法處理,最后詳細闡述了整個自動調顯的邏輯流程。根據本文給出的策略和方案,實現了電子海圖的自動調用顯示,并成功應用于多型電子海圖顯示系統中,取得了良好的效果。
參考文獻
[1]劉燦由,崔鐵軍,郭黎,等.電子地圖多尺度快速表達的關鍵技術研究[J].地理信息世界,1009,7(03):70-74.
[2]劉燦由,翟京生,張威,陳超,朱穎,牛紅光.基于S-101的全球多尺度電子航海圖調顯方法[R].測繪科學技術報,2013,30(05):530-534.
[3]胡志蕊,祝國瑞,徐智勇.LOD技術與制圖綜合在多尺度地圖適時顯示中的應用研究[J].測繪科學,2006,31(05):78-79.
[4]朱雅音,王化文,萬豐,于雷易.確定兩個任意簡單多邊形交、并、差的算法[J].計算機研究與發展,2003,40(04):576-583.
[5]陸毅,翟京生,夏啟兵等.國際標準電子海圖顯示中幾個關鍵技術的實現[J].測繪科學技術學報,2011,28(04):300-303.
作者簡介
門偉(1986-),男。大學本科學歷。現為華北計算技術研究所工程師。研究領域為通用跨平臺嵌入式地理信息系統、地圖可視化技術。
作者單位
1.華北計算技術研究所 北京市 100083
2.空軍指揮學院模擬仿真 北京市 100000
3.中國電子設備系統工程公司研究所指揮自動化 北京市 100039