<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 手機(jī)與無線通信 > 設(shè)計(jì)應(yīng)用 > 基于GPS船用導(dǎo)航儀的嵌入式電子海圖數(shù)據(jù)的制作與顯示

          基于GPS船用導(dǎo)航儀的嵌入式電子海圖數(shù)據(jù)的制作與顯示

          作者: 時間:2010-11-05 來源:網(wǎng)絡(luò) 收藏

            圖3 為電子海圖顯示系統(tǒng)開機(jī)時的顯示畫面。


          圖3 電子海圖顯示系統(tǒng)開機(jī)時的顯示畫面

            (2) 電子海圖數(shù)據(jù)的顯示方法

            電子海圖數(shù)據(jù)的實(shí)時顯示是系統(tǒng)的核心程序。該程序根據(jù)給出的中心點(diǎn)位置(通常為GPS 給出的船位點(diǎn)坐標(biāo))及顯示比例范圍參數(shù),確定需要顯示的空間數(shù)據(jù)范圍,并從海圖文件中找出符合顯示范圍的數(shù)據(jù),從海圖文件中讀出圖層分層控制信息以實(shí)現(xiàn)電子海圖的分層顯示控制,最后按各類實(shí)體對應(yīng)的符號要素代碼繪制相應(yīng)的圖形符號在內(nèi)存中快速完成海圖的繪制。電子海圖顯示程序流程為:1、根據(jù)中心(船位)經(jīng)緯度及顯示比例參數(shù),計(jì)算出顯示數(shù)據(jù)塊的大?。?、從海圖文件中找出符合顯示塊范圍的所有點(diǎn)、線、面數(shù)據(jù);3、將要顯示的點(diǎn)、線、面數(shù)據(jù)按類型及屬性在顯示緩存中按對應(yīng)的位置、圖案顏色、中文標(biāo)注進(jìn)行畫圖;4、顯示涮新屏幕;5、按操作命令選擇顯示要素,重新計(jì)算顯示數(shù)據(jù)塊。

            嵌入式電子海圖顯示系統(tǒng)中使用了16M 字節(jié)的內(nèi)存空間,電子海圖數(shù)據(jù)一般在10MB左右,剩下4MB 中用于顯示緩存作圖的為480KB,這是按800*600 點(diǎn)顯示屏幕計(jì)算的容量。剩下的空間用于程序計(jì)算及漢字庫、文本等數(shù)據(jù)的存放。由于顯示緩存只有一塊,因此在每次顯示范圍發(fā)行變化時,都要從內(nèi)存中將海圖數(shù)據(jù)重新讀算一遍,再重新進(jìn)行畫圖。這在海圖移動操作中會影響涮新的速度,使用大容量位圖緩沖內(nèi)存技術(shù)可提高海圖在移動或漫游時的涮新速度。圖4 為嵌入式電子海圖顯示效果圖。


          圖4 電子海圖顯示效果圖

            4 小結(jié)

            嵌入式電子海圖儀中海圖數(shù)據(jù)使用自定義數(shù)據(jù)格式,海圖數(shù)據(jù)格式與處理顯示方案自成一體,海圖數(shù)據(jù)按點(diǎn)、線、面類型分類,并且按一定的規(guī)律連續(xù)存儲,有利于知識產(chǎn)權(quán)的保護(hù),也可大大減小文件數(shù)據(jù)的容量。缺點(diǎn)是數(shù)據(jù)文件的交換性較差,不適合全球性網(wǎng)絡(luò)式的應(yīng)用模式。

          linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)

          上一頁 1 2 3 下一頁

          關(guān)鍵詞: 嵌入式

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();