国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于VB的GPS數(shù)據(jù)接收及軌跡顯示設計

2009-11-29 03:23:32李國良陳明嵐
長江大學學報(自科版) 2009年10期
關鍵詞:平面坐標經(jīng)緯度緯度

李國良,陳明嵐

(貴州大學電子信息技術實驗室,貴州 貴陽 550003)

基于VB的GPS數(shù)據(jù)接收及軌跡顯示設計

李國良,陳明嵐

(貴州大學電子信息技術實驗室,貴州 貴陽 550003)

主要闡述了基于VB平臺的GPS數(shù)據(jù)接收及軌跡顯示的軟件設計。系統(tǒng)將提取出的GPS模塊輸出數(shù)據(jù)中的時間、日期、經(jīng)度、緯度等經(jīng)緯度信息轉換為高斯平面坐標,最終以打點的方式顯示當前軌跡,并顯示某些特定點的位置名稱。

GPS模塊;GPS數(shù)據(jù)提??;軌跡顯示

全球定位系統(tǒng)(GPS)是能夠提供實時精確定位、導航和授時等服務的空間衛(wèi)星導航定位系統(tǒng)?,F(xiàn)在GPS技術不僅僅局限于軍事上的應用,在人們的日常生活中也屢見不鮮,如車載GPS定位等都與人們的生活密切相關。目前,市場上有很多GPS硬件模塊可供大家選擇,但在具體的應用中還須結合自己的需要編寫相應的軟件才能實現(xiàn)。筆者就是基于VB開發(fā)平臺介紹了GPS模塊數(shù)據(jù)接收和軌跡顯示的軟件設計過程,簡單實用,以供大家參考。

1 GPS數(shù)據(jù)輸出格式

NMEA 0183 協(xié)議為GPS接收機和其他航海電子產品的導航數(shù)據(jù)輸出格式,是目前普遍使用且為大多數(shù)生產商遵循的協(xié)議之一,輸出標準的ASCII碼形式的數(shù)據(jù)信息,有GPGGA,GPGSA,GPGSV,GPRMC,GPZDA和GPGLL等多種數(shù)據(jù)格式可供選擇使用,各種句型均以“$”開頭,輸出格林時間、經(jīng)緯度、用于定位的星體個數(shù)、幾何精度、天線高度、航跡向、磁航向、磁差、校驗碼、速度等信息。每個句子內的數(shù)據(jù)之間以逗號隔開。該設計中選擇GPRMC數(shù)據(jù)格式。GPS模塊與PC機串行通訊參數(shù)為:

4800,N,8,1

GPRMC數(shù)據(jù)句型形式如下:

$GPRMC,112831,V,2634.77340,N,10640.20150,E,005.3,041.,130309,*38lt;CRgt;lt;LFgt;…

其中,GP為信息來源,RMC為句型識別符,其后依次為UTC時間(格式為hhmmss)、GPS狀態(tài)(A為定位狀態(tài),V為導航狀態(tài))、緯度、緯度符號(N或S)、經(jīng)度、經(jīng)度符號(E或W)、速率(單位為公里)、UTC日期(格式為ddmmyy)和校驗碼。

2 坐標系統(tǒng)轉換

WGS-84坐標系是目前GPS所采用的坐標系統(tǒng),GPS所發(fā)布的星歷參數(shù)就是基于此坐標系統(tǒng)的。但在工程應用已有導航設備中卻常常要用到平面坐標X、Y,因此要進行軌跡顯示,首先要將得到的經(jīng)緯度等大地坐標(B,L)按高斯投影的方法求得高斯平面坐標,

x=F1(B,L)y=F2(B,L)

高斯投影屬于正形等角投影變換,需滿足一定的條件,其主要的計算公式如下[1]:

式中,B為投影點的大地經(jīng)度;l=L-L0,L為投影點的大地緯度;L0為軸子午線的大地緯度;N為投影點的卯酉圈曲率半徑;t=tanB;η=e′cosB;e′為地球第二偏心率。

雖然上述算法比較精準,但是計算過程較為復雜,工程中為了計算方便通常采用一種EXCEL高斯投影算法,軟件設計中進行詳細說明。

3 數(shù)據(jù)接收及軌跡顯示軟件設計

圖1 系統(tǒng)軟件結構

軟件以VB為開發(fā)平臺進行設計,主要包括系統(tǒng)初始化、GPS數(shù)據(jù)接收提取、坐標變換及信息顯示等幾個部分(圖1)。 下面針對幾個關鍵模塊設計進行說明。

3.1GPS數(shù)據(jù)接收提取模塊分析

圖2 GPS數(shù)據(jù)接收提取流程

模塊輸出的數(shù)據(jù)通過串口進入電腦后,將會被放入緩沖區(qū),依次判斷緩沖區(qū)字母是不是GPS數(shù)據(jù)頭“$”(ASCII碼13),遇到“$”后再判斷“$”后跟的字母是不是“GPRMC”,是就進入數(shù)據(jù)提取,不是就再次尋找下一個“$”。如果檢測到“GPRMC”字段,則開始從GPRMC后面跟的數(shù)據(jù)中提取有用信息。如果不是則清空緩存,尋找下一個“$”,對經(jīng)緯度、時間、日期的提取使用Mid()函數(shù),Trim()函數(shù)用來去掉空格,軟件流程如圖2所示,信息提取部分代碼如下:

If Mid(Trim(temp_buffer), 2, 6) = “$GPRMC” Then

ShiJian.Text = Mid(Trim(temp_buffer), 9, 2) + 8 amp; “:” amp; Mid(Trim(temp_buffer), 11, 2) amp; “:” amp; Mid(Trim(temp_buffer), 13, 2) //提取格林時間+8為北京時間

RiQi.Text = Mid(Trim(temp_buffer), 60, 2) amp;“年” amp; Mid(Trim(temp_buffer), 58, 2) amp;“月” amp; Mid(Trim(temp_buffer), 56, 2) amp; “日” //提取年月日信息

WeiDu.Text = Mid(Trim(temp_buffer), 29, 1) amp; “:” amp; Mid(Trim(temp_buffer), 18, 2) amp; “°” amp; Mid(Trim(temp_buffer), 20, 2) amp; “’”amp; Mid(Trim(temp_buffer), 23, 2)

JingDu.Text = Mid(Trim(temp_buffer), 43, 1) amp; “:” amp; Mid(Trim(temp_buffer), 31, 3) amp; “°” amp; Mid(Trim(temp_buffer), 34, 2) amp; “’”amp; Mid(Trim(temp_buffer), 37, 2)

End if

提取完后還應該對當前數(shù)據(jù)有效性進行判斷,但語句中導航定位標志為“A”時當前數(shù)據(jù)有效,而當標志為“V”時,當前數(shù)據(jù)無效,需重新接收。

3.2經(jīng)緯度向高斯平面坐標的轉換模塊分析

經(jīng)緯度不能直接在二維平面上刻畫所處位置,所以需要將經(jīng)緯度轉換為高斯平面坐標,首先要將接收到的經(jīng)緯度字符數(shù)值化,轉化為可以計算的數(shù)值,才能進一步轉換為高斯平面坐標。將經(jīng)緯度數(shù)值化采用val()函數(shù),得到數(shù)值型的經(jīng)緯度后還要將其單位統(tǒng)一都化為度,即是將分位除以60,秒位除以3600。代碼如下:

E2 =Val(Mid(Trim(temp_buffer), 18, 2)) + Val(Mid(Trim(temp_buffer), 20, 2)) / 60 + Val(Mid(Trim(temp_buffer), 23, 2)) / 3600

F2 =Val(Mid(Trim(temp_buffer), 31, 3)) + Val(Mid(Trim(temp_buffer), 34, 2)) / 60 + Val(Mid(Trim(temp_buffer), 37, 2) ) / 3600

得到度形式的經(jīng)緯度后,按照EXCEL進行高斯投影換算的方法編寫程序進行計算。代碼如下:A2 輸入中央子午線,以度分秒形式輸入:

B2 = Int(A2) + (Int(A2 * 100) - Int(A2) * 100) / 60 + (A2 * 10000 - Int(A2 * 100) * 100) / 3600

H2 = (F2 - B2) / 57.2957795130823’將經(jīng)差的單位化為弧度

I2 = Tan(E2 / 57.2957795130823) ’Tan (B)

J2 = Cos(E2 / 57.2957795130823)’Cos (B)

K2 = 0.006738525415 * J2 * J2

L2 = I2 * I2

M2 = 1 + K2

N2 = 6399698.9018 / Sqr(M2)

O2 = H2 * H2 * J2 * J2

P2 = I2 * J2

Q2 = P2 * P2

R2 = (32005.78006 + Q2 * (133.92133 + Q2 * 0.7031))

S2 = ((((L2 - 18) * L2 - (58 * L2 - 14) * K2 + 5) * O2 / 20 + M2 - L2) * O2 / 6 + 1) * N2 * (H2 * J2)

S2 = S2 + 18500000’在計算的基礎上加上了“帶號”(18)和“東移”(500KM)

T2 = 6367558.49686 * E2 / 57.29577951308 - P2 * J2 * R2 + ((((L2 - 58) * L2 + 61) * O2 / 30 + (4 * K2 + 5) * M2 - L2) * O2 / 12 + 1) * N2 * I2 * O2 / 2

最后得到的T2和S2即是橫坐標X和縱坐標Y[2]。

3.3軌跡顯示模塊分析

軌跡顯示在圖片框Picture中,設置畫筆粗細為10,畫筆的顏色為紅色,利用當前經(jīng)緯度計算得到的高斯平面坐標X,Y在圖片框中打點。代碼如下:

Picture1.DrawWidth = 10 Picture1.PSet (T2, S2), vbRed

對于一些特別的點,需要顯示它的具體地名,預先將要顯示地名的點的經(jīng)緯度測出來并保存在程序中,當程序運行遇到這些經(jīng)緯度時就可以利用文本框顯示相對應的地名,當沒有遇到相對應的經(jīng)緯度時文本框就顯示為空。

4 試驗調試

圖3 GPS硬件連接圖

將GPS室外天線接在GPS接收機上,數(shù)據(jù)從接收機的RS232接口輸出,將一根RS232轉USB的數(shù)據(jù)線和電腦PC機的USB接口相連,如圖3所示。

試驗地點為貴州大學第三實驗樓6樓開闊平臺上,選取平臺某點,并預先知道貴陽當?shù)氐闹醒胱游缇€為105°(L0=6*N -3)。當天線定位在平臺時顯示出時間,日期,經(jīng)緯度,高斯平面坐標,軌跡點在整個蔡家關校區(qū)中的位置以及當前位置“平臺”。界面如圖4所示。

圖4 位于平臺某點時的界面圖

5 結 語

該設計完成了對GPS模塊輸出數(shù)據(jù)的時間、日期、經(jīng)緯度等信息的提取 ,通過文字或者圖形的方式將它直接顯示在了屏幕上,具有簡單實用的特點。特別是該數(shù)據(jù)提取方法可作為其他GPS應用的參考。

[1]董金壯,趙淵新,刁芹元. 高斯投影變換程序的編寫[A]. 郭海棠. 新疆有色金屬[C]. 新疆:新疆哈密金礦,2003:8~10.

[2]劉大杰,施一民.全球定位系統(tǒng)(GPS)的原理與數(shù)據(jù)處理[M]. 上海:同濟大學出版社,1996.

[編輯] 易國華

TP311.11

A

1673-1409(2009)04-N054-03

猜你喜歡
平面坐標經(jīng)緯度緯度
奧維互動地圖CAD中線坐標精度分析
人民交通(2022年5期)2022-06-16 07:25:12
復變函數(shù)斜軸橢球變換法的銜接應用
測繪工程(2021年5期)2021-09-13 09:01:38
濮陽市擬建立相對獨立的平面坐標系統(tǒng)
緯度
齊魯周刊(2017年29期)2017-08-08 06:28:15
自制中學實驗操作型經(jīng)緯測量儀
澳洲位移大,需調經(jīng)緯度
一種利用太陽影子定位的數(shù)學模型
長大連續(xù)梁上CPIII控制點實時坐標計算方法研究*
基于時空緯度的國內農民工創(chuàng)業(yè)研究
常用緯度差異極值符號表達式
測繪學報(2014年2期)2014-01-11 02:09:52
滦南县| 修武县| 山阳县| 壶关县| 米脂县| 咸阳市| 吉水县| 军事| 邵东县| 侯马市| 麻栗坡县| 卓资县| 拉孜县| 承德市| 桦甸市| 赤壁市| 汝城县| 揭东县| 开平市| 桂阳县| 江都市| 曲阳县| 东安县| 榆树市| 鄂尔多斯市| 深圳市| 沁阳市| 抚顺市| 奎屯市| 桐梓县| 扬中市| 板桥市| 绵阳市| 关岭| 桐乡市| 甘谷县| 蕲春县| 台山市| 鹤峰县| 古丈县| 九江县|