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

正文內(nèi)容

基于vc++的電子導(dǎo)航系統(tǒng)_畢業(yè)論文(文件)

2025-07-31 09:16 上一頁面

下一頁面
 

【正文】 發(fā) 集成二次開發(fā)是指利用專業(yè)的 GIS 工具軟件,如 MapInfo、 ArcView 等,實(shí)現(xiàn) GIS的基本功能,以通用軟件開發(fā)工具尤其是可視化開發(fā)工具,如 Visual C++、 Delphi、 Visual Basic、 Power Builder 等為開發(fā)平臺,進(jìn)行二者的集成開發(fā)。它的優(yōu)點(diǎn)是既可以充分利用 GIS 工具軟件對空間數(shù)據(jù)庫的管理、分析功能,又可以利用其它可視化開發(fā)語言具有的高效、方便等編程優(yōu)點(diǎn),集二者之所長,不僅能大大提高應(yīng)用系統(tǒng)的開發(fā)效率,而且使用可視化軟件開發(fā)工具開發(fā)出來的應(yīng)用程序具有更好的外觀效果,更強(qiáng)大的數(shù)據(jù)庫功能,而且可靠性好、易于移植、便于維護(hù),尤其是使用 OCX 技術(shù)利用 GIS 功能組件進(jìn)行集成開發(fā),更能表現(xiàn)出這些優(yōu)勢。與利用 OLE Automation 技術(shù)作為服務(wù)器的 MapInfo 相比,利用控件開 發(fā)速度快,占用資源少,而且易實(shí)現(xiàn)許多底層的編程和開發(fā)功能 [4]。先將位于 MapX 的安裝路徑下的子目錄 Samples40\C++\Cpp 中的 和 文件拷貝到當(dāng)前應(yīng)用程序 所在的 VCDZDH 文件夾下,然后從 Project 菜單中選擇 Add to ProjectFiles 命令,此時打開了 Insert Files into Project 對話框,選擇 VCDZDH 文件夾下的 和 文件加入到工程中。 1) 在 文件中,加入 對象的頭文件,并聲明 CMapX 類型的變量 m_ctrlMapX。 3) 在 文件中聲明 int 類型的全局變量 m_created 和 CString 類型的全局變量 m_tempclientpath。 代碼如下: int CVCDZDHView::OnCreate(LPCREATESTRUCT lpCreateStruct) { if (!(NULL,WS_VISIBLE,CRect(0,0,100,100),this,IDC_MAP)) return 1。 (0,0,cx,cy)。 void CVCDZDHView::OnSetFocus(CWnd*pOldWnd) { 內(nèi)蒙古科技大學(xué)畢業(yè)設(shè)計(jì) 說明書(畢業(yè) 論文 ) 9 CView::OnSetFocus(pOldWnd)。采用 MapX 通用工具,可以非常方便地實(shí)現(xiàn)上述功能。打開類向?qū)?,選擇視圖類 CVCDZDHView,為菜單項(xiàng)內(nèi)蒙古科技大學(xué)畢業(yè)設(shè)計(jì) 說明書(畢業(yè) 論文 ) 10 ID_ZOOM_IN 添加 COMMAND 消息映射函數(shù) OnZoomIn(),并編輯代碼如下。 其它的功能跟上面的方法類似,只是需要修改指示常量。 = VT_ERROR。 CMapXLayers layers = ()。 } catch (COleException *e) { eReportError()??墒褂玫貓D對象的 CreateCustomTool 方法創(chuàng)建自定義工具。 define MYTOOL_DISTANCE 1 然后,在 文件中的 OnCreate()函數(shù)中加入如下代碼,從而創(chuàng)建一個用戶自定義工具。 在 文件中,在 DECLARE_MESSAGE_MAP()行下面加入如下一行代碼。切換到 VCDZDHView. h 文件中,聲明事件響應(yīng)函數(shù),代碼如下。 long n。 n=()。 CMapXPoint pt2=(i+1)。 (總距離為 :%f公里 ,dDistanceTot)。 } catch(COleException *e) { eReportError()。 調(diào)用自定義工具 在“工具”下拉菜單中添加“折線距離”子菜單項(xiàng), ID 為 ID_DISTANCE_TOOL。 圖 折線距離演示 內(nèi)蒙古科技大學(xué)畢業(yè)設(shè)計(jì) 說明書(畢業(yè) 論文 ) 18 第四章 最優(yōu)路徑分析 對城市道路網(wǎng)進(jìn)行最短路徑分析, 需要把城市道路網(wǎng)絡(luò)實(shí)體抽象化為網(wǎng)絡(luò)圖論理論中的網(wǎng)絡(luò)圖,然后通過圖論中的網(wǎng)絡(luò)分析理論來實(shí)現(xiàn)道路網(wǎng)絡(luò)的最短路徑分析。 實(shí)現(xiàn)過程及其算法分析 Dijkstra(迪杰斯特拉 )算法 是典型的最短路徑路由算法,用于計(jì)算一個節(jié)點(diǎn)到其他所有節(jié)點(diǎn)的最短路徑。 其采用的是貪心法的算法策略 , 大概過程: 創(chuàng)建兩個表, OPEN, CLOSE。 內(nèi)蒙古科技大學(xué)畢業(yè)設(shè)計(jì) 說明書(畢業(yè) 論文 ) 19 3. 遍歷考察這個點(diǎn)的子節(jié)點(diǎn)。求解從起源點(diǎn) s 到點(diǎn) j 的最短路徑算法的基本過程如下: 開 始初 始 化d j = m i n [ d j , d k + l k j ]d i = m i n [ d j , 所 有 未 標(biāo) 記 的 點(diǎn) j ]i = j *標(biāo) 記 點(diǎn) i ,所 有 點(diǎn) 已 標(biāo) 記 ?輸 出 結(jié) 果k = iYN 圖 算法流程圖 1) 初始化。從所有未標(biāo)記的結(jié)點(diǎn)中, 選取 dj 中最小的一個 i: di=min[ dj, 所內(nèi)蒙古科技大學(xué)畢業(yè)設(shè)計(jì) 說明書(畢業(yè) 論文 ) 20 有未標(biāo)記的點(diǎn) j] ,點(diǎn) i就被選為最短路徑中的一點(diǎn),并設(shè)為已標(biāo)記的。如果所有點(diǎn)已標(biāo)記,則算法完全推出,否則,記 k=i,轉(zhuǎn)到 2)再繼續(xù)。 public VERTEX Prev。//權(quán)重,初始時置為無窮大,搜尋最短路徑時置為該點(diǎn)當(dāng)前最短路徑長度 public VERTEX ShortPathPre。//每個 Link 對象的 v1 都應(yīng)該指向它所附屬的點(diǎn)節(jié)點(diǎn) 內(nèi)蒙古科技大學(xué)畢業(yè)設(shè)計(jì) 說明書(畢業(yè) 論文 ) 21 public VERTEX v2。 public int LineID。 } VERTEX 類用來存儲點(diǎn)節(jié)點(diǎn), Link 類用來存儲鄰接關(guān)系, SearchLink 是一個臨時的中間鄰接關(guān)系,在尋徑時替代 VERTEX 實(shí)例進(jìn)行運(yùn)算,用來維持鄰接多重表。 while(null!=pFeatureP) { indexP=(int)((ID))。 RoadNode[indexP].Neighbor=null。 RoadNode[indexP].Weight=。 pFeatCsrL=(null,false)。 tEdge++。 p2=()。 indexP2=(int)((EDNODEID))。 =(double)(int)((Weight))。//獲得線元素的 STNODEID 值之后,直接可以得到點(diǎn)節(jié)點(diǎn)在數(shù)組中的位置 =RoadNode[indexP2]。 } 點(diǎn)的數(shù)組建立完成之后,可以開始遍歷線層元素,每取得一個線元素,則可以得到首尾節(jié)點(diǎn)的 ID,根據(jù)首尾節(jié)點(diǎn) ID(即首尾節(jié)點(diǎn)在數(shù)組中的索引)得到首尾節(jié)點(diǎn),分別為首尾節(jié)點(diǎn)建立鄰接關(guān)系 vLink1 和 vLink2,從線元素獲得首尾節(jié)點(diǎn)的過程的時間復(fù)雜度為 O( 1),而外層 while 循環(huán)是遍歷線層元素,時間復(fù)雜度為 O( n),經(jīng)過這一過程 ,拓?fù)潢P(guān)系基本建立完成,由于采用數(shù)組存儲 VERTEX 元素的目的是建立索引,減少建立拓?fù)潢P(guān)系時點(diǎn)的搜索時間,因此,拓?fù)潢P(guān)系建立完成后,為了方便運(yùn)算,也為了盡量減少數(shù)組元素所占用的大塊內(nèi)存區(qū)域,把 VERTEX 元素從數(shù)組中摘下并建立環(huán)狀鏈表: vWork=vHead。 RoadNode[indexP].Next=。 } } =vHead。 查詢最短路徑 查詢最短路徑: int flag=0。=vWork。 =null。 } 由于鄰接多重表可以重復(fù)使用,因此 在一次尋徑后,鏈表中的節(jié)點(diǎn)的一些屬性值可能被改變,因此需要重新初始化節(jié)點(diǎn)的屬性值,如查詢狀態(tài) Searched、最短路徑前導(dǎo)節(jié)點(diǎn) ShortPathPre,最短路徑值 Weight 等。 =null。 =。 ==null。!=2)//一旦鏈表 sOpen 變?yōu)榭?,或終點(diǎn)內(nèi)蒙古科技大學(xué)畢業(yè)設(shè)計(jì) 說明書(畢業(yè) 論文 ) 27 的最短路徑已經(jīng)找到,則查詢結(jié)束 { sTemp=。 Delete(ref sTemp,ref sOpen)。 =1。 =sTemp1。 =。 } } 在開始最短路徑查詢之前,首先定義兩個鏈表 sOpen 和 sClose, sClose 用來放置已經(jīng)找到最短路徑的節(jié)點(diǎn), sOpen 用來放置已經(jīng)搜索但還沒有找到最短路徑、等待繼續(xù)搜索的節(jié)點(diǎn)。外循環(huán)用來遍歷鏈表內(nèi)蒙古科技大學(xué)畢業(yè)設(shè)計(jì) 說明書(畢業(yè) 論文 ) 29 sClose,直到鏈表 sClose 變?yōu)榭眨蛘咦疃搪窂降慕K點(diǎn) vTail 的最短路徑被找到( Searched字段變?yōu)?2)。但是隨之而來的問題是 ,單次搜索之后,原來的鄰接多重表被破壞了,在下一次搜索前不得不重新建立鄰接多重表,由于建立鄰接多重表時如果數(shù)據(jù)量比較大,則程序需要頻繁訪問外存儲器,造成了大量的時間開銷。現(xiàn)不僅應(yīng)用于物理勘探、電離層測量和航天器導(dǎo)航等諸多民用領(lǐng)域,在軍事領(lǐng)域更是取得了廣泛的應(yīng)用 —— 在彈道導(dǎo)彈、野戰(zhàn)指揮系統(tǒng)、精確彈道測量以及軍用地圖快速測繪等領(lǐng)域均大量采用了衛(wèi)星導(dǎo)航定位技術(shù)。 GPS 接收機(jī)可接收到準(zhǔn)確至納秒級的時間信息 ; 用于預(yù)報(bào)未來幾個月內(nèi)衛(wèi)星所處概略位置的預(yù)報(bào)星歷;用于計(jì)算定位時所需衛(wèi)星坐標(biāo)的廣播星歷,精度為幾米至幾十米(各個衛(wèi)星不同,隨時變化);以及 GPS 系統(tǒng)信息,如衛(wèi)星狀況等。嚴(yán)格而言,載波相位應(yīng)被稱為載波拍頻相位,它是收到的受多普勒頻移影響的衛(wèi)星信號載波相位與接收機(jī)本機(jī)振蕩產(chǎn)生信號相位之差。單點(diǎn)定位就是根據(jù)一臺接收機(jī)的觀測數(shù)據(jù)來確定接收機(jī)位置的方式,它只能采用偽距觀測量,可用于車船等的概略導(dǎo)航定位。在定位觀測時 ,若接收機(jī)相對于地球表面靜止,則稱為靜態(tài)定位,在進(jìn)行控制網(wǎng)觀測時,一般均采用這種方式由幾臺接收機(jī)同時觀測,它能最太限度地發(fā)揮 GPS 的定位精度,專用于這種目的的接收機(jī)被稱為大地型接收機(jī),是接收機(jī)中性能最好的一類。由于 GPS 定位信息內(nèi)容較少,因此多用 RS232 串口將定位信息( NEMA0183 語句)從 GPS 接收機(jī)傳送到計(jì)算機(jī)中進(jìn)行信息提取處理。打開通信端口 ,即將 PortOpen 屬性設(shè)為 True。//設(shè)置輸入緩沖區(qū)的大小 if(!()) (TRUE)。//1:表示 以二進(jìn)制方式檢取數(shù)據(jù) (1)。//添加或修改 Windows 所報(bào)告的事件列表 SetupComm(m_hCom,READBUFLEN/*讀緩沖 */,WRITEBUFLEN/*寫緩沖 */)。//接收每字節(jié)的平均允許時間 = 0。dcb) 。 = ONESTOPBIT 。dwEvtMask,NULL)。olRead)。同其他通訊協(xié)議類似,對 GPS進(jìn)行信息提取必須首先明確其幀結(jié)構(gòu),然后才能根據(jù)其結(jié)構(gòu)完成對各定位信息的提取。 內(nèi)蒙古科技大學(xué)畢業(yè)設(shè)計(jì) 說明書(畢業(yè) 論文 ) 35 3 緯度 , 格式為 4 標(biāo)明南北半球 , N 為北半球、 S 為南半球 5 徑度,格式為 6 標(biāo)明東西半球, E 為東半球、 W 為西半球 7 地面上的速度,范圍為 到 8 方位角,范圍為 到 度 9 日期 , 格式為 ddmmyy 10 地磁變化,從 到 度 11 地磁變化方向,為 E 或 W 至于其他幾種幀格式,除了特殊用途外,平時并不常用,雖然接收機(jī)也在源源不斷地向主機(jī)發(fā)送各種數(shù)據(jù)幀,但在處理時一般先通過對幀頭的判斷而只對 $GPRMC幀進(jìn)行數(shù)據(jù)的提取處理。iDATALENGTH。 if(Data[i]==10){//幀尾 } if(Data[i]==39。 break。 break。 break。 內(nèi)蒙古科技大學(xué)畢業(yè)設(shè)計(jì) 說明書(畢業(yè) 論文 ) 37 } } } 現(xiàn)在已將所需信息提取到內(nèi)存,即時間、日期以及經(jīng)緯度分別保存在 CString 型變量 m_sTime、 m_Data、 m_sPositionY 和 m_sPositionX 中。 (%c%c,buf[0],buf[1])。 //提取出月份 //buf第 3 字節(jié)為天, 5 字節(jié)為年,提取方法同上 ?? ::strcpy(buf,m_sPositionY)。 GPSParam[m_nNumber].m_dPositionY=PositionValue*60+atof(str)。 (%c%c%c%c%c%c%c,buf[3],buf[4],buf[5],buf[6],buf[7],buf[8],buf[9])。 內(nèi)蒙古科技大學(xué)畢業(yè)設(shè)計(jì) 說明書(畢業(yè) 論文 ) 39 總 結(jié) 可以看出, MapX 開發(fā)平臺可以提供地理信息應(yīng)用系統(tǒng)所需 要的各主要方面功能,并具有開發(fā)方式靈活,接口簡便的特點(diǎn),不失為開發(fā)地理信息應(yīng)用系統(tǒng)的理想平臺。//提取出經(jīng)度 (單位為分 ) } if(()==9) //經(jīng)度未超過 90 度 (如東經(jīng) 89 度 ) { //處理方法同上,只是 buf的第 0、 1 字節(jié)為度數(shù), 2~9 為分?jǐn)?shù)。 if(()==10) //經(jīng)度超過 90 度 (如東經(jīng) 125 度 ) { (%c%c%c,buf[0],buf[1],buf[2])。 PositionValue=atoi(str)。//提取出小時并轉(zhuǎn)化
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1