嵌入式車載導(dǎo)航電子地圖的設(shè)計和實現(xiàn)
1.3.1 電子地圖的文件格式與數(shù)據(jù)組織
在電子地圖地理信息系統(tǒng)中,實行屬性數(shù)據(jù)與空間數(shù)據(jù)的分開儲存。其中,空間數(shù)據(jù)以電子地圖的自身格式在文件中進行保存,而屬性則以數(shù)據(jù)鏈形式在一份表中實現(xiàn)儲存。且兩者利用一定索引機制便可有效地關(guān)聯(lián)。電子地圖以土層為依據(jù)進行地理管理。每個圖層均由屬性數(shù)據(jù)表結(jié)構(gòu)文件、屬性數(shù)據(jù)文件、交叉索引文件、空間數(shù)據(jù)文件多個基本文件構(gòu)成??臻g數(shù)據(jù)包括空間對象的顏色信息、坐標信息、幾何類型等,當用戶對索引字段加以規(guī)定后,索引文件便會在地理信息系統(tǒng)中自動生成。
電子地圖通過“Table”的形式來建立屬性數(shù)據(jù)與空間實體間的對應(yīng)關(guān)系,并以此為基礎(chǔ)建立起電子地圖的查詢檢索系統(tǒng)。通過定義空間數(shù)據(jù)結(jié)構(gòu),對空間實體類型進行確定。數(shù)據(jù)庫關(guān)系模型選用一組邏輯嚴密、結(jié)構(gòu)簡單的二維平面表為操作對象,Table中嚴禁重復(fù)存儲,從而保障空間內(nèi)唯一的實體記錄。在描述空間實體類型的多種屬性時,將其進行多個Table的分解,從而使其形成多重的鏈表關(guān)系,多個Table屬性信息同空間實體發(fā)生聯(lián)系,進而構(gòu)成屬性數(shù)據(jù)同空間實體間多重對應(yīng)的關(guān)系。
1.3.2 電子地圖的數(shù)據(jù)索引機制
電子地圖數(shù)據(jù)索引機制的索引設(shè)計過程如下:當從屬性信息中進行空間信息的查詢時,電子地圖首先應(yīng)在屬性文件中找到數(shù)據(jù)庫中的相應(yīng)數(shù)據(jù)。此時就可在索引文件中選取相應(yīng)指針,其所指的地圖對象即為同數(shù)據(jù)庫記錄空間相對應(yīng)的對象。從而能夠在空間信息中進行屬性信息的查詢。(如對于某一空間對象已在地圖上查出,電子地圖便可在空間文件中讀出同空間信息相對應(yīng)的記錄號,以此為依據(jù),便可實現(xiàn)該地圖對象底性信息在屬性數(shù)據(jù)文件中的查詢。)而MapInfo地理信息數(shù)據(jù)格式的應(yīng)用,則可較好地落實上述索引思路,且能夠按照土層間的疊加關(guān)系進行存放與顯示。
1.3.3 電子地圖的圖層與圖元
在MapX中,對于MapInfo表的地圖標示均是以圖層的形式進行顯示的,這些圖層中除有地物元素位置外,默認為透明。疊加圖層后,便可看到地圖的各種方面。圖元則包括區(qū)域?qū)ο蟆Ⅻc對象、線對象。在MapX中,通過對Feature對象的利用便可實現(xiàn)對上述地圖對象的房問題,可完成創(chuàng)建、自定義、編輯、顯示等操作。
1.3.4 應(yīng)用Geoset,實現(xiàn)地圖管理
對于滿意的地圖,便可進行保存,在驅(qū)動器中將其寫入Geoset文件當中。將Geoset文件打開,全部地圖的設(shè)置和土層均為保存時狀態(tài)。此時,可應(yīng)用MapX自帶工具Geoset Manager可對.gst文件進行管理,來對管理縮放級別、圖層、表和其他屬性進行修改。
2 電子地圖模塊的二次開發(fā)
基于Active技術(shù)的MapX控件為開發(fā)人員的二次開發(fā)提供了方便。在VC++等可視化開發(fā)環(huán)境中,將MapX控件嵌入到窗體中即可進行編程、設(shè)置屬性等操作,完成空間數(shù)據(jù)查詢,地理空間數(shù)據(jù)的可視化,編碼等地圖信息系統(tǒng)功能。
2.1 安裝MapX mobile
在MapX安裝完畢后,添加MapX空間便可對地圖進行顯示。具體設(shè)計步驟為:建立標準exe于編程環(huán)境當中,從“工程”菜單中選取“部件”,隨即將“部分對話框打開”,于部件列表內(nèi),將“MapX mobile V5.02”找到,完成復(fù)選后,點擊“確定”。隨后工具欄中便會將Map空間圖標顯示出來,此時,單擊“控件”,便完成了工程中Map空間的引入。
2.2 地圖的基本操作
車載嵌入式車載導(dǎo)航中,主要通過DataSet對象和Layer對象操作來完成MapX地圖操作。對同此類型對象的應(yīng)用,仍可將地圖土層添加到應(yīng)用程序當中。而屬性數(shù)據(jù)操作的完成,則可通過建立數(shù)據(jù)綁定、數(shù)據(jù)源設(shè)置的方式實現(xiàn)。而電子地圖的加載主要通過以下兩種設(shè)計形式實現(xiàn)。一是在MapX中加載一個Geoset對象,加載完成后,MapX將各個圖層自動打開,在地圖窗口中進行疊加,并對圖層屬性信息進行設(shè)置。二是在MapX中加載一個圖層,該種方法是對一個MapInfo文件的直接加載,待圖層打開后,其將在地圖窗口內(nèi)完成自動的疊加。
2.3 地圖的刷新
MapX首先繪制動態(tài)圖層以外的全部圖層,并在某一地方進行存儲,當其他圖層未變而動態(tài)圖層發(fā)生變化時,便可通過已存儲的動態(tài)圖層和數(shù)據(jù)來實施覆蓋處理,進而現(xiàn)實處理結(jié)果。地圖的刷新過程設(shè)計為依次全部刷新的形式,從最小外界矩形窗口區(qū)域開始,來完成整合刷新過程。該方法的優(yōu)點是相比于整個地圖窗口的刷新形式要更加快速。同時,因受地圖刷新速度的影響,MapX難以同時完成多目標的刷新,這時iju可進行統(tǒng)一刷新鬧鐘的設(shè)置,從而使每個一定時間間隔,目標地圖便會自動刷新一次。
2.4 地圖調(diào)用
首先,在工程中加入MaoX.cpp和MapX.h文件。在菜單“Project”中選擇“Files”命令,隨后將對話框打開選取MaoX.cpp和MapX.h文件加入到MapX系統(tǒng)當中。將MapX對象頭文件加入到視圖(包含MapX)中。針對MapX進行一個資源ID的創(chuàng)建,通過“新建一名稱輸入”的操作來完成。進行消息映射函數(shù)SIZE和CREATE的創(chuàng)建,在“視圖/類導(dǎo)向”中選擇視圖類,并將兩個信息在消息框中完成分別選擇,之后通過函數(shù)的條件,來對代碼進行編輯,導(dǎo)入地圖。通過類向?qū)?,來進行SETFOCUS映射函數(shù)的創(chuàng)建,使得窗口在獲得焦點的同時,地圖空間也可獲取焦點。
2.5 圖層的控制
GIS軟件中,通常需對圖層屬性進行設(shè)置,而通過對顯示圖層控制方法的應(yīng)用便可實現(xiàn)此項功能,借助于MapX中可選擇、可顯示、自動標注、可編輯的四種屬性設(shè)置來實現(xiàn)地理信息維護與查詢功能的發(fā)揮。
2.6 鷹眼圖的實現(xiàn)
鷹眼圖是基于嵌入式車載導(dǎo)航電子地圖的一項基本功能,其實現(xiàn)思路為:進行一個無模式對話框的創(chuàng)建,確立HAWK為ID。建立MapX空間來對鷹眼圖進行控制,并創(chuàng)建一新圖層于鷹眼圖中,以此添加矩形框,對主視圖中地圖作出表示,且該矩形框的位置和大小不隨主視圖邊界變化而發(fā)生變化。添加一個按鈕于對話框,依據(jù)按鈕下的相應(yīng)函數(shù)來操作鷹眼圖MapX空間,從而使其對Map空間的操作得以實現(xiàn),且當按下對話框按鈕后,便可對CLICK信息進行發(fā)送。依靠此設(shè)計程度的鷹眼圖可在EVC模擬器上運行,并具備了車載導(dǎo)航電子地圖的基本功能。
3 結(jié)束語
嵌入式車載導(dǎo)航在車載導(dǎo)航領(lǐng)域中有廣泛的應(yīng)用,隨著社會信息化的發(fā)展,嵌入式車載導(dǎo)航電子地圖的功能必將進一步完善。因此,嵌入式車載導(dǎo)航的應(yīng)用前景將十分廣闊。本文引用地址:http://www.ex-cimer.com/article/148024.htm linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
評論