廖建昌,王文杰,黃 鷹,覃澤穎
(1. 融安縣國(guó)土資源局,廣西 融安 545400;2. 桂林理工大學(xué) 測(cè)繪地理信息學(xué)院,廣西 桂林541004)
導(dǎo)航型GPS在野外查驗(yàn)地形圖中的應(yīng)用
廖建昌1,王文杰2,黃 鷹2,覃澤穎2
(1. 融安縣國(guó)土資源局,廣西 融安 545400;2. 桂林理工大學(xué) 測(cè)繪地理信息學(xué)院,廣西 桂林541004)
在分析導(dǎo)航型GPS數(shù)據(jù)的基礎(chǔ)上,針對(duì)其坐標(biāo)在電子地形圖中實(shí)時(shí)定位顯示的方法及不同坐標(biāo)系之間轉(zhuǎn)換的問題,提出了一種外業(yè)采用導(dǎo)航型GPS接收機(jī)配合便攜電腦進(jìn)行野外查圖的新方法。實(shí)踐證明,該方法大大縮短了野外識(shí)圖與判讀時(shí)間,降低了查圖成本,提高了工作效率。
導(dǎo)航型GPS;CAD開發(fā);查圖
傳統(tǒng)查圖工作往往是將編輯好的電子圖利用繪圖儀打印出來,然后帶到實(shí)地進(jìn)行逐一對(duì)照檢查。當(dāng)測(cè)區(qū)范圍較大時(shí),不僅需要打印大量的圖紙初稿,而且在較空曠的野外或較隱蔽的區(qū)域查圖巡視時(shí),判讀與識(shí)圖相對(duì)較為困難,實(shí)時(shí)性較差,甚至有時(shí)會(huì)發(fā)生錯(cuò)誤。因此,在驗(yàn)收時(shí)常見的做法是:檢查人員需測(cè)制該區(qū)域內(nèi)地形圖的測(cè)量人員陪同前往,以盡可能避免上述情況的發(fā)生。
1.1 導(dǎo)航型GPS數(shù)據(jù)格式
為了在不同的GPS導(dǎo)航設(shè)備中建立統(tǒng)一的標(biāo)準(zhǔn),美國(guó)國(guó)家海洋電子協(xié)會(huì)(NMEA)制定了NMEA協(xié)議,其中NMEA-0183協(xié)議是目前使用最為廣泛的一種[1]。導(dǎo)航型GPS具有藍(lán)牙功能,能輸出采用ASCII碼的NMEA 0183格式的定位數(shù)據(jù)。本文采用其中的“$GPGGA”信息語句。該數(shù)據(jù)典型的格式如下:
$GPGGA,092204.999,4250.5589,S,14718.5084,E,1,04 ,24.4,19.7,M,,,,0000*1F
具體的字段描述見表1。
1.2 通過藍(lán)牙接收數(shù)據(jù)
藍(lán)牙通信作為一種短距離的無線通信技術(shù)標(biāo)準(zhǔn)已非常普及,完全適合于藍(lán)牙GPS接收機(jī)與筆記本電腦之間進(jìn)行數(shù)據(jù)通信。筆記本電腦的藍(lán)牙通信一般是通過虛擬串口與GPS連接的。其主要工作是找出電腦藍(lán)牙模塊模擬出的對(duì)應(yīng)串口,并在找到對(duì)應(yīng)的串口后,從中讀取GPS數(shù)據(jù)。其具體步驟為:
1)建立藍(lán)牙GPS與電腦藍(lán)牙之間的連接,此時(shí)電腦的藍(lán)牙管理器把藍(lán)牙GPS與電腦之間的連接虛擬成一個(gè)串口;
2)利用vb.net開發(fā)平臺(tái)提供的串口通信控件,設(shè)置串口號(hào)、波特率、數(shù)據(jù)位等參數(shù);
3)使用串行口通信控件打開串口,并依次讀入GPS定位數(shù)據(jù),通過電腦與藍(lán)牙GPS的通信,電腦能接收到實(shí)時(shí)的定位信息,即WGS84坐標(biāo)系的經(jīng)緯度坐標(biāo)。
表1 GPGGA數(shù)據(jù)描述表
要利用GPS進(jìn)行定位,首先從$GPGGA數(shù)據(jù)中提取經(jīng)緯度信息,通過大地坐標(biāo)正算轉(zhuǎn)換為高斯平面直角坐標(biāo)。當(dāng)測(cè)圖坐標(biāo)系為國(guó)家80坐標(biāo)系時(shí),因?yàn)閷?dǎo)航定位要求精度不高,可無需轉(zhuǎn)換直接定位;但對(duì)于測(cè)圖坐標(biāo)系是獨(dú)立坐標(biāo)系或者其他情況,需將WGS84坐標(biāo)轉(zhuǎn)換為地方獨(dú)立坐標(biāo)后進(jìn)行定位,以避免導(dǎo)航結(jié)果與實(shí)測(cè)電子圖偏離過大而達(dá)不到導(dǎo)航效果。
定位的實(shí)現(xiàn)方法是移動(dòng)圖形中的指定點(diǎn)(定位點(diǎn))到CAD屏幕區(qū)域的中心,具體實(shí)現(xiàn)步驟如下:
1)連接CAD。
AcadApp = GetObject(, "AutoCAD.Application")
If Err.Number Then
Err.Clear()
AcadApp = CreateObject("AutoCAD.Application")
If Err.Number Then
MsgBox("不能運(yùn)行AutoCAD,請(qǐng)檢查是否安裝了AutoCAD")
Exit Sub
End If
End If
AcadApp.Visible = True ′界面可視
AcadApp.WindowState = Autodesk.AutoCAD.Interop.Common.AcWindowState.a(chǎn)cMax ′界面最大化
AppActivate(AcadApp.Caption) ′顯示AutoCAD界面
創(chuàng)建一個(gè)新圖層,名為“行走軌跡”:
Dim layerObj As Common.AcadLayer
layerObj = AcadApp.ActiveDocument.Layers.Add("行走軌跡")
將“行走軌跡”圖層的顏色指定為紅色
layerObj.color = Common.ACAD_COLOR.a(chǎn)cRed
??定位數(shù)據(jù)。在串口控件的Data
事件中實(shí)現(xiàn)數(shù)據(jù)的讀取計(jì)算及定位。
str = Me.SerialPort.ReadLine() ‘讀取串口數(shù)據(jù)
If InStr(str, "GPGGA") <> 0 Then ‘讀取GPGGA數(shù)據(jù)
Dim strSplit() As String = str.Split(",")
dblLatitude = strSplit(2) ‘讀取字段2的緯度
dblLongitude =strSplit(4) ‘讀取字段4的經(jīng)度
intGSPstate = strSplit(6) ‘讀取字段6的GPS狀態(tài)
intSatelliteNumber =strSplit(7) ‘讀取字段7的可用衛(wèi)星數(shù)
…
end
xy = Prozs(intProZoom, lat, lon) ‘大地坐標(biāo)正算函數(shù)
3)定位。CAD中的ZoomCenter方法可有效用于調(diào)整對(duì)象大小并將對(duì)象移動(dòng)到視口的中心。
繪制一個(gè)圓形,顯示定位的位置:
Dim circleObj As Common.AcadCircle
circleObj.Delete() 圓根據(jù)定位坐標(biāo)實(shí)時(shí)移動(dòng),刪除上一次所繪
circleObj = AcadApp.ActiveDocument.ModelSpace.AddCircle(Center, radius) 重繪圓
circleObj.Layer = "行走軌跡" 將指示圓放在行走軌跡圖層
AcadApp.ZoomCenter(Center, magnification) Center為定位點(diǎn)坐標(biāo)數(shù)組,magnification為縮放比例.
4)行走軌跡繪制。
動(dòng)態(tài)定義一個(gè)軌跡坐標(biāo)數(shù)組:
ReDim Preserve dblRouteXY(intRoutenum * 2 + 1)
dblRouteXY(intRoutenum * 2) = x
dblRouteXY(intRoutenum * 2 + 1) = y
繪制一條多段線作為行走軌跡:
lwpolyObj =
AcadApp.ActiveDocument.ModelSpace.AddLightWei ghtPolyline(dblRouteXY)
lwpolyObj.Layer = "行走軌跡"
lwpolyObj.color = Common.ACAD_COLOR.a(chǎn)cByLayer ‘軌跡線顏色為隨層
lwpolyObj.Lineweight = 50 ‘設(shè)置線寬
5)在CAD中創(chuàng)建自定義菜單與工具條。
自定義菜單:
Dim currMenuGroup As Autodesk.AutoCAD.Interop.AcadMenuGroup
currMenuGroup = AcadApp.Application.MenuGroups.Item(0)
Dim newMenu As Autodesk.AutoCAD.Interop.AcadPopupMenu
newMenu = currMenuGroup.Menus.Add("GPS定位(&B)")
Dim newMenuItem1 As Autodesk.AutoCAD.Interop.AcadPopupMenuItem
Dim openMacro1 As String
定義菜單宏:
openMacro1 = Chr(3) & Chr(3) & "shell" & Chr(13) & "導(dǎo)航查圖.exe" & Chr(13)
…
4.1 軟硬件平臺(tái)
系統(tǒng)開發(fā)時(shí)使用的測(cè)試平臺(tái)是松下CF-18型軍用筆記本,如圖1所示,其優(yōu)點(diǎn)是可觸屏操作,在陽光條件下屏幕依然顯示較為清晰;系統(tǒng)采用基于.NET平臺(tái)對(duì)AutoCAD進(jìn)行二次開發(fā),可充分利用.NET 的各種優(yōu)勢(shì),在保證功能強(qiáng)大的前提下大大提高開發(fā)速度,并且vb.net的串口控件SerialPort使串口操作變得簡(jiǎn)單。
4.2 系統(tǒng)運(yùn)行
啟動(dòng)AutoCAD, 打開所需查圖范圍內(nèi)的電子地圖,加載開發(fā)的軟件模塊,在CAD下拉菜單中自動(dòng)添加上GPS菜單、工具條如圖2所示。
圖1 F-18型軍用筆記本
圖2 GPS菜單、工具條
串口通信部分的參數(shù)在連接設(shè)置頁面上選擇,見圖3,在定位信息界面顯示經(jīng)緯度等信息,可選擇是否顯示行走軌跡,如圖4所示。
圖3 連接設(shè)置
圖4 定位信息顯示
對(duì)于獨(dú)立坐標(biāo)系,本系統(tǒng)提供了坐標(biāo)轉(zhuǎn)換功能(見圖5),可直接輸入坐標(biāo)轉(zhuǎn)換參數(shù);或用現(xiàn)場(chǎng)測(cè)量的數(shù)據(jù)求解出四參數(shù),測(cè)量界面如圖6。
圖5 坐標(biāo)轉(zhuǎn)換設(shè)置
圖6 點(diǎn)位測(cè)量
圖7為定位的效果,藍(lán)線為行走軌跡,藍(lán)色圓表示當(dāng)前所在位置。根據(jù)測(cè)試,藍(lán)牙GPS適配器定位精度一般在5 m左右,此精度可滿足查圖的概略定位。
圖7 行走軌跡繪制及定位點(diǎn)顯示圖
利用導(dǎo)航型GPS配合便攜電腦在野外實(shí)時(shí)定位查圖,既節(jié)省了打印圖紙的開支又避免了使用圖紙查圖在野外確定所處位置困難的麻煩。本方法在幾個(gè)測(cè)區(qū)的實(shí)際查圖應(yīng)用表明,在野外能夠快速確定當(dāng)前所在位置,行走軌跡能夠記錄且清晰表明已查圖的行走路徑,避免了重復(fù)檢查與遺漏現(xiàn)象發(fā)生。通過該方法還可應(yīng)用于外業(yè)調(diào)繪等其他需要實(shí)時(shí)識(shí)圖領(lǐng)域,對(duì)外業(yè)快速識(shí)圖與判讀均有較好的效果。
[1] 胡輝.GPS數(shù)據(jù)采集軟件的實(shí)現(xiàn)[J].全球定位系統(tǒng), 2008(1): 25-30
[2] 曹婷婷,高玉. GPS中NMEA-0183協(xié)議的應(yīng)用[J].電子工程師,2006,32(10):8-11
[3] 秦永.遙感影像支持的實(shí)時(shí)導(dǎo)航應(yīng)用研究[J].測(cè)繪科學(xué),2008,33(5):164-165
[4] 張晉西.Visual Basic.NET二次開發(fā)AutoCAD范例精解[M].北京:清華大學(xué)出版社,2004
[5] 陳明,郭際明,葉嵐.利用藍(lán)牙技術(shù)傳輸GPS數(shù)據(jù)[J].測(cè)繪信息與工程,2008,33(2):8-9
[6] 付曉玲,吳潔明,佃來.基于藍(lán)牙GPS 的移動(dòng)GIS系統(tǒng)解決方案[J].計(jì)算機(jī)工程與設(shè)計(jì),2009,30(2):299-301
[7] 張?jiān)鋈A,程明霄.基于Windows Mobile 的藍(lán)牙GPS 數(shù)據(jù)采集方法的改進(jìn)[J].微計(jì)算機(jī)信息,2007,23(6):197-199
P228.42
B
1672-4623(2014)01-0137-03
10.11709/j.issn.1672-4623.2014.01.047
廖建昌,研究方向?yàn)楣こ虦y(cè)量。
2012-04-24。