freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于qt的gps導(dǎo)航畢業(yè)設(shè)計(jì)論文答辯-資料下載頁(yè)

2025-06-27 22:57本頁(yè)面
  

【正文】 職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)說(shuō)明書(shū)24第五章 總體設(shè)計(jì) 程序設(shè)計(jì)概述從一般導(dǎo)航系統(tǒng)軟件設(shè)計(jì)上看,基于 QT 的 GPS 導(dǎo)航系統(tǒng)軟件是 GPS 定位導(dǎo)航系統(tǒng)中重要組成部分,這些系統(tǒng)將 GPS 的主要功能即 GPS 數(shù)據(jù)接收、處理,數(shù)字地圖顯示、查詢及地圖匹配功能融合在一起。而這些功能按照模塊化設(shè)計(jì)(即組件式或類模塊式)方式將所有功能進(jìn)行有序、合理組織起來(lái),實(shí)現(xiàn)導(dǎo)航系統(tǒng)的復(fù)雜功能,而每個(gè)模塊完成獨(dú)立的功能。數(shù)字電子地圖制作是軟件設(shè)計(jì)的一部分,單獨(dú)進(jìn)行實(shí)現(xiàn),然后將地圖在軟件中使用。本次論文所設(shè)計(jì)的程序是在 QT環(huán)境下從底層設(shè)計(jì)功能性類模塊(如串口接收 GPS數(shù)據(jù)信息類、從 NMEA0183語(yǔ)句中提取相關(guān)信息類等) ,并對(duì)程序功能進(jìn)行類模塊封裝,并有序組合這些類模塊,完成 GPS 導(dǎo)航定位的一般功能。在電子地圖制作方面,采用shapefile矢量數(shù)據(jù)為電子地圖數(shù)據(jù)格式,根據(jù) shapefile數(shù)據(jù)格式,自行設(shè)計(jì)各種類來(lái)讀取、管理 shapefile矢量數(shù)據(jù),并在視圖上顯示。最后將 shapefile地圖數(shù)據(jù)加載到程序中,總體上實(shí)現(xiàn)在電子地圖上的 GPS實(shí)時(shí)導(dǎo)航定位功能。圖 1為程序設(shè)計(jì)總體功能框架:地圖數(shù)據(jù)讀取功能GPS導(dǎo)航定位程序多線程串口讀取 GPS數(shù)據(jù)功能GPS數(shù)據(jù)提取功能衛(wèi)星天空視圖功能地圖操作功能圖 1 程序設(shè)計(jì)總體功能框架圖 程序功能分析 shapefile地圖數(shù)據(jù),正確顯示導(dǎo)航電子地圖;:電子地圖的放大、縮小、漫游;徐州建筑職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)說(shuō)明書(shū)2顯示:設(shè)置圖層顯示方式、圖層刪除等; GPS OEM板輸出的數(shù)據(jù),對(duì)數(shù)據(jù)進(jìn)行有效性判別并將所需要的數(shù)據(jù)進(jìn)行提取,并實(shí)時(shí)將當(dāng)前 GPS數(shù)據(jù)記錄到固定文件中;,并在衛(wèi)星天空分布視圖中實(shí)時(shí)顯示衛(wèi)星分布、經(jīng)緯度、速度、時(shí)間;,同時(shí)顯示當(dāng)前衛(wèi)星天空分布視圖;:地圖背景色設(shè)置、GPS 實(shí)時(shí)記錄文件設(shè)置、地圖縮放比例設(shè)置等。 程序所有功能結(jié)構(gòu)可以圖 2 來(lái)表示 地圖數(shù)據(jù)讀取用戶界面提取定位數(shù)據(jù)GPS OEM 板記錄航跡點(diǎn)地圖顯示與管理地圖操作圖層管理衛(wèi)星天空視圖圖 2 程序功能圖 主界面設(shè)計(jì)主界面的接收和添加一個(gè)數(shù)據(jù)數(shù)據(jù)庫(kù)和退出的三個(gè)按鈕的實(shí)現(xiàn)徐州建筑職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)說(shuō)明書(shū)26第二主界面的實(shí)現(xiàn) 徐州建筑職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)說(shuō)明書(shū)27徐州建筑職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)說(shuō)明書(shū)28 電子地圖矢量數(shù)據(jù)管理的設(shè)計(jì) shapefile 數(shù)據(jù)格式shapefile 是 ESRI 公開(kāi)的空間數(shù)據(jù)存儲(chǔ)格式,是當(dāng)前一種比較流行的電子地圖文件格式。Shapefile 是一種無(wú)拓?fù)浣Y(jié)構(gòu)的地理信息系統(tǒng)文件,存儲(chǔ)非拓?fù)淇臻g要素的幾何和屬性信息,空間幾何是包括一系列矢量坐標(biāo)的圖形。Shapefile 由于沒(méi)有處理拓?fù)鋽?shù)據(jù)結(jié)構(gòu)的開(kāi)銷,在數(shù)據(jù)源繪制、顯示、編輯等方面比具有拓?fù)潢P(guān)系如 coverage 要來(lái)的快。Shapefile 存儲(chǔ)單一圖形要素,不同圖形之間沒(méi)有拓?fù)潢P(guān)系,因此讀寫(xiě) shapefile 更容易,數(shù)據(jù)量較小。1. shapefile 的主文件格式徐州建筑職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)說(shuō)明書(shū)29shapefile 的主文件( .shp)由固定長(zhǎng)度的文件頭和接著的變長(zhǎng)度記錄組成。每個(gè)變長(zhǎng)度記錄是由固定長(zhǎng)度的記錄頭和接著的變長(zhǎng)度記錄內(nèi)容組成。表 1為主文件的結(jié)構(gòu)圖:表 1 主文件的結(jié)構(gòu)圖文件頭記錄頭 記錄內(nèi)容記錄頭 記錄內(nèi)容記錄頭 記錄內(nèi)容……記錄頭 記錄內(nèi)容主文件頭總長(zhǎng)為 100 字節(jié),其結(jié)構(gòu)為表 2 所示:表 2 主文件頭的結(jié)構(gòu)表位置 域 值 類型 字節(jié)順序0 字節(jié) 文件代碼 9994 整數(shù) 大4 字節(jié) 未被使用 0 整數(shù) 大8 字節(jié) 未被使用 0 整數(shù) 大12 字節(jié) 未被使用 0 整數(shù) 大16 字節(jié) 未被使用 0 整數(shù) 大20 字節(jié) 未被使用 0 整數(shù) 大24 字節(jié) 文件長(zhǎng)度 文件長(zhǎng)度 整數(shù) 大28 字節(jié) 版本 1000 整數(shù) 小32 字節(jié) Shape 類型 Shape 類型 整數(shù) 小36 字節(jié) 邊界盒 Xmin 雙精度 小44 字節(jié) 邊界盒 Ymin 雙精度 小52 字節(jié) 邊界盒 Xmax 雙精度 小60 字節(jié) 邊界盒 Ymax 雙精度 小68 字節(jié)* 邊界盒 Zmin 雙精度 小76 字節(jié)* 邊界盒 Zmax 雙精度 小84 字節(jié)* 邊界盒 Mmin 雙精度 小92 字節(jié)* 邊界盒 Mmax 雙精度 小需要注意的是每個(gè)變量的字節(jié)順序,在 Shapefile 中的數(shù)據(jù)可以分為兩類:一類是文件自身相關(guān)數(shù)據(jù),另一類則是地圖數(shù)據(jù)。比如,上面的文件標(biāo)識(shí)代碼 FileCode, 文件長(zhǎng)徐州建筑職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)說(shuō)明書(shū)30度 FileLen 等,都是為了管理文件自身的數(shù)據(jù)而設(shè)置的,在 Shapefile 主文件中其字節(jié)順序?yàn)?big endian;而像地圖的邊界盒范圍值 Xmin 等描述的是地圖數(shù)據(jù),采用的是 little endian。幾何類型 ShapeType 是個(gè)很重要的參數(shù),標(biāo)識(shí)的是該文件中的記錄的幾何類型,其值與意義的對(duì)應(yīng)關(guān)系如表 3 所示。Shapefile 是為存儲(chǔ)空間地理信息而設(shè)計(jì),對(duì)于普通電子地圖來(lái)說(shuō),比較常用的類型是 Point,PolyLine 和 Polygon。表 3 shape類型值 shape 類型0 Null Shape1 Point3 PolyLine5 Polygon8 MultiPoint11 PointZ13 PolyLineZ15 PolygonZ18 MultiPointZ21 PointM23 PolyLineM25 PolygonM28 MultiPointM31 MultiPatch在讀取 shape 類型時(shí),分為 NullShape、Point 、PolyLine、Polygon、 MultiPoint 類型進(jìn)行數(shù)據(jù)讀取。但是 Point 類型與 MultiPoin 類型之間只是點(diǎn)數(shù)量的不同,故可以將 Point類型作為 MultiPoint 類型進(jìn)行讀取。代碼如下:BOOL CShpFile::ReadRecord(){switch ( m_shpType ){case NULLSHP: //對(duì)無(wú) shapefile 的讀取……case POINTSHP: //對(duì)點(diǎn)文件記錄的讀取徐州建筑職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)說(shuō)明書(shū)31……case POLYLINE: //對(duì)多義線記錄的讀取……case POLYGON: //對(duì)多邊形記錄的讀取……}每個(gè)圖形記錄頭存儲(chǔ)了記錄的數(shù)目和記錄內(nèi)容的長(zhǎng)度。其格式是統(tǒng)一的。表 4 記錄頭結(jié)構(gòu)圖位置 域 值 類型 字節(jié)順序0 字節(jié) 記錄數(shù)目 記錄數(shù)目 整數(shù) 大4 字節(jié) 內(nèi)容長(zhǎng)度 內(nèi)容長(zhǎng)度 整數(shù) 大針對(duì)記錄頭格式,將其定義為結(jié)構(gòu)體來(lái)存儲(chǔ)記錄頭數(shù)據(jù)。代碼為: typedef struct shpRecordHeader { int iRecordNum。 //記錄數(shù) int iContentLength。 //記錄內(nèi)容長(zhǎng)度 } SHPRECORDHEADER。Shapefile 記錄內(nèi)容包含一個(gè) shape 類型和接著的該 shape 的幾何數(shù)據(jù)。記錄內(nèi)容的長(zhǎng)度依賴于在一個(gè)圖形中部分和節(jié)點(diǎn)的數(shù)目。下面僅僅說(shuō)明幾種常用幾何類型的數(shù)據(jù)結(jié)構(gòu)。點(diǎn)狀幾何類型:Point { Double X //X 坐標(biāo) Double Y //Y 坐標(biāo) }線狀幾何類型:PolyLine { Double[4] Box //邊界盒 Integer NumParts //部分的數(shù)目 Integer NumPoints //點(diǎn)的總數(shù)目 Integer[NumParts] Parts //在部分中第一個(gè)點(diǎn)的索引 Point[NumPoints] Points //所有部分的點(diǎn) }面狀幾何類型:徐州建筑職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)說(shuō)明書(shū)32Polygon { Double[4] Box //邊界盒 Integer NumParts //部分的數(shù)目 Integer NumPoints //點(diǎn)的總數(shù)目 Integer[NumParts] Parts //在部分中第一個(gè)點(diǎn)的索引 Point[NumPoints] Points //所有部分的點(diǎn) }上述點(diǎn)狀幾何類型,用于存儲(chǔ)幾何信息以某一點(diǎn)表示的要素,線狀幾何類型與面狀幾何類型的數(shù)據(jù)結(jié)構(gòu)類似,分別用來(lái)存儲(chǔ)線狀和區(qū)域幾何類型,其結(jié)構(gòu)具有分段性,可以存儲(chǔ)多條線段和多個(gè)多邊形。2. 索引文件格式索引文件同樣采用記錄的形式,其中的記錄與相應(yīng)的主文件一一對(duì)應(yīng),以表示主文件中記錄的位置和長(zhǎng)度。其結(jié)構(gòu)如表 5:表 5 索引文件結(jié)構(gòu)文件頭記錄記錄記錄記錄…………記錄索引文件的文件頭與主文件(.shp)的文件頭相同。索引文件的記錄格式結(jié)構(gòu)如表6:表 6 索引記錄結(jié)構(gòu)位置 域 值 類型 字節(jié)順序0 字節(jié) 偏移量 偏移量 整數(shù) 大4 字節(jié) 內(nèi)容長(zhǎng)度 內(nèi)容長(zhǎng)度 整數(shù) 大將其定義為結(jié)構(gòu)體來(lái)存儲(chǔ)記錄頭數(shù)據(jù)。代碼如下:typedef struct shxRecord 徐州建筑職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)說(shuō)明書(shū)33{int iOffset。int iContentLength。} SHXRECORD。3.屬性文件格式屬性文件的結(jié)構(gòu)采用標(biāo)準(zhǔn)的 dBASE 格式,其文件結(jié)構(gòu)如表 7 所示:表 7 屬性文件結(jié)構(gòu)文件頭字段 1 ……字段 N記錄區(qū)開(kāi)始標(biāo)志 0D記錄記錄……記錄記錄區(qū)結(jié)束標(biāo)志 1A屬性文件的文件頭結(jié)構(gòu)如下所示:typedef struct DBF_header { char Version。 /* 版本標(biāo)志*/ unsigned char Year,Month,day。 /* 最后更新年、月、日 */ unsigned long RecordsNum。 /* 文件包含的總記錄數(shù) */ unsigned short HeaderLen。 /*文件頭長(zhǎng)度*/unsigned short RecordLen。 /*記錄長(zhǎng)度 */ char reserved[20]。 /* 保留 */ } DBF_HEADER。屬性文件的字段結(jié)構(gòu)如下所示:typedef struct field_element { char FieldName[11]。 /* 字段名稱 */ 文件頭記錄徐州建筑職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)說(shuō)明書(shū)34 char FieldType。 /* 字段類型 */ unsigned long Offset。 /* 偏移量 */ unsigned char FieldLength。 /* 字段長(zhǎng)度 */ unsigned char FieldDecimal。 /* 浮點(diǎn)數(shù)整數(shù)部分長(zhǎng)度 */ char reserved1[2]。 /* 保留 */ char Work_area_ID。 /* dBASE IV Work area ID*/ char reserved2[10]。 char MDX_field_flag。 } FIELD_ELEMENT。 shapefile 數(shù)據(jù)讀取程序在讀取 shapefile 時(shí),要涉及到至少三個(gè)文件( .shp、.shx、.dbf ) ,所以分別對(duì)不同的文件構(gòu)建不同讀取函數(shù)。 主文件過(guò)程可分成兩個(gè)步驟:①讀取文件頭:根據(jù)文件的代碼、文件頭的shape 類型,判斷文件是否是 shapefile,shapefile 的 shape 類型;并且獲取整個(gè)圖形的邊界盒大小,為圖形顯示作好鋪墊。②讀取記錄:讀取記錄頭中的 shape 類型進(jìn)行判斷類型,然后讀取記錄長(zhǎng)度和每個(gè)圖形的邊界盒范圍,通過(guò)記錄長(zhǎng)度和 DBF 中求得的記錄數(shù),進(jìn)一步讀取 shapefile 中點(diǎn)位信息。 索引文件過(guò)程也可分成兩個(gè)步驟:①讀取文件頭:讀取處理方式與主文件讀取處理方式是一致的。②讀取記錄:讀取記錄的偏移量,計(jì)算主文件記錄個(gè)數(shù)。 文件: dBASE 文件中的屬性記錄順序和主文件中的記錄相同。只要根據(jù)dBASE 文件結(jié)構(gòu),讀取字段描述部分中的數(shù)據(jù),并存儲(chǔ)在 CMapRecordset 類中。 shapefile 數(shù)據(jù)結(jié)構(gòu)對(duì) shapefile 數(shù)據(jù)的讀取后,程序?qū)Υ鎯?chǔ)后的數(shù)據(jù)訪問(wèn)是最基本、最重要的問(wèn)題。混亂數(shù)據(jù)管理必然會(huì)影響數(shù)據(jù)的訪問(wèn),加大程序冗
點(diǎn)擊復(fù)制文檔內(nèi)容
語(yǔ)文相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1