2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩33頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、<p><b>  緒 論</b></p><p>  一、選題背景以及意義</p><p>  隨著計算機技術的飛速發(fā)展, 全球定位系統(tǒng)(GPS) 和地理信息系統(tǒng) (GIS) 在各行各業(yè)中得到廣泛的重視和應用, 兩者的集成化程度也日益加強,實現(xiàn)了GPS 導航信息在GIS上的可視化、一體化和集成化,能夠在地圖上實時動態(tài)地跟蹤目標和顯示地理位置。GPS定位為

2、GIS提供了采集數(shù)據(jù)信息的新方法,GIS為GPS提供了可視化的原始地圖背景,兩者關系愈加緊密。</p><p>  電子地圖是隨著計算機技術的發(fā)展而產(chǎn)生的一種嶄新的地理信息載體,具備地圖的內(nèi)涵, 是數(shù)字地圖在計算機屏幕上的符號化顯示, 具有信息豐富、直觀易懂、更新方便、實用靈活等特點, 因而受到用戶的普遍歡迎。所以電子地圖與GPS定位系統(tǒng)相結(jié)合成為兩者未來發(fā)展的必然趨勢。</p><p>

3、  隨著GPS車載導航設備和PDA設備的快速發(fā)展,GPS、電子地圖與掌上電腦技術相融合,逐步形成一個嵌入式的掌上導航系統(tǒng),是當前GIS、GPS研究領域的主要趨勢。如今,作為GPS與GIS 很好的結(jié)合體,GPS車載導航系統(tǒng)在國內(nèi)外市場已經(jīng)逐步普及,成為汽車行業(yè)的寵兒。</p><p>  本文選題意義在于利用GIS矢量數(shù)據(jù)(shapefile非拓撲關系數(shù)據(jù))作為電子地圖格式,結(jié)合GPS,在電子地圖上實現(xiàn)實時定位,對

4、基于電子地圖GPS定位技術的研究打下了堅實基礎。</p><p><b>  二、國內(nèi)外研究進展</b></p><p>  作為GPS導航與GIS的結(jié)合體,嵌入式掌上導航系統(tǒng)成為了國內(nèi)外GPS廠商發(fā)展的重點,尤其是汽車行業(yè)的寵兒——車載GPS導航系統(tǒng)。車載GPS導航系統(tǒng)是一種先進的導航系統(tǒng),能夠探測到汽車在行駛途中的當時位置,協(xié)助駕駛者在陌生的道路環(huán)境中,通過電子地

5、圖與話音指南,準確地掌握前往目的地的路線。它是GPS導航定位技術與電子地圖技術結(jié)合的焦點。現(xiàn)階段,隨著電子產(chǎn)和汽車產(chǎn)業(yè)的快速發(fā)展,國內(nèi)外汽車生產(chǎn)商、GPS專業(yè)廠商加快了對汽車GPS導航系統(tǒng)研制,而我國汽車導航系統(tǒng)本身起步比國外要晚了許多,在各個方面存在著較大差距,下面簡述國內(nèi)外在該行業(yè)上的研究進展狀況。</p><p> ?。ㄒ唬?國外研究進展</p><p>  在硬件方面,全世界已經(jīng)有

6、包括 IBM、MicroOptical、Xybernaut 在內(nèi)的超過 100 家公司生產(chǎn)與移動計算相關的產(chǎn)品,如帶 LCD 顯示器的眼鏡、手執(zhí)微型鍵盤、手執(zhí)鼠標、聲控輸入設備、GPS天線等。</p><p>  在應用系統(tǒng)開發(fā)方面,美國麻省理工學院、哥倫比亞大學和歐洲的瑞士聯(lián)邦技術學院、荷蘭 Delft 技術大學等都在醫(yī)學、工業(yè)等各個移動計算領域進行應用系統(tǒng)的開發(fā)工作。</p><p>

7、  在地圖數(shù)據(jù)方面,美國愛荷華州立大學和加利福尼亞大學美國地理信息與分析中心(NCGIA)正在合作為 NASA 和聯(lián)邦統(tǒng)計機構(gòu)進行一項名為 Batutta 的計劃,旨在研制一套專為地學野外采樣使用的移動作業(yè)系統(tǒng),包括地理環(huán)境與地理信息系統(tǒng)在無線移動環(huán)境中的集成以及穿戴式計算機、便攜計算機、PDA 和臺式服務器的聯(lián)合使用。</p><p>  在軟件開發(fā)方面,作為GIS 市場的領頭雁 Autodesk、ESRI 和

8、 Intergraph 三大公司為 Mobile GIS 技術做出了極大的貢獻。Autodesk 公司開發(fā) Autodesk OnSite 的 “移動訪問”模塊。ESRI 研制了 ArcGIS 軟件產(chǎn)品—ArcPad。而Intergraph 建立自己的移動 GIS 解決方案—IntelliWhere。這些軟件極大方便了Mobile GIS個人導航系統(tǒng)的開發(fā)。</p><p> ?。ǘ?國內(nèi)研究進展</p&

9、gt;<p>  在硬件方面,國內(nèi)的硬件技術很不成熟,相關導航產(chǎn)品的結(jié)構(gòu)設計、生產(chǎn)已接近國際水平,硬件差距較大,絕大多數(shù)產(chǎn)品尚未達到工業(yè)級技術標準。同時這幾年,所有的自主導航儀的硬件幾乎是清一色的日本貨,全是豐田、索尼、日立和先鋒等名牌產(chǎn)品。</p><p>  在應用系統(tǒng)開發(fā)方面,從1981年到1985年,完成了技術引進、數(shù)據(jù)規(guī)范和標準的研究、空間數(shù)據(jù)庫的建立、數(shù)據(jù)處理和分析算法及應用軟件的開發(fā)等

10、環(huán)節(jié),對GIS進行了理論探索和區(qū)域性的實驗研究。從1986年到現(xiàn)在,我國GIS的研究和應用進入有組織、有計劃、有目標的階段,逐步建立了不同層次、不同規(guī)模的組織機構(gòu)、研究中心和實驗室。</p><p>  在軟件開發(fā)方面,在科技部等國家有關部門的大力組織和支持下,國產(chǎn)GIS基礎軟件開發(fā)工作取得了重要進展,出現(xiàn)了一批GIS高技術企業(yè),開發(fā)出了較為成熟的國產(chǎn)GIS軟件,如MapGIS、GeoStar、CityStar、

11、SuperMap、MapEngine、GROW等,并形成了一定的產(chǎn)業(yè)規(guī)模,同時一些導航系統(tǒng)軟件也逐步出現(xiàn),例如靈圖的天行者,MAPKING、LEADSTAR、領路人等,打破了國外GIS軟件對我國市場的壟斷,有力促進了我國地理信息系統(tǒng)技術和自主導航技術的發(fā)展。</p><p>  在地圖數(shù)據(jù)方面,經(jīng)過了20年的努力,國家測繪局與其他相關部門協(xié)作完成了全國l:100萬、 1:25萬基礎地理空間數(shù)據(jù)庫以及全國七大江河數(shù)

12、字地形模型的建設,并啟動了全國l:5萬,部分省份1:1萬基礎地理空間數(shù)據(jù)庫的建設。這些基礎數(shù)據(jù)有力促進了GIS技術的廣泛應用。與此同時,一些車載導航電子地圖開發(fā)也開始慢慢進入正軌,如北京靈圖的天行者地圖其精度較高,地圖范圍覆蓋面較廣,受到用戶喜愛;凱利德地圖軟件也受到國內(nèi)認可和歡迎。</p><p>  三、本文的研究內(nèi)容以及總體框架</p><p>  本文主要研究內(nèi)容是以shapefi

13、le地圖數(shù)據(jù)格式作為電子地圖數(shù)據(jù),在多線程條件下實現(xiàn)串口接收GPS信息,在電子地圖上實時顯示當前地理位置,實現(xiàn)實時導航定位功能,僅為以后在該方面上的開發(fā)提供初步基礎。</p><p>  本次設計的總體框架是:首先概述電子地圖的特點、分類以及發(fā)展過程,接下來敘述GPS導航定位、測時、測速的基本原理,然后則結(jié)合程序代碼詳細闡述GPS導航定位程序的設計總體思路,并闡述了在程序設計總體思路下對GPS導航定位程序功能的實

14、現(xiàn),最后總結(jié)了程序設計過程體會和經(jīng)驗,并分析程序存在的不足與缺陷。</p><p>  第一章 電子地圖概述</p><p><b>  一、電子地圖的特點</b></p><p>  電子地圖是隨著計算機技術的發(fā)展而產(chǎn)生的一種嶄新的地理信息載體,它脫胎于地圖,將地圖以數(shù)字的方式存儲、呈現(xiàn),并只能在電腦中才能使用。它具有顯示、傳輸和分析的功能

15、,可以提供比傳統(tǒng)地圖更佳的呈現(xiàn)方式,如放大、縮小、漫游、搜索以及路徑規(guī)劃。</p><p>  常規(guī)的紙質(zhì)地圖強調(diào)的是數(shù)據(jù)載體、符號化和顯示,它是電子地圖發(fā)展的根源之一,而電子地圖則側(cè)重于分析,所以后者其表現(xiàn)方式也比前者要強大的多,具有許多獨特的優(yōu)點。這些優(yōu)點包括:</p><p>  1、信息豐富、信息量大</p><p>  電子地圖可包括圖形、圖像、文檔、統(tǒng)計

16、數(shù)據(jù)等多種形式,不僅可以存儲二維平面圖形,還可以保存三維影像,也可以與視頻、音頻信息相連,數(shù)據(jù)類型與數(shù)據(jù)量的可擴展性比較強 , 電子地圖使用數(shù)字存儲介質(zhì),該介質(zhì)容量可以很大,例如一張光盤很容易存放幾百張地圖。而紙質(zhì)地圖只能存儲基本的二維地形、地物要素,并且由于地圖紙張、篇幅大小的限制,大部分的細部要素被綜合取舍,所以其所能存儲信息容量是非常有限的。</p><p>  2、使用非常靈活、方便</p>

17、<p>  電子地圖一般以圖層為單位組織數(shù)據(jù),圖層則一般按地圖要素分別顯示,這樣每層顯示一個要素(比如,一層顯示街區(qū),一層顯示水系,一層顯示綠地,一層顯示道路等等),各圖層可單獨顯示,也可多層組合疊層顯示,從而達到一些紙質(zhì)地圖無法達到的效果。比如,在地區(qū)/政區(qū)圖層上加載人口統(tǒng)計圖層,可分析不同街區(qū)、不同地區(qū)的人口分布狀況。而兩張不同要素的紙張地圖則不能簡單的疊加,使用起來也比較不方便。</p><p>

18、;  3、集成了聲音、圖文和數(shù)字多媒體</p><p>  把圖形的直觀性、數(shù)字的準確性、聲音的引導性和親切感相結(jié)合,充分調(diào)用了使用者的各種感官,這是傳統(tǒng)地圖所無法比擬的。</p><p>  4、地圖數(shù)據(jù)更新快速</p><p>  電子地圖顯示的數(shù)據(jù)都存儲在數(shù)據(jù)庫中,隨著計算機技術的不斷發(fā)展,數(shù)據(jù)庫的更新越來越快,相應的電子地圖就可以以最新的數(shù)據(jù)進行顯示,它的數(shù)

19、據(jù)更新周期要比紙質(zhì)地圖短的多。</p><p><b>  5、功能非常強大</b></p><p>  電子地圖使用了計算機工具,可以非常方便的進行地圖的各種計算、統(tǒng)計和分析,可以進行動態(tài)模擬,便于定性與定量分析,具有較強的靈活性。查詢檢索和分析功能能夠支持從地圖圖形到屬性數(shù)據(jù)和從屬性數(shù)據(jù)到圖形數(shù)據(jù)的雙向檢索;圖形動態(tài)變化功能從開窗縮放、瀏覽閱讀等基本功能到底圖動畫

20、功能、多維動畫圖形模擬等;多級比例尺之間互相轉(zhuǎn)換,可以將屏幕顯示地圖內(nèi)容與當前比例完美的匹配,自動的對地圖內(nèi)容進行與比例尺相適應的取舍或綜合。</p><p><b>  6、交互性十分強</b></p><p>  電子地圖能提供給用戶較強的交互能力,如用戶可對地圖進行任意的放大、縮小、漫游、要素選取、要素渲染、對象標注等等。比如,用戶可以自己感興趣的地點進行標注,

21、甚至可以進行編輯,來滿足用戶的不同要求。</p><p><b>  二、電子地圖的分類</b></p><p>  電子地圖的分類有很多,按照電子地圖的功能和數(shù)據(jù)結(jié)構(gòu)的不同可為以下幾種:</p><p>  (一)閱讀型電子地圖</p><p>  主要為單一的地圖顯示和閱讀,該類型電子地圖是把已制作的模擬地圖通過掃描

22、數(shù)字化作為圖像數(shù)據(jù)存儲,使用柵格數(shù)據(jù)模型表達地圖圖形。閱讀型電子地圖一般屬于早期的產(chǎn)品,主要由于沒有建立空間信息數(shù)據(jù)庫,或者沒有數(shù)字地圖可利用,但又急于提供使用,該類型電子地圖不能用于查詢分析,但可在計算機屏幕上閱讀。如數(shù)字化電子地圖等。</p><p> ?。ǘ┙换バ碗娮拥貓D</p><p>  交互型的電子地圖是具有多種功能高級型的電子地圖,交互型電子地圖是在地圖矢量數(shù)據(jù)庫和軟硬件資

23、源支持下,能實現(xiàn)對電子地圖各種操作,例如顯示閱讀、屬性查詢、空間檢索分析,輸出硬拷貝等。交互型的電子地圖是當前主要研究方向之一,在數(shù)據(jù)組織管理、功能操作、用戶界面友好等諸多方面,體現(xiàn)了電子地圖技術水平?,F(xiàn)今,大部分車載導航電子地圖、個人電子地圖、地區(qū)電子地圖等都是交互型的電子地圖產(chǎn)品。</p><p>  (三)網(wǎng)絡型電子地圖</p><p>  網(wǎng)絡型電子地圖是在Internet或局域網(wǎng)

24、絡環(huán)境中使用的電子地圖。近年來,新計算機技術不斷運用到Web中,其中,傳統(tǒng)地圖與Web結(jié)合造就的網(wǎng)絡型電子地圖就是一種建設性的結(jié)合。GIS、格柵、VR也應用在網(wǎng)絡型電子地圖,使之從最初的“無縫”圖片發(fā)展成二維、三維等真正的電子地圖。</p><p>  在二維電子地圖方面:目前國內(nèi)比較有代表性是有北京圖為先公司開發(fā)的mapbar.com平臺,北京靈圖公司開發(fā)的51ditu.com平臺,還有就是以Google為代表

25、的運用了美國衛(wèi)星航拍技術的bendi.google.com平臺。</p><p>  在三維電子地圖方面:具有代表性是2005年Google在earth.google.com上推出的新產(chǎn)品:Google Earth。還有該領域的后起之秀:杭州阿拉丁信息科技有限公司開發(fā)的edushi.com平臺。</p><p>  三、電子地圖系統(tǒng)的發(fā)展</p><p>  對電子

26、地圖系統(tǒng)的研究伴隨著整個空間信息科學(其中包括互聯(lián)網(wǎng)、GPS ,遙感、多維可視化技術的進展)的發(fā)展而不斷擴展和深人,主要表現(xiàn)在以下方面:</p><p> ?。ㄒ唬┟嫦?qū)ο蟮碾娮拥貓D模型</p><p>  電子地圖除了地圖圖層基本組成外,還要包括一系列功能函數(shù),以完成符號化生成、圖形編輯、地圖整飾、地圖內(nèi)容檢索、空間分析等任務,這樣地圖類及其功能函數(shù)組成了電子地圖概念模型。</p

27、><p>  (二)建立電子地圖圖層創(chuàng)作模版</p><p>  圖層創(chuàng)作“模板”是對不同地圖圖型設計的規(guī)格,其中最重要的是將空間和屬性數(shù)據(jù)轉(zhuǎn)化為地圖圖形的可視化方法和符號化參數(shù)的設置。在研發(fā)的系統(tǒng)中給出了通用地圖符號庫和專題地圖符號模型及符號梯尺模型等工具,可以建立多種地圖圖層創(chuàng)作“模板”,制作各種類型電子地圖。</p><p> ?。ㄈ╇娮拥貓D設計研究</p

28、><p>  電子地圖創(chuàng)作,在數(shù)據(jù)和軟硬件技術資源支撐下,決定其質(zhì)量的關鍵是電子地圖設計。設計中,需要考慮的因素很多,首先要解決的問題是已建立的空間信息的無縫數(shù)據(jù)文件,其海量數(shù)據(jù)的圖形顯示同屏幕尺寸和分辨率之間的矛盾;然后是在同一主導數(shù)據(jù)庫的支撐下,進行多級比例尺地圖顯示的綜合。對于計算機相對有限的存儲能力和有限的屏幕顯示的矛盾解決,要充分利用系統(tǒng)中多種方式的地圖檢索、開窗放大、多向漫游、導航視圖以及多窗口設置等手段

29、來解決地圖閱讀。因此精心設計和方便操作,對提高讀者的視覺感受和讀圖效果是大有幫助的。</p><p>  第二章 GPS導航定位原理概述</p><p>  一、GPS衛(wèi)星導航定位原理</p><p>  導航是一個技術門類的總稱,它是引導飛機、船舶、車輛以及個人(總稱作運載體)安全、準確地沿著選定的路線,準時到達目的地的一種手段。GPS導航是廣義的GPS動態(tài)定位

30、,其定位方法主要有以下幾種:</p><p><b> ?。ㄒ唬﹩吸c動態(tài)定位</b></p><p>  單點動態(tài)定位的基本方程為:</p><p><b> ?。?-1)</b></p><p>  式中,為動態(tài)用戶在時刻的瞬時位置;是第j顆GPS衛(wèi)星在其運行軌道上的瞬時位置,它可根據(jù)廣播星歷計算

31、;為碼接收機所測得的GPS信號接收天線和第j顆GPS衛(wèi)星之間的距離,即站星距離; d是由于接收機時鐘誤差的因素所引起的站星距離偏差。</p><p>  利用(3-1)式解算各個坐標分量的修正值,即給定用戶三維坐標的初始值(,,),求解三維坐標的改正值(,,)和距離偏差d。</p><p>  (二)偽距差分動態(tài)定位</p><p>  所謂差分動態(tài)定位(DGP

32、S)就是用兩臺接收機在兩個測站上同時測量來自相同GPS衛(wèi)星的導航定位信號,用以聯(lián)合測得動態(tài)用戶的精確位置。</p><p>  由式(3-1)可知基準站測得至GPS衛(wèi)星j的偽距為:</p><p><b> ?。?-2)</b></p><p>  式中,為基準站和第j 顆GPS衛(wèi)星之間的真實距離;是GPS衛(wèi)星星歷誤差所引起的距離偏差;為接收機

33、時鐘相對于GPS時間系統(tǒng)的偏差;是第J顆GPS衛(wèi)星時鐘相對GPS時間系統(tǒng)的偏差;為電離層時延所引去的距離偏差;是對對流層時延所引去的距離偏差;為電磁波的傳播速度。</p><p> ?。ㄈ﹦討B(tài)載波相位差分測量</p><p>  由載波相位觀測方程得出動態(tài)差分方程:</p><p><b>  (3-3)</b></p><

34、;p>  當動態(tài)用戶和基準站都同時觀測了4顆相同GPS 衛(wèi)星時,則可解算在t時刻動態(tài)用戶位置估計值的改正數(shù),從而實現(xiàn)動態(tài)載波相位測量的目的。</p><p>  二、GPS衛(wèi)星測速原理</p><p>  盡管載體的運行速度各不一樣,且不是勻速運動,但是,只要在這些運動物體上安設GPS信號接收機,就可以在進行動態(tài)定位的同時,實時地測得它們的運行速度。依式(3-1)可知,用戶天線和GP

35、S衛(wèi)星之間的距離:</p><p><b> ?。?-4)</b></p><p>  根據(jù)物理學關于線速度的定義,則對式(3-4)進行求導,得到動態(tài)用戶的三維速度表達式:</p><p><b>  (3-5)</b></p><p>  式中,站星距離 (3-6) <

36、;/p><p>  由于、、三者的值很小,可忽略不計。則在進行測速之前,先使動態(tài)接收機處于靜止狀態(tài),此時有:</p><p>  ===0 (3-7)</p><p>  可按式(3-4)解算出衛(wèi)星的三維速度,隨即進行動態(tài)用戶的速度測量。</p><p>  三、GPS衛(wèi)星測時原理</p&

37、gt;<p>  GPS衛(wèi)星都安裝有四臺原子時鐘 ,導航定位時受到美國海軍天文臺(USNO)經(jīng)常性的監(jiān)測。GPS系統(tǒng)得地面主控站能夠以優(yōu)于5ns的精度,使GPS時間和世界協(xié)調(diào)時UTC之差保持在1s以內(nèi)。因此,GPS衛(wèi)星可以成為一種全球性的用戶無限的時間信號源,用以進行精確的時間比對。</p><p>  利用GPS信號進行時間傳遞,一般采用下列兩種方法:</p><p>  

38、(一)一站單機定時法</p><p>  即在一個已知位置測站上,用一臺GPS信號接收機觀測一顆GPS衛(wèi)星,從而測定用戶時鐘的偏差??山馑愕玫接脩魰r鐘偏差為: </p><p><b>  (3-8)</b></p><p>  上式即為一站單機的定時方程式。</p><p> ?。ǘ┕惨暠葘Χ〞r法</p>

39、<p>  即在兩個測站上各安設一臺GPS信號接收機,在相同 的時間內(nèi),觀測同一顆GPS衛(wèi)星,而測定用戶時鐘的偏差。依(3-8)可知,A、B兩個測站所測的用戶時鐘偏差分別為:</p><p><b> ?。?-9)</b></p><p>  通過數(shù)據(jù)傳輸而將測站A的用戶鐘差送到B,得到兩個用戶的鐘差</p><p><b&

40、gt; ?。?-10)</b></p><p>  上式中消除GPS衛(wèi)星的時鐘偏差;實際傳播時間是依據(jù)測站位置和衛(wèi)星位置而求得</p><p><b>  (3-11)</b></p><p>  因此共視用戶的鐘差:</p><p><b> ?。?-12)</b></p>

41、<p>  第三章 基于電子地圖的GPS導航定位程序的設計</p><p><b>  一、程序設計概述</b></p><p>  從一般導航系統(tǒng)軟件設計上看,基于GIS的GPS 導航系統(tǒng)軟件是GPS定位導航系統(tǒng)中重要組成部分,這些系統(tǒng)將GPS和GIS的主要功能即GPS數(shù)據(jù)接收、處理,數(shù)字地圖顯示、查詢及地圖匹配功能融合在一起。而這些功能按照模塊化設

42、計(即組件式或類模塊式)方式將所有功能進行有序、合理組織起來,實現(xiàn)導航系統(tǒng)的復雜功能,而每個模塊完成獨立的功能。數(shù)字電子地圖制作是軟件設計的一部分,單獨進行實現(xiàn),然后將地圖在軟件中使用。</p><p>  本次論文所設計的程序是在VC6.0環(huán)境下從底層設計功能性類模塊(如串口接收GPS數(shù)據(jù)信息類、從NMEA0183語句中提取相關信息類等),并對程序功能進行類模塊封裝,并有序組合這些類模塊,完成GPS 導航定位的

43、一般功能。在電子地圖制作方面,采用shapefile矢量數(shù)據(jù)為電子地圖數(shù)據(jù)格式,根據(jù)shapefile數(shù)據(jù)格式,自行設計各種類來讀取、管理shapefile矢量數(shù)據(jù),并在視圖上顯示。最后將shapefile地圖數(shù)據(jù)加載到程序中,總體上實現(xiàn)在電子地圖上的GPS實時導航定位功能。圖1為程序設計總體功能框架:</p><p>  圖1 程序設計總體功能框架圖</p><p><b>

44、  二、程序功能分析</b></p><p>  1.讀取shapefile地圖數(shù)據(jù),正確顯示導航電子地圖;</p><p>  2.實現(xiàn)導航電子地圖的基本功能:電子地圖的放大、縮小、漫游;</p><p>  3.實現(xiàn)對電子地圖的圖層進行管理、顯示:設置圖層顯示方式、圖層刪除等</p><p>  4.實現(xiàn)地圖任意位置的經(jīng)緯度的

45、顯示;</p><p>  5.能夠接收GPS OEM板輸出的數(shù)據(jù),對數(shù)據(jù)進行有效性判別并將所需要的數(shù)據(jù)進行提取,并實時將當前GPS數(shù)據(jù)記錄到固定文件中;</p><p>  6.能夠在電子地圖上正確實時動態(tài)顯示當前位置,并在衛(wèi)星天空分布視圖中實時顯示衛(wèi)星分布、經(jīng)緯度、速度、時間;</p><p>  7.能夠從記錄在文件中的數(shù)據(jù)讀取進行回放已行走過的導航軌跡,同時

46、顯示當前衛(wèi)星天空分布視圖;</p><p>  8.能夠設置系統(tǒng)參數(shù):地圖背景色設置、GPS實時記錄文件設置、地圖縮放比例設置等。 </p><p>  程序所有功能結(jié)構(gòu)可以圖2來表示 </p><p><b>  圖2 程序功能圖</b></p><p>  三、電子地圖矢量數(shù)據(jù)管理的設計</p>&

47、lt;p> ?。ㄒ唬﹕hapefile數(shù)據(jù)格式</p><p>  shapefile是ESRI公開的空間數(shù)據(jù)存儲格式,是當前一種比較流行的電子地圖文件格式。Shapefile是一種無拓撲結(jié)構(gòu)的地理信息系統(tǒng)文件,存儲非拓撲空間要素的幾何和屬性信息,空間幾何是包括一系列矢量坐標的圖形。Shapefile由于沒有處理拓撲數(shù)據(jù)結(jié)構(gòu)的開銷,在數(shù)據(jù)源繪制、顯示、編輯等方面比具有拓撲關系如coverage要來的快。Sh

48、apefile存儲單一圖形要素,不同圖形之間沒有拓撲關系,因此讀寫shapefile更容易,數(shù)據(jù)量較小。</p><p>  shapefile的主文件格式</p><p>  shapefile的主文件(.shp)由固定長度的文件頭和接著的變長度記錄組成。每個變長度記錄是由固定長度的記錄頭和接著的變長度記錄內(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>  需要注意的是每個變量的字節(jié)順序,在Shapefile中的數(shù)據(jù)可以分為兩類:一類是文件自身相關數(shù)據(jù),另一類則是地圖數(shù)據(jù)。比如,上面的文件標識代碼FileCode, 文件長度FileLen等,都是為了管理文件自身的數(shù)

50、據(jù)而設置的,在Shapefile主文件中其字節(jié)順序為big endian;而像地圖的邊界盒范圍值Xmin等描述的是地圖數(shù)據(jù),采用的是little endian。</p><p>  幾何類型 ShapeType是個很重要的參數(shù),標識的是該文件中的記錄的幾何類型,其值與意義的對應關系如表3所示。Shapefile是為存儲空間地理信息而設計,對于普通電子地圖來說,比較常用的類型是Point,PolyLine和Poly

51、gon。</p><p>  表3 shape類型</p><p>  在讀取shape類型時,分為NullShape、Point 、PolyLine、Polygon、 MultiPoint類型進行數(shù)據(jù)讀取。但是Point類型與MultiPoin類型之間只是點數(shù)量的不同,故可以將Point類型作為MultiPoint類型進行讀取。</p><p>  代碼如下:

52、BOOL CShpFile::ReadRecord()</p><p><b>  {</b></p><p>  switch ( m_shpType )</p><p><b>  {</b></p><p>  case NULLSHP://對無shapefile的讀取</p>

53、<p><b>  ……</b></p><p>  case POINTSHP: //對點文件記錄的讀取</p><p><b>  ……</b></p><p>  case POLYLINE: //對多義線記錄的讀取</p><p><b>  ……</b>

54、</p><p>  case POLYGON: //對多邊形記錄的讀取</p><p><b>  ……</b></p><p><b>  }</b></p><p>  每個圖形記錄頭存儲了記錄的數(shù)目和記錄內(nèi)容的長度。其格式是統(tǒng)一的。</p><p>  表4 記錄

55、頭結(jié)構(gòu)圖</p><p>  針對記錄頭格式,將其定義為結(jié)構(gòu)體來存儲記錄頭數(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)容包含一個shape類型和接著的該shape的幾何數(shù)據(jù)。記錄內(nèi)容的長度依賴于在一個圖形中部分和節(jié)點的數(shù)目。</p><p&g

57、t;  下面僅僅說明幾種常用幾何類型的數(shù)據(jù)結(jié)構(gòu)。</p><p><b>  點狀幾何類型:</b></p><p><b>  Point </b></p><p>  { Double X //X坐標 </p><p>  Double Y //Y坐標 </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 //點的總數(shù)目 </p><p>  Integer[NumParts] Parts //在部分中第一

60、個點的索引 </p><p>  Point[NumPoints] Points //所有部分的點 </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 //點的總數(shù)目 </p><p>  Integer[NumParts] Parts //在部分中第一個點的索引 </p><p>  Point[NumPoints] Points //所有部分的點 </p><p><b>  }</b></p><p>  

63、上述點狀幾何類型,用于存儲幾何信息以某一點表示的要素,線狀幾何類型與面狀幾何類型的數(shù)據(jù)結(jié)構(gòu)類似,分別用來存儲線狀和區(qū)域幾何類型,其結(jié)構(gòu)具有分段性,可以存儲多條線段和多個多邊形。</p><p><b>  2. 索引文件格式</b></p><p>  索引文件同樣采用記錄的形式,其中的記錄與相應的主文件一一對應,以表示主文件中記錄的位置和長度。其結(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)體來存儲記錄頭數(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)采用標準的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;/* 版本標志*/ </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; /* 浮點數(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時,要涉及到至少三個文件(.shp、.shx、.dbf),所以分別對不同的文件構(gòu)建不同讀取函數(shù)。</p><p>  讀取.shp主文件過程可分成兩個步驟:①讀取文件頭:根據(jù)文件的代碼、文件頭的shape類型,判斷文件是否是shapefile,shapef

73、ile的shape類型;并且獲取整個圖形的邊界盒大小,為圖形顯示作好鋪墊。②讀取記錄:讀取記錄頭中的shape類型進行判斷類型,然后讀取記錄長度和每個圖形的邊界盒范圍,通過記錄長度和DBF中求得的記錄數(shù),進一步讀取shapefile中點位信息。</p><p>  讀取.shx索引文件過程也可分成兩個步驟:①讀取文件頭:讀取處理方式與主文件讀取處理方式是一致的。②讀取記錄:讀取記錄的偏移量,計算主文件記錄個數(shù)。&

74、lt;/p><p>  讀取.dbf文件: dBASE文件中的屬性記錄順序和主文件中的記錄相同。只要根據(jù)dBASE文件結(jié)構(gòu),讀取字段描述部分中的數(shù)據(jù),并存儲在CMapRecordset類中。</p><p> ?。ㄈ﹕hapefile數(shù)據(jù)結(jié)構(gòu)</p><p>  對shapefile數(shù)據(jù)的讀取后,程序?qū)Υ鎯蟮臄?shù)據(jù)訪問是最基本、最重要的問題?;靵y數(shù)據(jù)管理必然會影響數(shù)據(jù)

75、的訪問,加大程序冗余量,導致設計混亂,所以合理的數(shù)據(jù)管理是整個電子地圖系統(tǒng)的關鍵。</p><p>  為了更好的管理數(shù)據(jù),則建立一整套合理的地圖文件類和圖層類。地圖文件類表示地圖文件本身,滿足用戶使用地圖數(shù)據(jù)的需要。而圖層類管理者多個地圖文件類,可以實現(xiàn)多個地圖圖層的疊加、刪除等功能。</p><p>  1.地圖文件類的設計</p><p>  Shapefil

76、e格式的三個文件中,地圖的幾何信息存儲在主文件中,屬性信息存放在屬性文件中,而索引文件可以幫助用戶快速訪問主文件中的數(shù)據(jù)。</p><p>  對于具體shapefile電子地圖而言,主文件按照其中記錄的幾何類型可以分為三類:點、線和面。這些文件具有相同的結(jié)構(gòu),只是每條記錄的幾何數(shù)據(jù)存儲各不相同。幾何數(shù)據(jù)存儲不同,僅僅會導致訪問每條記錄時不同,而在其余方面,訪問三種文件一致。根據(jù)面向?qū)ο蟮乃枷?,可以設計下面的類關

77、系結(jié)構(gòu)圖。</p><p>  圖3 類關系結(jié)構(gòu)圖</p><p>  CMapPoint類中存儲單點的X、Y坐標,可以對X、Y坐標進行取值和賦值;CMapPoints類存儲CMapPoint的指針列表,可以對多個點進行添加、刪除、插入,并設置邊界盒范圍;CMapParts類是對單個圖形中的單個部分圖形進行管理的對象類,存儲CMapPoints類的指針列表,也可實現(xiàn)對多個部分圖形進行添加

78、、刪除、插入等操作,多個CMapParts類組成了CMapLine類或CMapPolygon類。CMapLine類或CMapPolygon類是對圖形中的部分進行管理的對象類,可實現(xiàn)對多個部分進行添加、刪除、插入等基本操作。這樣分層次管理圖形對象,有利得組織好圖形對象,管理好電子地圖數(shù)據(jù)。</p><p><b>  2.圖層類的設計</b></p><p>  圖層類

79、對多個地圖文件進行統(tǒng)一管理,可以實現(xiàn)圖層刪除、添加等基本操作功能,根據(jù)面向?qū)ο蟮乃枷耄瑯?gòu)架以下圖層的關系結(jié)構(gòu)圖:</p><p>  圖4 圖層類結(jié)構(gòu)圖</p><p>  CMapLayer類存儲一個圖層中所有幾何空間數(shù)據(jù)和屬性數(shù)據(jù),可以對單個圖層設置或獲取可視狀態(tài)、圖層名稱、矩形范圍大小、shape類型,也可以對圖層屬性信息存儲管理。</p><p>  CM

80、apLayers類是對所有CMapLayer類的管理,可實現(xiàn)對圖層添加、刪除、圖層Z狀態(tài)等功能。</p><p>  四、GPS導航數(shù)據(jù)管理的設計</p><p> ?。ㄒ唬〨PS接收機輸出的數(shù)據(jù)格式</p><p>  GPS輸出有二進制和NMEA-0183兩種格式。二進制格式是各個接收機廠家自行定義的通信數(shù)據(jù)格式,每個廠商定義內(nèi)容不完全一樣,而且格式互不兼容。N

81、MEA-0183是美國國家航海電子協(xié)會0183號協(xié)議,該通信協(xié)議是從為海用電子設備制定的0180和0182基礎上增加GPS數(shù)據(jù)內(nèi)容而完成的,目前廣泛采用的是2.0版,幾乎所有的GPS接收機都有按照NMEA-0183格式的輸出端口。GPS數(shù)據(jù)接收模塊主要處理對象就是NMEA-0183數(shù)據(jù)幀。</p><p>  NMEA- 018 3定義了多種類型的語句格式,每條語句格式相同,所表達的定位信息各有側(cè)重,可根據(jù)實際需

82、要進行選擇。本文采用的是GPRMC、GPGSA、GPGSV、GPGGA類型的語句。</p><p>  1. GPRMC語句又稱為推薦最小定位數(shù)據(jù)(Recommended Minimum Specific GNSS Data),包括了時間、日期、位置、航向、速率等信息。其完整語句結(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時間,hhmmss(時分秒)格式</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度,以真北為參考基準,前面的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>  由上述格式,在程序中定義了存儲該語句信息的結(jié)構(gòu)體:</p><p>  struct ST_GPS_DA

87、TA</p><p><b>  {</b></p><p>  BYTEbyFixType;// 定位標志,0-no fixed,1-fixed.</p><p>  BOOLbIsAzimuth;// 方位角無效</p><p>  doubledbLat;// 緯度&

88、lt;/p><p>  doubledbLong;// 經(jīng)度</p><p>  doubledbSpeed;// 相對于地面的速度</p><p>  doubledbAzimuth;// 方位角</p><p>  SYSTEMTIMEUtcTime;// UTC時間</p>&

89、lt;p><b>  ……</b></p><p><b>  };</b></p><p>  2. GPGSA語句稱為當前衛(wèi)星信息(GPS DOP and Active Satellites),包括當前衛(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 = 手動, A = 自動。 </p><p>  <2>定位型式 1 = 未定位

91、, 2 = 二維定位, 3 = 三維定位。 </p><p>  <3>PRN 數(shù)字:01 至 32 表天空使用中的衛(wèi)星編號,最多可接收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(檢驗位)。</p><p>  由上述格式,在程序中定義了存儲該語句信息的結(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)星個數(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的編號。</

96、p><p>  <3> 可見衛(wèi)星的總數(shù),00 至 12。</p><p>  <4> 衛(wèi)星編號, 01 至 32。 </p><p>  <5> 衛(wèi)星仰角, 00 至 90 度。 </p><p>  <6> 衛(wèi)星方位角, 000 至 359 度。實際值。 </p><p>

97、  <7> 訊號噪聲比(C/No), 00 至 99 dB;無表未接收到訊號。 </p><p>  <8> Checksum(檢驗位)。</p><p>  由上述格式,在程序中定義了存儲該語句信息的結(jié)構(gòu)體:</p><p>  struct ST_SAT_DATA</p><p><b>  {</

98、b></p><p>  intnSatID;// 衛(wèi)星編號</p><p>  intnElevation;// 仰角</p><p>  intnAzimuth;// 方位角</p><p>  intnSNR;// 信噪比.0~99,-1為無效</p>

99、<p>  BOOLbUsed;</p><p><b>  };</b></p><p> ?。ǘ〨PS信息類的設計</p><p>  為了有效、高效的管理GPS導航定位信息,程序定義了CNmea0183類來管理GPS數(shù)據(jù)的讀取、GPS數(shù)據(jù)檢驗、信息的提取。</p><p><b>

100、  設計代碼如下:</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語句檢驗</p><p><b>  ……</b></p><p><b>

102、;  };</b></p><p> ?。ㄈ〨PS數(shù)據(jù)讀取程序設計</p><p>  計算機與GPS接收機通過RS232串行接口連接,數(shù)據(jù)傳送采用異步串行傳送方式。GPS數(shù)據(jù)讀取過程大致可以分三個過程:串口通訊、數(shù)據(jù)信息提取、坐標轉(zhuǎn)換及實時顯示。首先程序?qū)拇诮邮盏紾PS信息送入到串口緩沖區(qū)中,再按一定時間間隔讀取串口緩沖區(qū)中GPS數(shù)據(jù),并對GPS數(shù)據(jù)進行判斷是否符合要求

103、,若符合,則從數(shù)據(jù)中提取相關信息,存入相應結(jié)構(gòu)體中,最后實時在地圖上顯示當前位置。圖5表示各個過程關系:</p><p>  圖5 GPS數(shù)據(jù)讀取過程圖</p><p>  1. 串口:在實際使用串口時,必須配置串口參數(shù),該參數(shù)包括COM端口號、波特率、數(shù)據(jù)位、奇偶校驗、停止位等。為能很好配置串口參數(shù),將該參數(shù)存儲在自定義的結(jié)構(gòu)體中,也可隨時更改結(jié)構(gòu)體中的參數(shù)。該結(jié)構(gòu)體定義如下:

104、 struct ST_COMM_PARA</p><p><b>  {</b></p><p>  DWORDlBaud; //波特率</p><p>  BYTEcPort;//COM端口號</p><p>  BYTEcDataBits;//數(shù)據(jù)位</p><p>  BY

105、TEcParity;//奇偶校驗</p><p>  BYTEcStopBits;//停止位</p><p><b>  ……</b></p><p><b>  };</b></p><p>  2. 串口通訊:本程序采用CSerialPortEx類,它為程序提供了多線程條件下通過串口收

106、發(fā)數(shù)據(jù)的簡便方法,同時可以支持對二進制數(shù)據(jù)傳輸和塊讀寫方式。因此,我們可以直接啟動多線程就可對串口緩沖區(qū)中數(shù)據(jù)進行讀寫操作。其主要函數(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); //對串口參數(shù)的初始化</p><p>  BOOLStartMonitoring();//啟動串口監(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語句進行CheckSum判斷是否是NMEA0183標準語句,接著如果讀取的是GPMRC語句,就從中提取經(jīng)緯度、UTC時間、UTC日期、速度等有用的信息;如果讀取的是GPGSA語句,就提取PDOP,HDOP,VDOP值;如果讀取的是GPGS

109、V語句,就提取當前衛(wèi)星數(shù)量、每顆衛(wèi)星的方位角、PRN值、高度角。 提取后,將其存儲在相應結(jié)構(gòu)體中。其信息提取函數(shù)如下:</p><p>  BOOL CNmea0183::LoadData(CString csSentence) //將GPS數(shù)據(jù)分類并存儲在相應結(jié)構(gòu)體中</p><p>  4. 坐標轉(zhuǎn)換及實時顯示:程序提取GPS相關信息后,將相關數(shù)據(jù)傳遞到視圖繪制消息中,將經(jīng)緯度坐標體系

110、轉(zhuǎn)換成屏幕坐標系統(tǒng)中,便在視圖中繪制點位。主要代碼如下:</p><p>  void CNavSystem2View::InitScale()//對顯示視圖比例系數(shù)的初始化</p><p>  void CNavSystem2View::DrawGps(CDC *pDC,DrawParam& draw)//繪制GPS點位</p><p>  第四章

111、 基于電子地圖的GPS定位程序的實現(xiàn)</p><p>  一、電子地圖顯示與管理的實現(xiàn)</p><p>  (一)電子地圖顯示功能的實現(xiàn)</p><p>  電子地圖顯示的坐標映象方式有很多種,在VC++中進行Windows應用程序設計時,可以采用多種不同的映象方式即不同的坐標系,每一種映象方式提供了不同的測量單位和坐標原點,滿足了各種具體方式下的需要。以MM_TE

112、XT方式為基礎,實現(xiàn)地圖的顯示。</p><p>  在圖形顯示之前,為了管理點坐標轉(zhuǎn)換所需要的參數(shù)變量,則定義了結(jié)構(gòu)體變量:</p><p>  typedef struct DrawParam</p><p>  {double m_StartX; //當前坐標原點橫坐標</p><p>  double m_StartY;

113、 //當前坐標原點縱坐標 </p><p>  int m_ScreenWidth; //當前屏幕寬度</p><p>  int m_ScreenHeigh; //當前屏幕高度</p><p>  double m_Top;//當前屏幕矩形的上界Y值</p><p>  double m_left;//當前屏幕矩

114、形的左界X值</p><p>  float m_Scale; //當前繪圖比例尺 </p><p>  } DRAWPARAM;</p><p>  經(jīng)上述坐標轉(zhuǎn)換原理的講述,圖形放大、縮小、漫游、全圖顯示功能就比較容易實現(xiàn)了。從原理上講,它們都是引起了坐標系統(tǒng)的變化,而導致圖形顯示的變化。</p><p>  (m_S

115、tartX ,m_StartY)和 m_Scale是坐標變換的兩個基本參數(shù),只要這兩參數(shù)確定了整個坐標變換就唯一確定了,我們稱之為坐標變換環(huán)境。從VC++的具體實現(xiàn)上,圖形處理函數(shù)的任務就是:根據(jù)當前坐標變換環(huán)境,確定當前圖形處理引起的變化,然后更新坐標變換環(huán)境,并且在新的坐標變換環(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>  (二)圖層管理功能的實現(xiàn)</p><p>  圖層管理功能:包括圖層添加、刪除、參數(shù)管理等功能。從VC++的具體實現(xiàn)中,其原理是視圖顯示上改變顯示參數(shù),達到圖層顯示效果。</p&g

118、t;<p>  1. 圖層添加實現(xiàn)代碼為: </p><p>  void CNavSystem2Doc::OnOpenShp() //打開并讀取SHPFILE</p><p>  圖層添加顯示結(jié)果圖:</p><p>  圖11 加載省邊界線、地區(qū)邊界線和省城圖層的顯示圖</p><p>  2. 圖層刪除實現(xiàn)代碼為:vo

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論