版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 緒 論</b></p><p> 一、選題背景以及意義</p><p> 隨著計(jì)算機(jī)技術(shù)的飛速發(fā)展, 全球定位系統(tǒng)(GPS) 和地理信息系統(tǒng) (GIS) 在各行各業(yè)中得到廣泛的重視和應(yīng)用, 兩者的集成化程度也日益加強(qiáng),實(shí)現(xiàn)了GPS 導(dǎo)航信息在GIS上的可視化、一體化和集成化,能夠在地圖上實(shí)時(shí)動(dòng)態(tài)地跟蹤目標(biāo)和顯示地理位置。GPS定位為
2、GIS提供了采集數(shù)據(jù)信息的新方法,GIS為GPS提供了可視化的原始地圖背景,兩者關(guān)系愈加緊密。</p><p> 電子地圖是隨著計(jì)算機(jī)技術(shù)的發(fā)展而產(chǎn)生的一種嶄新的地理信息載體,具備地圖的內(nèi)涵, 是數(shù)字地圖在計(jì)算機(jī)屏幕上的符號(hào)化顯示, 具有信息豐富、直觀易懂、更新方便、實(shí)用靈活等特點(diǎn), 因而受到用戶的普遍歡迎。所以電子地圖與GPS定位系統(tǒng)相結(jié)合成為兩者未來發(fā)展的必然趨勢。</p><p>
3、 隨著GPS車載導(dǎo)航設(shè)備和PDA設(shè)備的快速發(fā)展,GPS、電子地圖與掌上電腦技術(shù)相融合,逐步形成一個(gè)嵌入式的掌上導(dǎo)航系統(tǒng),是當(dāng)前GIS、GPS研究領(lǐng)域的主要趨勢。如今,作為GPS與GIS 很好的結(jié)合體,GPS車載導(dǎo)航系統(tǒng)在國內(nèi)外市場已經(jīng)逐步普及,成為汽車行業(yè)的寵兒。</p><p> 本文選題意義在于利用GIS矢量數(shù)據(jù)(shapefile非拓?fù)潢P(guān)系數(shù)據(jù))作為電子地圖格式,結(jié)合GPS,在電子地圖上實(shí)現(xiàn)實(shí)時(shí)定位,對(duì)
4、基于電子地圖GPS定位技術(shù)的研究打下了堅(jiān)實(shí)基礎(chǔ)。</p><p><b> 二、國內(nèi)外研究進(jìn)展</b></p><p> 作為GPS導(dǎo)航與GIS的結(jié)合體,嵌入式掌上導(dǎo)航系統(tǒng)成為了國內(nèi)外GPS廠商發(fā)展的重點(diǎn),尤其是汽車行業(yè)的寵兒——車載GPS導(dǎo)航系統(tǒng)。車載GPS導(dǎo)航系統(tǒng)是一種先進(jìn)的導(dǎo)航系統(tǒng),能夠探測到汽車在行駛途中的當(dāng)時(shí)位置,協(xié)助駕駛者在陌生的道路環(huán)境中,通過電子地
5、圖與話音指南,準(zhǔn)確地掌握前往目的地的路線。它是GPS導(dǎo)航定位技術(shù)與電子地圖技術(shù)結(jié)合的焦點(diǎn)。現(xiàn)階段,隨著電子產(chǎn)和汽車產(chǎn)業(yè)的快速發(fā)展,國內(nèi)外汽車生產(chǎn)商、GPS專業(yè)廠商加快了對(duì)汽車GPS導(dǎo)航系統(tǒng)研制,而我國汽車導(dǎo)航系統(tǒng)本身起步比國外要晚了許多,在各個(gè)方面存在著較大差距,下面簡述國內(nèi)外在該行業(yè)上的研究進(jìn)展?fàn)顩r。</p><p> (一) 國外研究進(jìn)展</p><p> 在硬件方面,全世界已經(jīng)有
6、包括 IBM、MicroOptical、Xybernaut 在內(nèi)的超過 100 家公司生產(chǎn)與移動(dòng)計(jì)算相關(guān)的產(chǎn)品,如帶 LCD 顯示器的眼鏡、手執(zhí)微型鍵盤、手執(zhí)鼠標(biāo)、聲控輸入設(shè)備、GPS天線等。</p><p> 在應(yīng)用系統(tǒng)開發(fā)方面,美國麻省理工學(xué)院、哥倫比亞大學(xué)和歐洲的瑞士聯(lián)邦技術(shù)學(xué)院、荷蘭 Delft 技術(shù)大學(xué)等都在醫(yī)學(xué)、工業(yè)等各個(gè)移動(dòng)計(jì)算領(lǐng)域進(jìn)行應(yīng)用系統(tǒng)的開發(fā)工作。</p><p>
7、 在地圖數(shù)據(jù)方面,美國愛荷華州立大學(xué)和加利福尼亞大學(xué)美國地理信息與分析中心(NCGIA)正在合作為 NASA 和聯(lián)邦統(tǒng)計(jì)機(jī)構(gòu)進(jìn)行一項(xiàng)名為 Batutta 的計(jì)劃,旨在研制一套專為地學(xué)野外采樣使用的移動(dòng)作業(yè)系統(tǒng),包括地理環(huán)境與地理信息系統(tǒng)在無線移動(dòng)環(huán)境中的集成以及穿戴式計(jì)算機(jī)、便攜計(jì)算機(jī)、PDA 和臺(tái)式服務(wù)器的聯(lián)合使用。</p><p> 在軟件開發(fā)方面,作為GIS 市場的領(lǐng)頭雁 Autodesk、ESRI 和
8、 Intergraph 三大公司為 Mobile GIS 技術(shù)做出了極大的貢獻(xiàn)。Autodesk 公司開發(fā) Autodesk OnSite 的 “移動(dòng)訪問”模塊。ESRI 研制了 ArcGIS 軟件產(chǎn)品—ArcPad。而Intergraph 建立自己的移動(dòng) GIS 解決方案—IntelliWhere。這些軟件極大方便了Mobile GIS個(gè)人導(dǎo)航系統(tǒng)的開發(fā)。</p><p> ?。ǘ?國內(nèi)研究進(jìn)展</p&
9、gt;<p> 在硬件方面,國內(nèi)的硬件技術(shù)很不成熟,相關(guān)導(dǎo)航產(chǎn)品的結(jié)構(gòu)設(shè)計(jì)、生產(chǎn)已接近國際水平,硬件差距較大,絕大多數(shù)產(chǎn)品尚未達(dá)到工業(yè)級(jí)技術(shù)標(biāo)準(zhǔn)。同時(shí)這幾年,所有的自主導(dǎo)航儀的硬件幾乎是清一色的日本貨,全是豐田、索尼、日立和先鋒等名牌產(chǎn)品。</p><p> 在應(yīng)用系統(tǒng)開發(fā)方面,從1981年到1985年,完成了技術(shù)引進(jìn)、數(shù)據(jù)規(guī)范和標(biāo)準(zhǔn)的研究、空間數(shù)據(jù)庫的建立、數(shù)據(jù)處理和分析算法及應(yīng)用軟件的開發(fā)等
10、環(huán)節(jié),對(duì)GIS進(jìn)行了理論探索和區(qū)域性的實(shí)驗(yàn)研究。從1986年到現(xiàn)在,我國GIS的研究和應(yīng)用進(jìn)入有組織、有計(jì)劃、有目標(biāo)的階段,逐步建立了不同層次、不同規(guī)模的組織機(jī)構(gòu)、研究中心和實(shí)驗(yàn)室。</p><p> 在軟件開發(fā)方面,在科技部等國家有關(guān)部門的大力組織和支持下,國產(chǎn)GIS基礎(chǔ)軟件開發(fā)工作取得了重要進(jìn)展,出現(xiàn)了一批GIS高技術(shù)企業(yè),開發(fā)出了較為成熟的國產(chǎn)GIS軟件,如MapGIS、GeoStar、CityStar、
11、SuperMap、MapEngine、GROW等,并形成了一定的產(chǎn)業(yè)規(guī)模,同時(shí)一些導(dǎo)航系統(tǒng)軟件也逐步出現(xiàn),例如靈圖的天行者,MAPKING、LEADSTAR、領(lǐng)路人等,打破了國外GIS軟件對(duì)我國市場的壟斷,有力促進(jìn)了我國地理信息系統(tǒng)技術(shù)和自主導(dǎo)航技術(shù)的發(fā)展。</p><p> 在地圖數(shù)據(jù)方面,經(jīng)過了20年的努力,國家測繪局與其他相關(guān)部門協(xié)作完成了全國l:100萬、 1:25萬基礎(chǔ)地理空間數(shù)據(jù)庫以及全國七大江河數(shù)
12、字地形模型的建設(shè),并啟動(dòng)了全國l:5萬,部分省份1:1萬基礎(chǔ)地理空間數(shù)據(jù)庫的建設(shè)。這些基礎(chǔ)數(shù)據(jù)有力促進(jìn)了GIS技術(shù)的廣泛應(yīng)用。與此同時(shí),一些車載導(dǎo)航電子地圖開發(fā)也開始慢慢進(jìn)入正軌,如北京靈圖的天行者地圖其精度較高,地圖范圍覆蓋面較廣,受到用戶喜愛;凱利德地圖軟件也受到國內(nèi)認(rèn)可和歡迎。</p><p> 三、本文的研究內(nèi)容以及總體框架</p><p> 本文主要研究內(nèi)容是以shapefi
13、le地圖數(shù)據(jù)格式作為電子地圖數(shù)據(jù),在多線程條件下實(shí)現(xiàn)串口接收GPS信息,在電子地圖上實(shí)時(shí)顯示當(dāng)前地理位置,實(shí)現(xiàn)實(shí)時(shí)導(dǎo)航定位功能,僅為以后在該方面上的開發(fā)提供初步基礎(chǔ)。</p><p> 本次設(shè)計(jì)的總體框架是:首先概述電子地圖的特點(diǎn)、分類以及發(fā)展過程,接下來敘述GPS導(dǎo)航定位、測時(shí)、測速的基本原理,然后則結(jié)合程序代碼詳細(xì)闡述GPS導(dǎo)航定位程序的設(shè)計(jì)總體思路,并闡述了在程序設(shè)計(jì)總體思路下對(duì)GPS導(dǎo)航定位程序功能的實(shí)
14、現(xiàn),最后總結(jié)了程序設(shè)計(jì)過程體會(huì)和經(jīng)驗(yàn),并分析程序存在的不足與缺陷。</p><p> 第一章 電子地圖概述</p><p><b> 一、電子地圖的特點(diǎn)</b></p><p> 電子地圖是隨著計(jì)算機(jī)技術(shù)的發(fā)展而產(chǎn)生的一種嶄新的地理信息載體,它脫胎于地圖,將地圖以數(shù)字的方式存儲(chǔ)、呈現(xiàn),并只能在電腦中才能使用。它具有顯示、傳輸和分析的功能
15、,可以提供比傳統(tǒng)地圖更佳的呈現(xiàn)方式,如放大、縮小、漫游、搜索以及路徑規(guī)劃。</p><p> 常規(guī)的紙質(zhì)地圖強(qiáng)調(diào)的是數(shù)據(jù)載體、符號(hào)化和顯示,它是電子地圖發(fā)展的根源之一,而電子地圖則側(cè)重于分析,所以后者其表現(xiàn)方式也比前者要強(qiáng)大的多,具有許多獨(dú)特的優(yōu)點(diǎn)。這些優(yōu)點(diǎn)包括:</p><p> 1、信息豐富、信息量大</p><p> 電子地圖可包括圖形、圖像、文檔、統(tǒng)計(jì)
16、數(shù)據(jù)等多種形式,不僅可以存儲(chǔ)二維平面圖形,還可以保存三維影像,也可以與視頻、音頻信息相連,數(shù)據(jù)類型與數(shù)據(jù)量的可擴(kuò)展性比較強(qiáng) , 電子地圖使用數(shù)字存儲(chǔ)介質(zhì),該介質(zhì)容量可以很大,例如一張光盤很容易存放幾百張地圖。而紙質(zhì)地圖只能存儲(chǔ)基本的二維地形、地物要素,并且由于地圖紙張、篇幅大小的限制,大部分的細(xì)部要素被綜合取舍,所以其所能存儲(chǔ)信息容量是非常有限的。</p><p> 2、使用非常靈活、方便</p>
17、<p> 電子地圖一般以圖層為單位組織數(shù)據(jù),圖層則一般按地圖要素分別顯示,這樣每層顯示一個(gè)要素(比如,一層顯示街區(qū),一層顯示水系,一層顯示綠地,一層顯示道路等等),各圖層可單獨(dú)顯示,也可多層組合疊層顯示,從而達(dá)到一些紙質(zhì)地圖無法達(dá)到的效果。比如,在地區(qū)/政區(qū)圖層上加載人口統(tǒng)計(jì)圖層,可分析不同街區(qū)、不同地區(qū)的人口分布狀況。而兩張不同要素的紙張地圖則不能簡單的疊加,使用起來也比較不方便。</p><p>
18、; 3、集成了聲音、圖文和數(shù)字多媒體</p><p> 把圖形的直觀性、數(shù)字的準(zhǔn)確性、聲音的引導(dǎo)性和親切感相結(jié)合,充分調(diào)用了使用者的各種感官,這是傳統(tǒng)地圖所無法比擬的。</p><p> 4、地圖數(shù)據(jù)更新快速</p><p> 電子地圖顯示的數(shù)據(jù)都存儲(chǔ)在數(shù)據(jù)庫中,隨著計(jì)算機(jī)技術(shù)的不斷發(fā)展,數(shù)據(jù)庫的更新越來越快,相應(yīng)的電子地圖就可以以最新的數(shù)據(jù)進(jìn)行顯示,它的數(shù)
19、據(jù)更新周期要比紙質(zhì)地圖短的多。</p><p><b> 5、功能非常強(qiáng)大</b></p><p> 電子地圖使用了計(jì)算機(jī)工具,可以非常方便的進(jìn)行地圖的各種計(jì)算、統(tǒng)計(jì)和分析,可以進(jìn)行動(dòng)態(tài)模擬,便于定性與定量分析,具有較強(qiáng)的靈活性。查詢檢索和分析功能能夠支持從地圖圖形到屬性數(shù)據(jù)和從屬性數(shù)據(jù)到圖形數(shù)據(jù)的雙向檢索;圖形動(dòng)態(tài)變化功能從開窗縮放、瀏覽閱讀等基本功能到底圖動(dòng)畫
20、功能、多維動(dòng)畫圖形模擬等;多級(jí)比例尺之間互相轉(zhuǎn)換,可以將屏幕顯示地圖內(nèi)容與當(dāng)前比例完美的匹配,自動(dòng)的對(duì)地圖內(nèi)容進(jìn)行與比例尺相適應(yīng)的取舍或綜合。</p><p><b> 6、交互性十分強(qiáng)</b></p><p> 電子地圖能提供給用戶較強(qiáng)的交互能力,如用戶可對(duì)地圖進(jìn)行任意的放大、縮小、漫游、要素選取、要素渲染、對(duì)象標(biāo)注等等。比如,用戶可以自己感興趣的地點(diǎn)進(jìn)行標(biāo)注,
21、甚至可以進(jìn)行編輯,來滿足用戶的不同要求。</p><p><b> 二、電子地圖的分類</b></p><p> 電子地圖的分類有很多,按照電子地圖的功能和數(shù)據(jù)結(jié)構(gòu)的不同可為以下幾種:</p><p> (一)閱讀型電子地圖</p><p> 主要為單一的地圖顯示和閱讀,該類型電子地圖是把已制作的模擬地圖通過掃描
22、數(shù)字化作為圖像數(shù)據(jù)存儲(chǔ),使用柵格數(shù)據(jù)模型表達(dá)地圖圖形。閱讀型電子地圖一般屬于早期的產(chǎn)品,主要由于沒有建立空間信息數(shù)據(jù)庫,或者沒有數(shù)字地圖可利用,但又急于提供使用,該類型電子地圖不能用于查詢分析,但可在計(jì)算機(jī)屏幕上閱讀。如數(shù)字化電子地圖等。</p><p> ?。ǘ┙换バ碗娮拥貓D</p><p> 交互型的電子地圖是具有多種功能高級(jí)型的電子地圖,交互型電子地圖是在地圖矢量數(shù)據(jù)庫和軟硬件資
23、源支持下,能實(shí)現(xiàn)對(duì)電子地圖各種操作,例如顯示閱讀、屬性查詢、空間檢索分析,輸出硬拷貝等。交互型的電子地圖是當(dāng)前主要研究方向之一,在數(shù)據(jù)組織管理、功能操作、用戶界面友好等諸多方面,體現(xiàn)了電子地圖技術(shù)水平?,F(xiàn)今,大部分車載導(dǎo)航電子地圖、個(gè)人電子地圖、地區(qū)電子地圖等都是交互型的電子地圖產(chǎn)品。</p><p> ?。ㄈ┚W(wǎng)絡(luò)型電子地圖</p><p> 網(wǎng)絡(luò)型電子地圖是在Internet或局域網(wǎng)
24、絡(luò)環(huán)境中使用的電子地圖。近年來,新計(jì)算機(jī)技術(shù)不斷運(yùn)用到Web中,其中,傳統(tǒng)地圖與Web結(jié)合造就的網(wǎng)絡(luò)型電子地圖就是一種建設(shè)性的結(jié)合。GIS、格柵、VR也應(yīng)用在網(wǎng)絡(luò)型電子地圖,使之從最初的“無縫”圖片發(fā)展成二維、三維等真正的電子地圖。</p><p> 在二維電子地圖方面:目前國內(nèi)比較有代表性是有北京圖為先公司開發(fā)的mapbar.com平臺(tái),北京靈圖公司開發(fā)的51ditu.com平臺(tái),還有就是以Google為代表
25、的運(yùn)用了美國衛(wèi)星航拍技術(shù)的bendi.google.com平臺(tái)。</p><p> 在三維電子地圖方面:具有代表性是2005年Google在earth.google.com上推出的新產(chǎn)品:Google Earth。還有該領(lǐng)域的后起之秀:杭州阿拉丁信息科技有限公司開發(fā)的edushi.com平臺(tái)。</p><p> 三、電子地圖系統(tǒng)的發(fā)展</p><p> 對(duì)電子
26、地圖系統(tǒng)的研究伴隨著整個(gè)空間信息科學(xué)(其中包括互聯(lián)網(wǎng)、GPS ,遙感、多維可視化技術(shù)的進(jìn)展)的發(fā)展而不斷擴(kuò)展和深人,主要表現(xiàn)在以下方面:</p><p> (一)面向?qū)ο蟮碾娮拥貓D模型</p><p> 電子地圖除了地圖圖層基本組成外,還要包括一系列功能函數(shù),以完成符號(hào)化生成、圖形編輯、地圖整飾、地圖內(nèi)容檢索、空間分析等任務(wù),這樣地圖類及其功能函數(shù)組成了電子地圖概念模型。</p
27、><p> (二)建立電子地圖圖層創(chuàng)作模版</p><p> 圖層創(chuàng)作“模板”是對(duì)不同地圖圖型設(shè)計(jì)的規(guī)格,其中最重要的是將空間和屬性數(shù)據(jù)轉(zhuǎn)化為地圖圖形的可視化方法和符號(hào)化參數(shù)的設(shè)置。在研發(fā)的系統(tǒng)中給出了通用地圖符號(hào)庫和專題地圖符號(hào)模型及符號(hào)梯尺模型等工具,可以建立多種地圖圖層創(chuàng)作“模板”,制作各種類型電子地圖。</p><p> ?。ㄈ╇娮拥貓D設(shè)計(jì)研究</p
28、><p> 電子地圖創(chuàng)作,在數(shù)據(jù)和軟硬件技術(shù)資源支撐下,決定其質(zhì)量的關(guān)鍵是電子地圖設(shè)計(jì)。設(shè)計(jì)中,需要考慮的因素很多,首先要解決的問題是已建立的空間信息的無縫數(shù)據(jù)文件,其海量數(shù)據(jù)的圖形顯示同屏幕尺寸和分辨率之間的矛盾;然后是在同一主導(dǎo)數(shù)據(jù)庫的支撐下,進(jìn)行多級(jí)比例尺地圖顯示的綜合。對(duì)于計(jì)算機(jī)相對(duì)有限的存儲(chǔ)能力和有限的屏幕顯示的矛盾解決,要充分利用系統(tǒng)中多種方式的地圖檢索、開窗放大、多向漫游、導(dǎo)航視圖以及多窗口設(shè)置等手段
29、來解決地圖閱讀。因此精心設(shè)計(jì)和方便操作,對(duì)提高讀者的視覺感受和讀圖效果是大有幫助的。</p><p> 第二章 GPS導(dǎo)航定位原理概述</p><p> 一、GPS衛(wèi)星導(dǎo)航定位原理</p><p> 導(dǎo)航是一個(gè)技術(shù)門類的總稱,它是引導(dǎo)飛機(jī)、船舶、車輛以及個(gè)人(總稱作運(yùn)載體)安全、準(zhǔn)確地沿著選定的路線,準(zhǔn)時(shí)到達(dá)目的地的一種手段。GPS導(dǎo)航是廣義的GPS動(dòng)態(tài)定位
30、,其定位方法主要有以下幾種:</p><p><b> ?。ㄒ唬﹩吸c(diǎn)動(dòng)態(tài)定位</b></p><p> 單點(diǎn)動(dòng)態(tài)定位的基本方程為:</p><p><b> (3-1)</b></p><p> 式中,為動(dòng)態(tài)用戶在時(shí)刻的瞬時(shí)位置;是第j顆GPS衛(wèi)星在其運(yùn)行軌道上的瞬時(shí)位置,它可根據(jù)廣播星歷計(jì)算
31、;為碼接收機(jī)所測得的GPS信號(hào)接收天線和第j顆GPS衛(wèi)星之間的距離,即站星距離; d是由于接收機(jī)時(shí)鐘誤差的因素所引起的站星距離偏差。</p><p> 利用(3-1)式解算各個(gè)坐標(biāo)分量的修正值,即給定用戶三維坐標(biāo)的初始值(,,),求解三維坐標(biāo)的改正值(,,)和距離偏差d。</p><p> ?。ǘ﹤尉嗖罘謩?dòng)態(tài)定位</p><p> 所謂差分動(dòng)態(tài)定位(DGP
32、S)就是用兩臺(tái)接收機(jī)在兩個(gè)測站上同時(shí)測量來自相同GPS衛(wèi)星的導(dǎo)航定位信號(hào),用以聯(lián)合測得動(dòng)態(tài)用戶的精確位置。</p><p> 由式(3-1)可知基準(zhǔn)站測得至GPS衛(wèi)星j的偽距為:</p><p><b> ?。?-2)</b></p><p> 式中,為基準(zhǔn)站和第j 顆GPS衛(wèi)星之間的真實(shí)距離;是GPS衛(wèi)星星歷誤差所引起的距離偏差;為接收機(jī)
33、時(shí)鐘相對(duì)于GPS時(shí)間系統(tǒng)的偏差;是第J顆GPS衛(wèi)星時(shí)鐘相對(duì)GPS時(shí)間系統(tǒng)的偏差;為電離層時(shí)延所引去的距離偏差;是對(duì)對(duì)流層時(shí)延所引去的距離偏差;為電磁波的傳播速度。</p><p> (三)動(dòng)態(tài)載波相位差分測量</p><p> 由載波相位觀測方程得出動(dòng)態(tài)差分方程:</p><p><b> ?。?-3)</b></p><
34、;p> 當(dāng)動(dòng)態(tài)用戶和基準(zhǔn)站都同時(shí)觀測了4顆相同GPS 衛(wèi)星時(shí),則可解算在t時(shí)刻動(dòng)態(tài)用戶位置估計(jì)值的改正數(shù),從而實(shí)現(xiàn)動(dòng)態(tài)載波相位測量的目的。</p><p> 二、GPS衛(wèi)星測速原理</p><p> 盡管載體的運(yùn)行速度各不一樣,且不是勻速運(yùn)動(dòng),但是,只要在這些運(yùn)動(dòng)物體上安設(shè)GPS信號(hào)接收機(jī),就可以在進(jìn)行動(dòng)態(tài)定位的同時(shí),實(shí)時(shí)地測得它們的運(yùn)行速度。依式(3-1)可知,用戶天線和GP
35、S衛(wèi)星之間的距離:</p><p><b> (3-4)</b></p><p> 根據(jù)物理學(xué)關(guān)于線速度的定義,則對(duì)式(3-4)進(jìn)行求導(dǎo),得到動(dòng)態(tài)用戶的三維速度表達(dá)式:</p><p><b> ?。?-5)</b></p><p> 式中,站星距離 (3-6) <
36、;/p><p> 由于、、三者的值很小,可忽略不計(jì)。則在進(jìn)行測速之前,先使動(dòng)態(tài)接收機(jī)處于靜止?fàn)顟B(tài),此時(shí)有:</p><p> ===0 (3-7)</p><p> 可按式(3-4)解算出衛(wèi)星的三維速度,隨即進(jìn)行動(dòng)態(tài)用戶的速度測量。</p><p> 三、GPS衛(wèi)星測時(shí)原理</p&
37、gt;<p> GPS衛(wèi)星都安裝有四臺(tái)原子時(shí)鐘 ,導(dǎo)航定位時(shí)受到美國海軍天文臺(tái)(USNO)經(jīng)常性的監(jiān)測。GPS系統(tǒng)得地面主控站能夠以優(yōu)于5ns的精度,使GPS時(shí)間和世界協(xié)調(diào)時(shí)UTC之差保持在1s以內(nèi)。因此,GPS衛(wèi)星可以成為一種全球性的用戶無限的時(shí)間信號(hào)源,用以進(jìn)行精確的時(shí)間比對(duì)。</p><p> 利用GPS信號(hào)進(jìn)行時(shí)間傳遞,一般采用下列兩種方法:</p><p>
38、(一)一站單機(jī)定時(shí)法</p><p> 即在一個(gè)已知位置測站上,用一臺(tái)GPS信號(hào)接收機(jī)觀測一顆GPS衛(wèi)星,從而測定用戶時(shí)鐘的偏差。可解算得到用戶時(shí)鐘偏差為: </p><p><b> (3-8)</b></p><p> 上式即為一站單機(jī)的定時(shí)方程式。</p><p> (二)共視比對(duì)定時(shí)法</p>
39、<p> 即在兩個(gè)測站上各安設(shè)一臺(tái)GPS信號(hào)接收機(jī),在相同 的時(shí)間內(nèi),觀測同一顆GPS衛(wèi)星,而測定用戶時(shí)鐘的偏差。依(3-8)可知,A、B兩個(gè)測站所測的用戶時(shí)鐘偏差分別為:</p><p><b> ?。?-9)</b></p><p> 通過數(shù)據(jù)傳輸而將測站A的用戶鐘差送到B,得到兩個(gè)用戶的鐘差</p><p><b&
40、gt; ?。?-10)</b></p><p> 上式中消除GPS衛(wèi)星的時(shí)鐘偏差;實(shí)際傳播時(shí)間是依據(jù)測站位置和衛(wèi)星位置而求得</p><p><b> ?。?-11)</b></p><p> 因此共視用戶的鐘差:</p><p><b> ?。?-12)</b></p>
41、<p> 第三章 基于電子地圖的GPS導(dǎo)航定位程序的設(shè)計(jì)</p><p><b> 一、程序設(shè)計(jì)概述</b></p><p> 從一般導(dǎo)航系統(tǒng)軟件設(shè)計(jì)上看,基于GIS的GPS 導(dǎo)航系統(tǒng)軟件是GPS定位導(dǎo)航系統(tǒng)中重要組成部分,這些系統(tǒng)將GPS和GIS的主要功能即GPS數(shù)據(jù)接收、處理,數(shù)字地圖顯示、查詢及地圖匹配功能融合在一起。而這些功能按照模塊化設(shè)
42、計(jì)(即組件式或類模塊式)方式將所有功能進(jìn)行有序、合理組織起來,實(shí)現(xiàn)導(dǎo)航系統(tǒng)的復(fù)雜功能,而每個(gè)模塊完成獨(dú)立的功能。數(shù)字電子地圖制作是軟件設(shè)計(jì)的一部分,單獨(dú)進(jìn)行實(shí)現(xiàn),然后將地圖在軟件中使用。</p><p> 本次論文所設(shè)計(jì)的程序是在VC6.0環(huán)境下從底層設(shè)計(jì)功能性類模塊(如串口接收GPS數(shù)據(jù)信息類、從NMEA0183語句中提取相關(guān)信息類等),并對(duì)程序功能進(jìn)行類模塊封裝,并有序組合這些類模塊,完成GPS 導(dǎo)航定位的
43、一般功能。在電子地圖制作方面,采用shapefile矢量數(shù)據(jù)為電子地圖數(shù)據(jù)格式,根據(jù)shapefile數(shù)據(jù)格式,自行設(shè)計(jì)各種類來讀取、管理shapefile矢量數(shù)據(jù),并在視圖上顯示。最后將shapefile地圖數(shù)據(jù)加載到程序中,總體上實(shí)現(xiàn)在電子地圖上的GPS實(shí)時(shí)導(dǎo)航定位功能。圖1為程序設(shè)計(jì)總體功能框架:</p><p> 圖1 程序設(shè)計(jì)總體功能框架圖</p><p><b>
44、 二、程序功能分析</b></p><p> 1.讀取shapefile地圖數(shù)據(jù),正確顯示導(dǎo)航電子地圖;</p><p> 2.實(shí)現(xiàn)導(dǎo)航電子地圖的基本功能:電子地圖的放大、縮小、漫游;</p><p> 3.實(shí)現(xiàn)對(duì)電子地圖的圖層進(jìn)行管理、顯示:設(shè)置圖層顯示方式、圖層刪除等</p><p> 4.實(shí)現(xiàn)地圖任意位置的經(jīng)緯度的
45、顯示;</p><p> 5.能夠接收GPS OEM板輸出的數(shù)據(jù),對(duì)數(shù)據(jù)進(jìn)行有效性判別并將所需要的數(shù)據(jù)進(jìn)行提取,并實(shí)時(shí)將當(dāng)前GPS數(shù)據(jù)記錄到固定文件中;</p><p> 6.能夠在電子地圖上正確實(shí)時(shí)動(dòng)態(tài)顯示當(dāng)前位置,并在衛(wèi)星天空分布視圖中實(shí)時(shí)顯示衛(wèi)星分布、經(jīng)緯度、速度、時(shí)間;</p><p> 7.能夠從記錄在文件中的數(shù)據(jù)讀取進(jìn)行回放已行走過的導(dǎo)航軌跡,同時(shí)
46、顯示當(dāng)前衛(wèi)星天空分布視圖;</p><p> 8.能夠設(shè)置系統(tǒng)參數(shù):地圖背景色設(shè)置、GPS實(shí)時(shí)記錄文件設(shè)置、地圖縮放比例設(shè)置等。 </p><p> 程序所有功能結(jié)構(gòu)可以圖2來表示 </p><p><b> 圖2 程序功能圖</b></p><p> 三、電子地圖矢量數(shù)據(jù)管理的設(shè)計(jì)</p>&
47、lt;p> ?。ㄒ唬﹕hapefile數(shù)據(jù)格式</p><p> shapefile是ESRI公開的空間數(shù)據(jù)存儲(chǔ)格式,是當(dāng)前一種比較流行的電子地圖文件格式。Shapefile是一種無拓?fù)浣Y(jié)構(gòu)的地理信息系統(tǒng)文件,存儲(chǔ)非拓?fù)淇臻g要素的幾何和屬性信息,空間幾何是包括一系列矢量坐標(biāo)的圖形。Shapefile由于沒有處理拓?fù)鋽?shù)據(jù)結(jié)構(gòu)的開銷,在數(shù)據(jù)源繪制、顯示、編輯等方面比具有拓?fù)潢P(guān)系如coverage要來的快。Sh
48、apefile存儲(chǔ)單一圖形要素,不同圖形之間沒有拓?fù)潢P(guān)系,因此讀寫shapefile更容易,數(shù)據(jù)量較小。</p><p> shapefile的主文件格式</p><p> shapefile的主文件(.shp)由固定長度的文件頭和接著的變長度記錄組成。每個(gè)變長度記錄是由固定長度的記錄頭和接著的變長度記錄內(nèi)容組成。表1為主文件的結(jié)構(gòu)圖:</p><p> 表1
49、 主文件的結(jié)構(gòu)圖</p><p> 主文件頭總長為100字節(jié),其結(jié)構(gòu)為表2所示:</p><p> 表2 主文件頭的結(jié)構(gòu)表</p><p> 需要注意的是每個(gè)變量的字節(jié)順序,在Shapefile中的數(shù)據(jù)可以分為兩類:一類是文件自身相關(guān)數(shù)據(jù),另一類則是地圖數(shù)據(jù)。比如,上面的文件標(biāo)識(shí)代碼FileCode, 文件長度FileLen等,都是為了管理文件自身的數(shù)
50、據(jù)而設(shè)置的,在Shapefile主文件中其字節(jié)順序?yàn)閎ig endian;而像地圖的邊界盒范圍值Xmin等描述的是地圖數(shù)據(jù),采用的是little endian。</p><p> 幾何類型 ShapeType是個(gè)很重要的參數(shù),標(biāo)識(shí)的是該文件中的記錄的幾何類型,其值與意義的對(duì)應(yīng)關(guān)系如表3所示。Shapefile是為存儲(chǔ)空間地理信息而設(shè)計(jì),對(duì)于普通電子地圖來說,比較常用的類型是Point,PolyLine和Poly
51、gon。</p><p> 表3 shape類型</p><p> 在讀取shape類型時(shí),分為NullShape、Point 、PolyLine、Polygon、 MultiPoint類型進(jìn)行數(shù)據(jù)讀取。但是Point類型與MultiPoin類型之間只是點(diǎn)數(shù)量的不同,故可以將Point類型作為MultiPoint類型進(jìn)行讀取。</p><p> 代碼如下:
52、BOOL CShpFile::ReadRecord()</p><p><b> {</b></p><p> switch ( m_shpType )</p><p><b> {</b></p><p> case NULLSHP://對(duì)無shapefile的讀取</p>
53、<p><b> ……</b></p><p> case POINTSHP: //對(duì)點(diǎn)文件記錄的讀取</p><p><b> ……</b></p><p> case POLYLINE: //對(duì)多義線記錄的讀取</p><p><b> ……</b>
54、</p><p> case POLYGON: //對(duì)多邊形記錄的讀取</p><p><b> ……</b></p><p><b> }</b></p><p> 每個(gè)圖形記錄頭存儲(chǔ)了記錄的數(shù)目和記錄內(nèi)容的長度。其格式是統(tǒng)一的。</p><p> 表4 記錄
55、頭結(jié)構(gòu)圖</p><p> 針對(duì)記錄頭格式,將其定義為結(jié)構(gòu)體來存儲(chǔ)記錄頭數(shù)據(jù)。代碼為: typedef struct shpRecordHeader </p><p><b> {</b></p><p> int iRecordNum; //記錄數(shù)</p><p> int iConten
56、tLength; //記錄內(nèi)容長度 </p><p> } SHPRECORDHEADER;</p><p> Shapefile記錄內(nèi)容包含一個(gè)shape類型和接著的該shape的幾何數(shù)據(jù)。記錄內(nèi)容的長度依賴于在一個(gè)圖形中部分和節(jié)點(diǎn)的數(shù)目。</p><p&g
57、t; 下面僅僅說明幾種常用幾何類型的數(shù)據(jù)結(jié)構(gòu)。</p><p><b> 點(diǎn)狀幾何類型:</b></p><p><b> Point </b></p><p> { Double X //X坐標(biāo) </p><p> Double Y //Y坐標(biāo) </p>
58、<p><b> }</b></p><p><b> 線狀幾何類型:</b></p><p><b> PolyLine </b></p><p><b> { </b></p><p> Double[4]
59、 Box //邊界盒 </p><p> Integer NumParts //部分的數(shù)目 </p><p> Integer NumPoints //點(diǎn)的總數(shù)目 </p><p> Integer[NumParts] Parts //在部分中第一
60、個(gè)點(diǎn)的索引 </p><p> Point[NumPoints] Points //所有部分的點(diǎn) </p><p><b> }</b></p><p><b> 面狀幾何類型:</b></p><p><b> Polygon </b><
61、/p><p><b> { </b></p><p> Double[4] Box //邊界盒 </p><p> Integer NumParts //部分的數(shù)目 </p><p> Integer NumPoint
62、s //點(diǎn)的總數(shù)目 </p><p> Integer[NumParts] Parts //在部分中第一個(gè)點(diǎn)的索引 </p><p> Point[NumPoints] Points //所有部分的點(diǎn) </p><p><b> }</b></p><p>
63、上述點(diǎn)狀幾何類型,用于存儲(chǔ)幾何信息以某一點(diǎn)表示的要素,線狀幾何類型與面狀幾何類型的數(shù)據(jù)結(jié)構(gòu)類似,分別用來存儲(chǔ)線狀和區(qū)域幾何類型,其結(jié)構(gòu)具有分段性,可以存儲(chǔ)多條線段和多個(gè)多邊形。</p><p><b> 2. 索引文件格式</b></p><p> 索引文件同樣采用記錄的形式,其中的記錄與相應(yīng)的主文件一一對(duì)應(yīng),以表示主文件中記錄的位置和長度。其結(jié)構(gòu)如表5:<
64、/p><p> 表5 索引文件結(jié)構(gòu)</p><p> 索引文件的文件頭與主文件(.shp)的文件頭相同。索引文件的記錄格式結(jié)構(gòu)如表6:</p><p> 表6 索引記錄結(jié)構(gòu)</p><p> 將其定義為結(jié)構(gòu)體來存儲(chǔ)記錄頭數(shù)據(jù)。代碼如下:</p><p> typedef struct shxRecord &l
65、t;/p><p><b> {</b></p><p> int iOffset;</p><p> int iContentLength;</p><p> } SHXRECORD;</p><p><b> 3.屬性文件格式</b></p><p
66、> 屬性文件的結(jié)構(gòu)采用標(biāo)準(zhǔn)的dBASE格式,其文件結(jié)構(gòu)如表7所示:</p><p> 表7 屬性文件結(jié)構(gòu)</p><p> 屬性文件的文件頭結(jié)構(gòu)如下所示:</p><p> typedef struct DBF_header </p><p><b> { </b></p><p&g
67、t; char Version;/* 版本標(biāo)志*/ </p><p> unsigned char Year,Month,day; /* 最后更新年、月、日 */ </p><p> unsigned long RecordsNum;/* 文件包含的總記錄數(shù) */ </p><p> unsigned shor
68、t HeaderLen;/*文件頭長度*/</p><p> unsigned short RecordLen;/*記錄長度 */ </p><p> char reserved[20];/* 保留 */ </p><p> } DBF_HEADER;</p><p> 屬性文件的字段結(jié)構(gòu)如下所示:&
69、lt;/p><p> typedef struct field_element</p><p><b> { </b></p><p> char FieldName[11]; /* 字段名稱 */ </p><p> char FieldType; /* 字段類型 */ </
70、p><p> unsigned long Offset; /* 偏移量 */ </p><p> unsigned char FieldLength; /* 字段長度 */ </p><p> unsigned char FieldDecimal; /* 浮點(diǎn)數(shù)整數(shù)部分長度 */ </p><p> char rese
71、rved1[2]; /* 保留 */ </p><p> char Work_area_ID; /* dBASE IV Work area ID*/ </p><p> char reserved2[10]; </p><p> char MDX_field_flag; </p><p> } FIELD_ELEM
72、ENT;</p><p> ?。ǘ﹕hapefile數(shù)據(jù)讀取</p><p> 程序在讀取shapefile時(shí),要涉及到至少三個(gè)文件(.shp、.shx、.dbf),所以分別對(duì)不同的文件構(gòu)建不同讀取函數(shù)。</p><p> 讀取.shp主文件過程可分成兩個(gè)步驟:①讀取文件頭:根據(jù)文件的代碼、文件頭的shape類型,判斷文件是否是shapefile,shapef
73、ile的shape類型;并且獲取整個(gè)圖形的邊界盒大小,為圖形顯示作好鋪墊。②讀取記錄:讀取記錄頭中的shape類型進(jìn)行判斷類型,然后讀取記錄長度和每個(gè)圖形的邊界盒范圍,通過記錄長度和DBF中求得的記錄數(shù),進(jìn)一步讀取shapefile中點(diǎn)位信息。</p><p> 讀取.shx索引文件過程也可分成兩個(gè)步驟:①讀取文件頭:讀取處理方式與主文件讀取處理方式是一致的。②讀取記錄:讀取記錄的偏移量,計(jì)算主文件記錄個(gè)數(shù)。&
74、lt;/p><p> 讀取.dbf文件: dBASE文件中的屬性記錄順序和主文件中的記錄相同。只要根據(jù)dBASE文件結(jié)構(gòu),讀取字段描述部分中的數(shù)據(jù),并存儲(chǔ)在CMapRecordset類中。</p><p> ?。ㄈ﹕hapefile數(shù)據(jù)結(jié)構(gòu)</p><p> 對(duì)shapefile數(shù)據(jù)的讀取后,程序?qū)Υ鎯?chǔ)后的數(shù)據(jù)訪問是最基本、最重要的問題?;靵y數(shù)據(jù)管理必然會(huì)影響數(shù)據(jù)
75、的訪問,加大程序冗余量,導(dǎo)致設(shè)計(jì)混亂,所以合理的數(shù)據(jù)管理是整個(gè)電子地圖系統(tǒng)的關(guān)鍵。</p><p> 為了更好的管理數(shù)據(jù),則建立一整套合理的地圖文件類和圖層類。地圖文件類表示地圖文件本身,滿足用戶使用地圖數(shù)據(jù)的需要。而圖層類管理者多個(gè)地圖文件類,可以實(shí)現(xiàn)多個(gè)地圖圖層的疊加、刪除等功能。</p><p> 1.地圖文件類的設(shè)計(jì)</p><p> Shapefil
76、e格式的三個(gè)文件中,地圖的幾何信息存儲(chǔ)在主文件中,屬性信息存放在屬性文件中,而索引文件可以幫助用戶快速訪問主文件中的數(shù)據(jù)。</p><p> 對(duì)于具體shapefile電子地圖而言,主文件按照其中記錄的幾何類型可以分為三類:點(diǎn)、線和面。這些文件具有相同的結(jié)構(gòu),只是每條記錄的幾何數(shù)據(jù)存儲(chǔ)各不相同。幾何數(shù)據(jù)存儲(chǔ)不同,僅僅會(huì)導(dǎo)致訪問每條記錄時(shí)不同,而在其余方面,訪問三種文件一致。根據(jù)面向?qū)ο蟮乃枷?,可以設(shè)計(jì)下面的類關(guān)
77、系結(jié)構(gòu)圖。</p><p> 圖3 類關(guān)系結(jié)構(gòu)圖</p><p> CMapPoint類中存儲(chǔ)單點(diǎn)的X、Y坐標(biāo),可以對(duì)X、Y坐標(biāo)進(jìn)行取值和賦值;CMapPoints類存儲(chǔ)CMapPoint的指針列表,可以對(duì)多個(gè)點(diǎn)進(jìn)行添加、刪除、插入,并設(shè)置邊界盒范圍;CMapParts類是對(duì)單個(gè)圖形中的單個(gè)部分圖形進(jìn)行管理的對(duì)象類,存儲(chǔ)CMapPoints類的指針列表,也可實(shí)現(xiàn)對(duì)多個(gè)部分圖形進(jìn)行添加
78、、刪除、插入等操作,多個(gè)CMapParts類組成了CMapLine類或CMapPolygon類。CMapLine類或CMapPolygon類是對(duì)圖形中的部分進(jìn)行管理的對(duì)象類,可實(shí)現(xiàn)對(duì)多個(gè)部分進(jìn)行添加、刪除、插入等基本操作。這樣分層次管理圖形對(duì)象,有利得組織好圖形對(duì)象,管理好電子地圖數(shù)據(jù)。</p><p><b> 2.圖層類的設(shè)計(jì)</b></p><p> 圖層類
79、對(duì)多個(gè)地圖文件進(jìn)行統(tǒng)一管理,可以實(shí)現(xiàn)圖層刪除、添加等基本操作功能,根據(jù)面向?qū)ο蟮乃枷?,?gòu)架以下圖層的關(guān)系結(jié)構(gòu)圖:</p><p> 圖4 圖層類結(jié)構(gòu)圖</p><p> CMapLayer類存儲(chǔ)一個(gè)圖層中所有幾何空間數(shù)據(jù)和屬性數(shù)據(jù),可以對(duì)單個(gè)圖層設(shè)置或獲取可視狀態(tài)、圖層名稱、矩形范圍大小、shape類型,也可以對(duì)圖層屬性信息存儲(chǔ)管理。</p><p> CM
80、apLayers類是對(duì)所有CMapLayer類的管理,可實(shí)現(xiàn)對(duì)圖層添加、刪除、圖層Z狀態(tài)等功能。</p><p> 四、GPS導(dǎo)航數(shù)據(jù)管理的設(shè)計(jì)</p><p> ?。ㄒ唬〨PS接收機(jī)輸出的數(shù)據(jù)格式</p><p> GPS輸出有二進(jìn)制和NMEA-0183兩種格式。二進(jìn)制格式是各個(gè)接收機(jī)廠家自行定義的通信數(shù)據(jù)格式,每個(gè)廠商定義內(nèi)容不完全一樣,而且格式互不兼容。N
81、MEA-0183是美國國家航海電子協(xié)會(huì)0183號(hào)協(xié)議,該通信協(xié)議是從為海用電子設(shè)備制定的0180和0182基礎(chǔ)上增加GPS數(shù)據(jù)內(nèi)容而完成的,目前廣泛采用的是2.0版,幾乎所有的GPS接收機(jī)都有按照NMEA-0183格式的輸出端口。GPS數(shù)據(jù)接收模塊主要處理對(duì)象就是NMEA-0183數(shù)據(jù)幀。</p><p> NMEA- 018 3定義了多種類型的語句格式,每條語句格式相同,所表達(dá)的定位信息各有側(cè)重,可根據(jù)實(shí)際需
82、要進(jìn)行選擇。本文采用的是GPRMC、GPGSA、GPGSV、GPGGA類型的語句。</p><p> 1. GPRMC語句又稱為推薦最小定位數(shù)據(jù)(Recommended Minimum Specific GNSS Data),包括了時(shí)間、日期、位置、航向、速率等信息。其完整語句結(jié)構(gòu)如下: $GPRMC,<1>,<2>,<3>,<4>,<5>,&
83、lt;6>,<7>,<8>,<9>,<10>,<11>,<12>*hh<CR><LF></p><p> <1> UTC時(shí)間,hhmmss(時(shí)分秒)格式</p><p> <2> 定位狀態(tài),A=有效定位,V=無效定位</p><p>
84、<3> 緯度ddmm.mmmm(度分)格式(前面的0也將被傳輸)</p><p> <4> 緯度半球N(北半球)或S(南半球)</p><p> <5> 經(jīng)度dddmm.mmmm(度分)格式(前面的0也將被傳輸)</p><p> <6> 經(jīng)度半球E(東經(jīng))或W(西經(jīng))</p><p>
85、 <7> 地面速率(000.0~999.9節(jié),前面的0也將被傳輸)</p><p> <8> 地面航向(000.0~359.9度,以真北為參考基準(zhǔn),前面的0也將被傳輸)</p><p> <9> UTC日期,ddmmyy(日月年)格式</p><p> <10> 磁偏角(000.0~180.0度,前面的0也將被傳
86、輸)</p><p> <11> 磁偏角方向,E(東)或W(西)</p><p> <12> 模式指示(僅NMEA0183 3.00版本輸出,A=自主定位,D=差分,E=估算,N=數(shù)據(jù)無效)</p><p> 由上述格式,在程序中定義了存儲(chǔ)該語句信息的結(jié)構(gòu)體:</p><p> struct ST_GPS_DA
87、TA</p><p><b> {</b></p><p> BYTEbyFixType;// 定位標(biāo)志,0-no fixed,1-fixed.</p><p> BOOLbIsAzimuth;// 方位角無效</p><p> doubledbLat;// 緯度&
88、lt;/p><p> doubledbLong;// 經(jīng)度</p><p> doubledbSpeed;// 相對(duì)于地面的速度</p><p> doubledbAzimuth;// 方位角</p><p> SYSTEMTIMEUtcTime;// UTC時(shí)間</p>&
89、lt;p><b> ……</b></p><p><b> };</b></p><p> 2. GPGSA語句稱為當(dāng)前衛(wèi)星信息(GPS DOP and Active Satellites),包括當(dāng)前衛(wèi)星信息的PDOP、HDOP、VDOP值,其語句結(jié)構(gòu)如下:</p><p> GPGSA,<1>,
90、<2>,<3>,<3>,,,,,<3>,<3>,<3>,<4>,<5>,<6>,<7><CR><LF> </p><p> <1>模式 :M = 手動(dòng), A = 自動(dòng)。 </p><p> <2>定位型式 1 = 未定位
91、, 2 = 二維定位, 3 = 三維定位。 </p><p> <3>PRN 數(shù)字:01 至 32 表天空使用中的衛(wèi)星編號(hào),最多可接收12顆衛(wèi)星信息。</p><p> <4> PDOP位置精度因子(0.5~99.9)</p><p> <5> HDOP水平精度因子(0.5~99.9)</p><p>
92、; <6> VDOP垂直精度因子(0.5~99.9)</p><p> <7> Checksum(檢驗(yàn)位)。</p><p> 由上述格式,在程序中定義了存儲(chǔ)該語句信息的結(jié)構(gòu)體:</p><p> struct ST_DOP_DATA</p><p><b> {</b></p&g
93、t;<p> doubledbPdop;// PDOP值</p><p> doubledbHdop;// HDOP值</p><p> doubledbVdop;// VDOP值</p><p> intnNum;// 鎖定衛(wèi)星個(gè)數(shù)</p>
94、<p> intnUsedID[SAT_ID_NUMBER];// 鎖定衛(wèi)星ID</p><p><b> };</b></p><p> 3. GPGSV語句也稱可見衛(wèi)星信息(GPS Satellites in View),其語句結(jié)構(gòu)如下:</p><p> $GPGSV, <1>,<2&g
95、t;,<3>,<4>,<5>,<6>,<7>,?<4>,<5>,<6>,<7>,<8><CR><LF> </p><p> <1> GSV語句的總數(shù),最多3條語句。</p><p> <2> 本句GSV的編號(hào)。</
96、p><p> <3> 可見衛(wèi)星的總數(shù),00 至 12。</p><p> <4> 衛(wèi)星編號(hào), 01 至 32。 </p><p> <5> 衛(wèi)星仰角, 00 至 90 度。 </p><p> <6> 衛(wèi)星方位角, 000 至 359 度。實(shí)際值。 </p><p>
97、 <7> 訊號(hào)噪聲比(C/No), 00 至 99 dB;無表未接收到訊號(hào)。 </p><p> <8> Checksum(檢驗(yàn)位)。</p><p> 由上述格式,在程序中定義了存儲(chǔ)該語句信息的結(jié)構(gòu)體:</p><p> struct ST_SAT_DATA</p><p><b> {</
98、b></p><p> intnSatID;// 衛(wèi)星編號(hào)</p><p> intnElevation;// 仰角</p><p> intnAzimuth;// 方位角</p><p> intnSNR;// 信噪比.0~99,-1為無效</p>
99、<p> BOOLbUsed;</p><p><b> };</b></p><p> ?。ǘ〨PS信息類的設(shè)計(jì)</p><p> 為了有效、高效的管理GPS導(dǎo)航定位信息,程序定義了CNmea0183類來管理GPS數(shù)據(jù)的讀取、GPS數(shù)據(jù)檢驗(yàn)、信息的提取。</p><p><b>
100、 設(shè)計(jì)代碼如下:</b></p><p> class CNmea0183 : public CObject</p><p><b> {</b></p><p><b> public:</b></p><p> BOOLLoadData( CString csSenten
101、ce); //讀取NMEA語句</p><p> doubleGetCoordinate(const double dbIn)const; //經(jīng)緯度信息的處理</p><p> BOOLCheckSum(); //判斷NMEA語句檢驗(yàn)</p><p><b> ……</b></p><p><b>
102、; };</b></p><p> (三)GPS數(shù)據(jù)讀取程序設(shè)計(jì)</p><p> 計(jì)算機(jī)與GPS接收機(jī)通過RS232串行接口連接,數(shù)據(jù)傳送采用異步串行傳送方式。GPS數(shù)據(jù)讀取過程大致可以分三個(gè)過程:串口通訊、數(shù)據(jù)信息提取、坐標(biāo)轉(zhuǎn)換及實(shí)時(shí)顯示。首先程序?qū)拇诮邮盏紾PS信息送入到串口緩沖區(qū)中,再按一定時(shí)間間隔讀取串口緩沖區(qū)中GPS數(shù)據(jù),并對(duì)GPS數(shù)據(jù)進(jìn)行判斷是否符合要求
103、,若符合,則從數(shù)據(jù)中提取相關(guān)信息,存入相應(yīng)結(jié)構(gòu)體中,最后實(shí)時(shí)在地圖上顯示當(dāng)前位置。圖5表示各個(gè)過程關(guān)系:</p><p> 圖5 GPS數(shù)據(jù)讀取過程圖</p><p> 1. 串口:在實(shí)際使用串口時(shí),必須配置串口參數(shù),該參數(shù)包括COM端口號(hào)、波特率、數(shù)據(jù)位、奇偶校驗(yàn)、停止位等。為能很好配置串口參數(shù),將該參數(shù)存儲(chǔ)在自定義的結(jié)構(gòu)體中,也可隨時(shí)更改結(jié)構(gòu)體中的參數(shù)。該結(jié)構(gòu)體定義如下:
104、 struct ST_COMM_PARA</p><p><b> {</b></p><p> DWORDlBaud; //波特率</p><p> BYTEcPort;//COM端口號(hào)</p><p> BYTEcDataBits;//數(shù)據(jù)位</p><p> BY
105、TEcParity;//奇偶校驗(yàn)</p><p> BYTEcStopBits;//停止位</p><p><b> ……</b></p><p><b> };</b></p><p> 2. 串口通訊:本程序采用CSerialPortEx類,它為程序提供了多線程條件下通過串口收
106、發(fā)數(shù)據(jù)的簡便方法,同時(shí)可以支持對(duì)二進(jìn)制數(shù)據(jù)傳輸和塊讀寫方式。因此,我們可以直接啟動(dòng)多線程就可對(duì)串口緩沖區(qū)中數(shù)據(jù)進(jìn)行讀寫操作。其主要函數(shù)如下:</p><p> BOOLInitPort(CWnd* pPortOwner, UINT portnr = 1, UINT baud = 19200, char parity = 'N', UINT databits = 8, UINT stopsbit
107、s = 1, DWORD dwCommEvents = EV_RXCHAR | EV_CTS, UINT nBufferSize = 512); //對(duì)串口參數(shù)的初始化</p><p> BOOLStartMonitoring();//啟動(dòng)串口監(jiān)聽</p><p> BOOLRestartMonitoring();//重啟串口監(jiān)聽</p><p&
108、gt; BOOLStopMonitoring();//停止串口監(jiān)聽</p><p> 3. 數(shù)據(jù)信息提?。撼绦驈拇诰彌_區(qū)中讀取GPS數(shù)據(jù),首先程序?qū)MEA0183語句進(jìn)行CheckSum判斷是否是NMEA0183標(biāo)準(zhǔn)語句,接著如果讀取的是GPMRC語句,就從中提取經(jīng)緯度、UTC時(shí)間、UTC日期、速度等有用的信息;如果讀取的是GPGSA語句,就提取PDOP,HDOP,VDOP值;如果讀取的是GPGS
109、V語句,就提取當(dāng)前衛(wèi)星數(shù)量、每顆衛(wèi)星的方位角、PRN值、高度角。 提取后,將其存儲(chǔ)在相應(yīng)結(jié)構(gòu)體中。其信息提取函數(shù)如下:</p><p> BOOL CNmea0183::LoadData(CString csSentence) //將GPS數(shù)據(jù)分類并存儲(chǔ)在相應(yīng)結(jié)構(gòu)體中</p><p> 4. 坐標(biāo)轉(zhuǎn)換及實(shí)時(shí)顯示:程序提取GPS相關(guān)信息后,將相關(guān)數(shù)據(jù)傳遞到視圖繪制消息中,將經(jīng)緯度坐標(biāo)體系
110、轉(zhuǎn)換成屏幕坐標(biāo)系統(tǒng)中,便在視圖中繪制點(diǎn)位。主要代碼如下:</p><p> void CNavSystem2View::InitScale()//對(duì)顯示視圖比例系數(shù)的初始化</p><p> void CNavSystem2View::DrawGps(CDC *pDC,DrawParam& draw)//繪制GPS點(diǎn)位</p><p> 第四章
111、 基于電子地圖的GPS定位程序的實(shí)現(xiàn)</p><p> 一、電子地圖顯示與管理的實(shí)現(xiàn)</p><p> ?。ㄒ唬╇娮拥貓D顯示功能的實(shí)現(xiàn)</p><p> 電子地圖顯示的坐標(biāo)映象方式有很多種,在VC++中進(jìn)行Windows應(yīng)用程序設(shè)計(jì)時(shí),可以采用多種不同的映象方式即不同的坐標(biāo)系,每一種映象方式提供了不同的測量單位和坐標(biāo)原點(diǎn),滿足了各種具體方式下的需要。以MM_TE
112、XT方式為基礎(chǔ),實(shí)現(xiàn)地圖的顯示。</p><p> 在圖形顯示之前,為了管理點(diǎn)坐標(biāo)轉(zhuǎn)換所需要的參數(shù)變量,則定義了結(jié)構(gòu)體變量:</p><p> typedef struct DrawParam</p><p> {double m_StartX; //當(dāng)前坐標(biāo)原點(diǎn)橫坐標(biāo)</p><p> double m_StartY;
113、 //當(dāng)前坐標(biāo)原點(diǎn)縱坐標(biāo) </p><p> int m_ScreenWidth; //當(dāng)前屏幕寬度</p><p> int m_ScreenHeigh; //當(dāng)前屏幕高度</p><p> double m_Top;//當(dāng)前屏幕矩形的上界Y值</p><p> double m_left;//當(dāng)前屏幕矩
114、形的左界X值</p><p> float m_Scale; //當(dāng)前繪圖比例尺 </p><p> } DRAWPARAM;</p><p> 經(jīng)上述坐標(biāo)轉(zhuǎn)換原理的講述,圖形放大、縮小、漫游、全圖顯示功能就比較容易實(shí)現(xiàn)了。從原理上講,它們都是引起了坐標(biāo)系統(tǒng)的變化,而導(dǎo)致圖形顯示的變化。</p><p> (m_S
115、tartX ,m_StartY)和 m_Scale是坐標(biāo)變換的兩個(gè)基本參數(shù),只要這兩參數(shù)確定了整個(gè)坐標(biāo)變換就唯一確定了,我們稱之為坐標(biāo)變換環(huán)境。從VC++的具體實(shí)現(xiàn)上,圖形處理函數(shù)的任務(wù)就是:根據(jù)當(dāng)前坐標(biāo)變換環(huán)境,確定當(dāng)前圖形處理引起的變化,然后更新坐標(biāo)變換環(huán)境,并且在新的坐標(biāo)變換環(huán)境下顯示圖形。</p><p><b> 圖形放大顯示</b></p><p>
116、圖6 圖形放大顯示</p><p><b> 圖形縮小顯示:</b></p><p> 圖7 圖形縮小顯示</p><p><b> 圖形漫游顯示: </b></p><p> 圖8 圖形漫游顯示</p><p> 4. 圖形全圖顯示:</p>
117、<p> 圖9 圖形全圖顯示</p><p> 5. 圖形開窗放大顯示:</p><p> 圖10 圖形開窗放大顯示</p><p> ?。ǘ﹫D層管理功能的實(shí)現(xiàn)</p><p> 圖層管理功能:包括圖層添加、刪除、參數(shù)管理等功能。從VC++的具體實(shí)現(xiàn)中,其原理是視圖顯示上改變顯示參數(shù),達(dá)到圖層顯示效果。</p&g
118、t;<p> 1. 圖層添加實(shí)現(xiàn)代碼為: </p><p> void CNavSystem2Doc::OnOpenShp() //打開并讀取SHPFILE</p><p> 圖層添加顯示結(jié)果圖:</p><p> 圖11 加載省邊界線、地區(qū)邊界線和省城圖層的顯示圖</p><p> 2. 圖層刪除實(shí)現(xiàn)代碼為:vo
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 導(dǎo)航電子地圖引擎設(shè)計(jì)與實(shí)現(xiàn).pdf
- gps電子地圖的建立及gps定位技術(shù)的應(yīng)用
- 基于MapInfo平臺(tái)的電子地圖導(dǎo)航系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn).pdf
- 導(dǎo)航電子地圖的研究與設(shè)計(jì).pdf
- 導(dǎo)航電子地圖系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn).pdf
- 汽車導(dǎo)航系統(tǒng)電子地圖的設(shè)計(jì)與實(shí)現(xiàn).pdf
- 基于電子地圖的GPS-INS組合導(dǎo)航技術(shù)與算法研究.pdf
- 40754.gps導(dǎo)航電子地圖的應(yīng)用研究
- 基于GPS定位和電子地圖的最佳路徑搜索.pdf
- 車載GPS-電子地圖導(dǎo)航系統(tǒng)的研究.pdf
- 基于GDF的導(dǎo)航電子地圖描畫數(shù)據(jù)轉(zhuǎn)化系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn).pdf
- 基于WebGIS的電子地圖設(shè)計(jì)與實(shí)現(xiàn).pdf
- 銀行電子地圖的設(shè)計(jì)與實(shí)現(xiàn).pdf
- 基于電子地圖的路徑規(guī)劃的設(shè)計(jì)與實(shí)現(xiàn).pdf
- 51820.lbs移動(dòng)終端導(dǎo)航電子地圖設(shè)計(jì)與實(shí)現(xiàn)
- 51171.基于mapobjects電子地圖系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
- 車輛導(dǎo)航監(jiān)控系統(tǒng)中電子地圖監(jiān)控軟件的設(shè)計(jì)與實(shí)現(xiàn).pdf
- VC++環(huán)境下GPS導(dǎo)航電子地圖的應(yīng)用研究.pdf
- 基于MapX的校園電子地圖導(dǎo)航系統(tǒng)的研究與設(shè)計(jì).pdf
- 基于CDMA GPSONE定位的電子地圖設(shè)計(jì)與應(yīng)用.pdf
評(píng)論
0/150
提交評(píng)論