1 引言
地理信息系統(Geographic Information System, 簡稱GIS)產品被廣泛應用于交通、測繪、環境、國防、航空航天等與國民經濟乃至國家命脈相關的重要領域,帶來了顯著的經濟和社會效益。近年來隨著嵌入式技術的迅猛發展, GIS 技術也逐步應用于以手機、掌上電腦為代表的移動終端, 使得嵌入式GIS 成為當今GIS 研究領域的一個重要趨勢。 當前地圖數據量巨大,要求地圖刷新頻率高、實時性強, 普通桌面系統的地圖顯示方法很難適用于存儲器容量小、處理器性能低的嵌入式系統, 提高地圖的顯示效率成為嵌入式GIS產品研發的首要問題。 矢量地圖擁有數據結構緊湊,冗余度低; 圖形顯示質量好, 精度高, 不失真等優點,目前已被廣泛應用與嵌入式移動終端。 本文針對矢量電子地圖研究了地圖顯示數學模型, 設計了基于LOD的逐層分塊的地圖數據組織結構, 并以此為基礎建立網格索引, 通過實驗證明該方法可有效提高地圖顯示速度。
2 矢量地圖顯示數學模型
地圖的數據組織結構是影響地圖顯示速度的核心因素。 因此, 要對矢量地圖顯示數學模型分析研究,合理組織地圖數據, 才能有效提高地圖顯示速度。
由于電子地圖的數據量較大, 嵌入式設備的地圖數據一般會存放在外存儲器中, 系統顯示地圖時需要先將地圖數據讀入內存, 再由地圖繪制程序解析內存中的數據, 將地圖顯示在屏幕上。 假設某矢量地圖數據占用物理存儲空間為D, 數據讀入內存速度為V1,顯示速度為V2, 數據讀取準備時間為f (n) , 用戶可等待時間為T, 嵌入式設備內存容量為R, 則有以下公式成立:
嵌入式設備內存容量一定, 若V1, V2, T 為常數,則必須減少D 和f (n)才能滿足數據顯示和處理的要求,提高地圖的顯示速度。
通過對地圖顯示數學模型的分析可以發現, 要使地圖的顯示速度達到最快, 需要解決兩個問題: 一是盡量減少地圖非屏幕顯示區域的數據量, 即根據顯示范圍限制讀入的數據量; 二是要能以最快的速度從龐大的地圖數據中找到當前顯示范圍所涉及的相關數據。
針對問題一, 本文采用逐層分塊策略組織地圖數據, 減少非屏幕區域的數據讀入; 對于問題二, 則對圖塊建立索引, 以降低外存調度當前顯示數據的時間。
3 矢量地圖快速顯示策略
3.1 數據組織模型設計
作者引入多細節層次LOD(Levels of Detail)技術思想,該技術最初是一種運用于控制三維場景復雜程度的技術, 其基本思想是: 在建立地表模型時, 應充分考慮人的視覺特點, 對處于視覺不同區域的模型采用不同的分辨率表示, 這樣整個地表模型就表現為以"塊"為單位的具有多分辨率的細節層次模型, 當從近處觀察物體時, 采用精細模型, 當從遠處觀察物體時采用較為粗糙的模型[5]. 這一思想不僅限用于三維場景, 對于矢量地圖的快速顯示同樣適用。
系統對每個地圖分別制作多個比例尺的地圖數據,同時參考地圖地理要素的規范, 根據要素的重要程度將不同比例尺地圖中的圖層劃分為不同的顯示層次,這樣電子地圖在縮放顯示過程中, 可根據當前顯示比例尺, 確定需要顯示的地理要素。 同時考慮到嵌入式設備顯示屏幕較小, 顯示覆蓋范圍相對有限, 需根據顯示屏幕尺寸對矢量地圖數據進行分塊處理, 以減少地圖顯示時讀入內存的冗余數據。 通過上述對矢量地圖的分層分塊組織, 便形成了基于LOD 的逐層分塊地圖數據組織模型, 如圖1所示。
地圖顯示時, 在不同顯示層次上需要讀入相應的數據集合, 并實現根據設備顯示范圍讀入相應圖塊數據, 從而大大減少地圖數據讀取和顯示數據量, 提高了地圖顯示的效率。
圖1 基于LOD 的逐層分塊地圖數據組織模型
3.2 矢量地圖數據分層處理
在地圖的顯示過程中, 地圖縮小時屏幕覆蓋地圖的范圍增大, 只需顯示主要地理要素對象, 相對次要的地理要素可隱藏而不顯示; 地圖放大顯示時屏幕覆蓋范圍減小, 在當前已顯示的地理要素基礎上, 相對次要的地理要素也需顯示出來。 基于這一特性, 可將地圖數據所描述的地理要素依據其重要性特征分為多個數據層次, 即對所需顯示的地圖按照圖層的重要程度設置一個顯示參數, 該參數代表地圖放大到什么程度時, 才顯示該圖層。 劃分的地圖數據層次依次記為L1, L2, L3, …, 其中L1 記錄地圖中最主要的地理要素,L2記錄次重要的地理要素, L3記錄一般性地理要素, 依此類推。
實際操作時, 對地圖數據分層處理顯示參數的確定非常重要, 其選擇的優劣直接影響地圖顯示效率。
本文依據地理要素的屬性, 按照以下原則確定顯示參數將:
① 對于基礎地理要素, 如道路、橋梁、河流、行政區邊界等, 在國家標準《基礎地理信息要素分類與代碼》中采用要素編碼區分了其重要性特征, 可以參考其要素編碼設定顯示參數;② 對于非基礎地理要素, 如學校、酒店、商業街區、街區居民地等, 其重要性特征沒有統一的標準, 則根據這類地理要素自身包含的等級屬性, 如酒店星級、街區面積等來確定顯示參數。
以某城市公路網為例, 采用道路要素編碼為顯示參數進行分層處理, 可分為4 個層次: L1 記錄城市一級、二級道路: 高速公路及環線; L2 記錄城市三級道路: 市內主干道, L3 記錄四級道路: 市內次干道, L4 記錄城市五級道路: 市區分支街道。 地圖顯示時, 不同層次細節顯示需要在上一層次顯示的基礎上讀入相應Li 的數據集合來支持, 如圖2 給出某城市公路網L1~L4 的顯示效果。
圖2 某城市公路網不同層次顯示效果圖
3.3 矢量地圖數據分塊方法
要提高地圖的顯示速度, 應盡量減少地圖非屏幕顯示區域的數據量, 因此需對矢量地圖進行分割形成地理范圍更小的圖塊, 并將圖塊作為嵌入式GIS 系統地圖數據處理的基本單元。
對于矢量數據的分塊方法分別是對點、線、面的矩形分割, 即將地圖數據根據屏幕顯示范圍大小橫向分為N 份, 縱向分為M 份, 形成由N×M 個同等大小的基本地理單元組成的圖塊集合。 地圖顯示時, 系統只需根據顯示層次讀入與顯示覆蓋區域相交的部分圖塊, 快速將地圖繪制在屏幕上。
在對地圖數據進行分塊處理時, 需要重點考慮分割圖塊的大小。 因為一定矢量數據劃分的圖塊較大, 則讀入內存的非屏幕顯示區域的數據就會越多, 增加了不必要的冗余數據; 而數據劃分的圖塊越小, 讀取數據的準備時間就越長, 且對矢量數據的分割還會增加顯示的數據量, 也會影響顯示速度。 因此在數據分塊時要根據實際屏幕顯示尺寸和地圖比例尺綜合考慮分塊大小。
若已知屏幕分辨率為L×W 像素, 地圖的比例尺為1:S, 地圖經度覆蓋范圍X, 緯度覆蓋范圍Y, 地圖表示精度記為A, 地球圓周單位秒代表距離為m (m 為常量, m ≈31 米), 記地圖橫向劃分圖塊數量為N, 縱向劃分圖塊數量為M, 則有以下公式:
其中, X, Y 單位為秒, A=0.1×10-3×S.
以比例尺為1:50 000, 經度范圍25', 緯度范圍15'
的矢量地圖和800×480 的屏幕為例, 可由式(2)推導得該地圖應劃分為12×12 塊圖塊。
3.4 矢量地圖網格索引
如前文所述, 提高地圖顯示速度還必須使地圖顯示時能快速的從外存檢索和調度當前顯示范圍所涉及的矢量數據, 因此還需建立空間索引。針對逐層分塊的地圖組織策略, 建立了基于文件存儲的網格索引。
基于文件的網格索引以索引文件存儲索引數據, 通過名為POSITION 的位置指針可以對每個空間目標的首地址進行快速定位, 具有操作簡潔、直接訪問、適應廣泛的優點, 其索引結構如圖3 所示。
圖3 基于文件的網格索引結構圖
索引數據按地圖層次存儲, 每層索引數據與相應的地圖分層數據對應。 索引數據結構包括索引頭、層次描述信息和每層劃分圖塊索引: 索引頭主要包括該地圖數據的名稱、編號和劃分層數; 層次描述信息包括各層次的編號、左下角點坐標、分塊的寬度和高度、分塊的行數和列數以及該層圖塊索引在索引文件中的位置; 圖塊索引內容主要包括圖塊數據在地圖數據文件中的位置指針及其地理要素概要信息, 包括標識、要素類型編碼、外接矩形、占用存儲空間大小等。
建立網格索引后, 地圖顯示時系統首先計算出當前層次覆蓋顯示區域的圖塊; 然后根據每個圖塊的地理要素信息進行重復顯示判斷, 過濾掉已經顯示的地理要素; 再根據位置指針, 從地圖文件中讀取該圖塊的矢量數據, 進行顯示處理。 因此網格索引能直接過濾掉非屏幕顯示區域圖塊及地理要素, 極大地減少地圖數據的讀取量, 并通過索引文件中的POSITION 指針直接從地圖文件中查找到矢量數據, 有效縮短了檢索時間。
4 性能測試與分析
為驗證本文設計的嵌入式GIS 地圖快速顯示方法的有效性, 本文選擇UT6410?開發板搭建嵌入式試驗平臺進行了測試。 實驗平臺擁有主頻667MHz 的ARM處理器、128MB 內存、8GB SD 卡存儲器和分辨率800×480 的顯示屏幕, 并搭載嵌入式Linux 系統; 測試地圖是比例尺分別為1:50 000 和1:250 000 同一地區的全要素矢量地圖。 實驗將采用本文方法及未采用本文方法時直接全圖讀入內存顯示方法的地圖顯示性能進行了對比測試, 實驗結果參見表1.
表1 采用逐層分塊法與全圖讀入法地圖顯示性能對比
由實驗結果可以看出, 在矢量地圖數據相同的條件下, 采用逐層分塊并建立網格索引方法比未采用此方法時的地圖顯示速度提高了6~8 倍, 并達到了平滑漫游和縮放的顯示要求。
5 結語
為使矢量地圖能夠在嵌入式GIS 平臺上實現快速顯示, 本文基于對矢量地圖顯示數學模型的分析, 從減少地圖非屏幕顯示區域的數據量和快速檢索并調度當前顯示數據兩方面入手, 引入LOD 思想構建了逐層分塊地圖數據組織模型, 結合嵌入式矢量地圖數據訪問特點重點研究了地圖分層、分塊的策略及實施, 并在此基礎上建立了文件存儲的網格索引。 定性分析和實驗結果表明, 本文提供的方法能夠很好地滿足嵌入式環境下地圖快速顯示的要求, 有效提高地圖操作效率。
評論
查看更多