一種基于Google Earth的GPS導航系統設計
摘 要: 隨著(zhù)交通的便利,自駕車(chē)出門(mén)游玩已經(jīng)成為常事,人們對導航的需求也日漸強烈。市面上的導航以線(xiàn)框圖的方式為主,而這種方式比較適用于城市內部的導航,當有需要去郊區或者山地野外等活動(dòng)時(shí)這種方式就顯得力不從心。而基于Google Earth的GPS導航能有效地滿(mǎn)足對這些需求。在Google Earth免費版本上,利用Google Earth的KML,實(shí)現GPS導航和軌跡記錄。系統由三個(gè)部分組成:GPS接口,實(shí)現與GPS模塊之間的通訊;通過(guò)內嵌Web服務(wù)器實(shí)現與GoogleEarth之間的通訊;基于預定軌跡的導航功能,實(shí)現偏離預定軌跡時(shí)的報警。
本文引用地址:http://dyxdggzs.com/article/197272.htm1 緒論
隨著(zhù)科技的發(fā)展車(chē)輛的普及,人們對GPS實(shí)時(shí)導航的需求變的越來(lái)越突出。隨之出現了,許多GPS實(shí)時(shí)導航系統,這其中有軟硬件集成一體的GPS導航設備,也有基于其他GPS設備的軟件系統。而所有的這些GPS導航幾乎都是以線(xiàn)框圖為主。線(xiàn)框圖的方式比較適用于城市內部的導航,當有需要去郊區或者山地野外去探險等活動(dòng)時(shí),這種方式就顯得力不從心了。
因為這些地方的地圖信息少,圖示比較粗糙,其次,它提供的時(shí)線(xiàn)框的方式去描述地理,顯然不能很深刻的反應該地的地貌特征,比如海拔,山野等。而且為了及時(shí)更新維護這些線(xiàn)框圖帶來(lái)的代價(jià)也時(shí)很大的。而這些需求的信息可以在衛星地圖上找到。
與此同時(shí)Google公司在近些年出來(lái)的Google Earth軟件,是一款十分優(yōu)秀的衛星地圖服務(wù)軟件,它免費提供的衛星地圖精度很高。大部分地區的地區都比較清晰,特別是各個(gè)城市的照片,可以清晰的看到馬路上的車(chē)輛。在中國衛星圖像里,一線(xiàn)城市以2009、2010年拍攝的為主,二、三線(xiàn)城市以05、06年的庫存圖片為主,能較好地滿(mǎn)足導航的要求。
在Google Earth Plus以上的收費版本中還提供了GPS接口,能實(shí)時(shí)地顯示當前位置的地圖和移動(dòng)軌跡。而在免費版本中不帶這個(gè)功能。因此,設計一個(gè)基于Google Earth的GPS導航系統也是很有實(shí)際意義的。通過(guò)該系統,完成對Google Earth軟件的控制,從而達到基于GPS的實(shí)物圖導航的目的。
此外近期, 基于Google Earth的開(kāi)發(fā)已經(jīng)很多了, 例如, 利用Google官方提供的3D圖形繪制工具,繪制各種建筑或者樹(shù)木等物品,可以上傳擺置在Google Earth上面作為產(chǎn)品展出,也可以設計各種樹(shù)木擺放到山林的平面衛星照片上,從而勾勒出具有3D特性的衛星地圖,便于防止森林火災搶救等應用。
2 需求分析
2.1 功能需求
本系統由如下的四部分構成:
1)GPS導航系統與GPS設備的通訊模塊。
2)WEB服務(wù)器,接受來(lái)至于Google Earth的Network Link的請求,響應當前的坐標及軌跡信息。
3)預定軌跡的導航,根據預定軌跡對位置進(jìn)行檢測,實(shí)現偏離預定軌跡時(shí)的報警功能。
4)提供軌跡管理和與其他GPS數據交換的工具。
2.2 數據流分析
如圖1,在整個(gè)系統中,數據的流動(dòng)比較的重要,各個(gè)功能之間的數據信息的交互都是數據的流動(dòng)。GPS硬件設備是個(gè)數據源,不停的接受來(lái)自衛星的信號,通過(guò)計算,組織成有格式的數據流傳遞到本系統,而本系統對這些GPS信息進(jìn)行讀取,并與系統內部的其他的功能配合完成一系列功能。由于系統要控制Google Earth來(lái)完成衛星地圖的導航功能,所以必須要有一個(gè)可以控制Google Earth軟件的方式來(lái)完成這個(gè)任務(wù)。這個(gè)功能需要把之前從GPS硬件設備讀取的信息以某種方式來(lái)控制Google Earth。此外,系統的軌跡管理功能也需要與其他功能配合才能完成一系列的管理功能。
圖1 數據流圖
3 系統設計
3.1 系統模型
圖2 系統模型圖
完成GPS導航的整個(gè)系統的模型如圖2所示。這其中包含了很多外部硬件設備和軟件系統,而我們的GPS導航系統是安裝在用戶(hù)的PC機或筆記本電腦中的。
首先GPS設備不斷的接受來(lái)至于各個(gè)衛星的無(wú)線(xiàn)信號,通過(guò)它本身的固件計算得出當前的坐標等相關(guān)地理信息。然后與計算機進(jìn)行藍牙通訊傳送這些地理信息,而在計算機中,操作系統底層把藍牙通訊模擬成基本的串口通訊,供應用程序調用。本GPS導航系統,自動(dòng)識別當前計算機中的被模擬為串口的端口號,并不斷的讀取來(lái)至于GPS設備的地理信息。再通過(guò)Google Earth控制模塊,控制Google Earth的顯示,若當前的地圖信息還未加載,Google Earth會(huì )根據當前的網(wǎng)絡(luò )情況,連接Google Earth服務(wù)器獲取對應坐標視角的地圖信息。用戶(hù)一般都是在駕車(chē)行駛的時(shí)候需要這種導航,所以一般可能的話(huà),可以通過(guò)筆記本無(wú)線(xiàn)網(wǎng)絡(luò )連接Google Earth服務(wù)器,正如圖2所示。
3.2 功能模塊劃分
整個(gè)系統由四大模塊組成。分別為GPS設備通訊模塊,WEB服務(wù)器模塊,預定軌跡導航模塊,用戶(hù)圖形界面。
1)GPS設備的通訊模塊根據操作系統底層對藍牙的模擬串口,讀取GPS設備發(fā)送過(guò)來(lái)的地理信息,并過(guò)濾無(wú)用信息,動(dòng)態(tài)的更新到自定義的數據結構中去。
2)WEB服務(wù)器模塊接受來(lái)至于Google Earth的Network Link的請求,結合之前更新在結構體中的坐標信息,生成用來(lái)改變Google Earth顯示的KML文件,并響應Google Earth.
3)預定軌跡導航模塊先加載KML文件,獲得預定的軌跡信息。啟動(dòng)導航功能之后,實(shí)時(shí)地根據預定軌跡對當前位置檢測,并在當前位置偏離預定軌跡時(shí),提供報警功能。
4)用戶(hù)圖形界面為了便于用戶(hù)的快捷使用,本系統提供類(lèi)似與金山快譯的工具條按鈕組,所有的功能全都由工具條上的幾個(gè)形象的按鈕完成。十分便利。
3.3 核心模塊分析
3.3.1 GPS模塊
圖3 GPS模塊分析
這里GPS模塊的輸入是來(lái)至于GPS硬件設備發(fā)送過(guò)來(lái)的地理信息,而它的輸出是對這些地理信息解析提取出來(lái)的坐標和軌跡信息,傳遞給GoogleEarth控制模塊。內部完成串口數據的接受與坐標軌跡的提取。
3.3.2 Google Earth控制模塊
圖4 Google Earth控制模塊分析
這個(gè)Google Earth控制模塊,有兩個(gè)輸入,一個(gè)是外部輸入,就是來(lái)自于Google Earth的請求,一個(gè)是用于構造響應這個(gè)請求時(shí)用到的坐標與軌跡信息,這些信息來(lái)至于GPS模塊,對外輸出就是響應Google Earth的KML文件。
3.3.3 串口通訊模塊分析
圖5 串口通訊模塊
在這個(gè)過(guò)程中,首先GPS設備不斷的接受來(lái)至于各個(gè)衛星的無(wú)線(xiàn)信號,通過(guò)它本身的固件計算得出當前的坐標等相關(guān)地理信息。然后與計算機進(jìn)行藍牙通訊傳送這些地理信息,而在計算機中,操作系統底層把藍牙通訊模擬成基本的串口通訊,供應用程序調用。我們的GPS導航系統,自動(dòng)識別當前計算機中的被模擬為串口的端口號,并開(kāi)啟線(xiàn)程,不斷的讀取來(lái)至于GPS設備的地理信息。這里并不是所有的地理信息在本系統都是有用的,通過(guò)程序過(guò)濾,提取出當前坐標點(diǎn)經(jīng)緯度、速度、方向等幾個(gè)基本的數據信息。把這些信息存儲到結構體中,并通過(guò)與之前的坐標點(diǎn)的累加,可以構造出一連串的坐標,從而構成行駛軌跡。
3.3.4 WEB服務(wù)器模塊分析
WEB服務(wù)器模塊中首先開(kāi)啟HTTP服務(wù)線(xiàn)程, 等待來(lái)至于GoogleEarth的Network Link的請求,結合之前更新在結構體中的坐標信息,生成用來(lái)改變Google Earth顯示的KML文件,并響應Google Earth.這里有三個(gè)KML文件,其中Network Link中的URL直接指向http://127.0.0.1:5080/index.kml.這里的5080是WEB服務(wù)器注冊的端口號。
3.3.5 預定軌跡導航模塊分析
圖6 預定軌跡導航及越界警報模塊
預定軌跡導航及越界警報模塊中,首先在導航之前要加載預定軌跡。
為了便于繪制和存儲,我們就采用Google Earth中對軌跡的存儲的KML軌跡文件作為預定軌跡的載體。在加載完預定軌跡之后就可以開(kāi)啟GPS導航,串口通訊模塊不斷的讀取當前坐標信息,而系統專(zhuān)門(mén)啟動(dòng)一個(gè)線(xiàn)程定時(shí)的去檢測當前坐標與預定軌跡之間的距離,當超出設置的預定軌跡的范圍的時(shí)候,即偏離預定軌跡時(shí),啟動(dòng)警報系統,發(fā)出聲音警報,提醒用戶(hù)當前坐標已經(jīng)偏離預定的軌跡范圍了。若是沒(méi)有偏離預定軌跡,則線(xiàn)程睡眠一段時(shí)間,再次檢測當前位置與預定軌跡之間的距離,開(kāi)始下一輪的檢測與警報。
評論