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