廖建昌,王文杰,黃 鷹,覃澤穎
(1. 融安縣國土資源局,廣西 融安 545400;2. 桂林理工大學 測繪地理信息學院,廣西 桂林541004)
導航型GPS在野外查驗地形圖中的應用
廖建昌1,王文杰2,黃 鷹2,覃澤穎2
(1. 融安縣國土資源局,廣西 融安 545400;2. 桂林理工大學 測繪地理信息學院,廣西 桂林541004)

在分析導航型GPS數據的基礎上,針對其坐標在電子地形圖中實時定位顯示的方法及不同坐標系之間轉換的問題,提出了一種外業采用導航型GPS接收機配合便攜電腦進行野外查圖的新方法。實踐證明,該方法大大縮短了野外識圖與判讀時間,降低了查圖成本,提高了工作效率。
導航型GPS;CAD開發;查圖
傳統查圖工作往往是將編輯好的電子圖利用繪圖儀打印出來,然后帶到實地進行逐一對照檢查。當測區范圍較大時,不僅需要打印大量的圖紙初稿,而且在較空曠的野外或較隱蔽的區域查圖巡視時,判讀與識圖相對較為困難,實時性較差,甚至有時會發生錯誤。因此,在驗收時常見的做法是:檢查人員需測制該區域內地形圖的測量人員陪同前往,以盡可能避免上述情況的發生。
1.1 導航型GPS數據格式
為了在不同的GPS導航設備中建立統一的標準,美國國家海洋電子協會(NMEA)制定了NMEA協議,其中NMEA-0183協議是目前使用最為廣泛的一種[1]。導航型GPS具有藍牙功能,能輸出采用ASCII碼的NMEA 0183格式的定位數據。本文采用其中的“$GPGGA”信息語句。該數據典型的格式如下:
$GPGGA,092204.999,4250.5589,S,14718.5084,E,1,04 ,24.4,19.7,M,,,,0000*1F
具體的字段描述見表1。
1.2 通過藍牙接收數據
藍牙通信作為一種短距離的無線通信技術標準已非常普及,完全適合于藍牙GPS接收機與筆記本電腦之間進行數據通信。筆記本電腦的藍牙通信一般是通過虛擬串口與GPS連接的。其主要工作是找出電腦藍牙模塊模擬出的對應串口,并在找到對應的串口后,從中讀取GPS數據。其具體步驟為:
1)建立藍牙GPS與電腦藍牙之間的連接,此時電腦的藍牙管理器把藍牙GPS與電腦之間的連接虛擬成一個串口;
2)利用vb.net開發平臺提供的串口通信控件,設置串口號、波特率、數據位等參數;
3)使用串行口通信控件打開串口,并依次讀入GPS定位數據,通過電腦與藍牙GPS的通信,電腦能接收到實時的定位信息,即WGS84坐標系的經緯度坐標。

表1 GPGGA數據描述表
要利用GPS進行定位,首先從$GPGGA數據中提取經緯度信息,通過大地坐標正算轉換為高斯平面直角坐標。當測圖坐標系為國家80坐標系時,因為導航定位要求精度不高,可無需轉換直接定位;但對于測圖坐標系是獨立坐標系或者其他情況,需將WGS84坐標轉換為地方獨立坐標后進行定位,以避免導航結果與實測電子圖偏離過大而達不到導航效果。
定位的實現方法是移動圖形中的指定點(定位點)到CAD屏幕區域的中心,具體實現步驟如下:
1)連接CAD。
AcadApp = GetObject(, "AutoCAD.Application")
If Err.Number Then
Err.Clear()
AcadApp = CreateObject("AutoCAD.Application")
If Err.Number Then
MsgBox("不能運行AutoCAD,請檢查是否安裝了AutoCAD")
Exit Sub
End If
End If
AcadApp.Visible = True ′界面可視
AcadApp.WindowState = Autodesk.AutoCAD.Interop.Common.AcWindowState.acMax ′界面最大化
AppActivate(AcadApp.Caption) ′顯示AutoCAD界面
創建一個新圖層,名為“行走軌跡”:
Dim layerObj As Common.AcadLayer
layerObj = AcadApp.ActiveDocument.Layers.Add("行走軌跡")
將“行走軌跡”圖層的顏色指定為紅色
layerObj.color = Common.ACAD_COLOR.acRed
??定位數據。在串口控件的Data
事件中實現數據的讀取計算及定位。
str = Me.SerialPort.ReadLine() ‘讀取串口數據
If InStr(str, "GPGGA") <> 0 Then ‘讀取GPGGA數據
Dim strSplit() As String = str.Split(",")
dblLatitude = strSplit(2) ‘讀取字段2的緯度
dblLongitude =strSplit(4) ‘讀取字段4的經度
intGSPstate = strSplit(6) ‘讀取字段6的GPS狀態
intSatelliteNumber =strSplit(7) ‘讀取字段7的可用衛星數
…
end
xy = Prozs(intProZoom, lat, lon) ‘大地坐標正算函數
3)定位。CAD中的ZoomCenter方法可有效用于調整對象大小并將對象移動到視口的中心。
繪制一個圓形,顯示定位的位置:
Dim circleObj As Common.AcadCircle
circleObj.Delete() 圓根據定位坐標實時移動,刪除上一次所繪
circleObj = AcadApp.ActiveDocument.ModelSpace.AddCircle(Center, radius) 重繪圓
circleObj.Layer = "行走軌跡" 將指示圓放在行走軌跡圖層
AcadApp.ZoomCenter(Center, magnification) Center為定位點坐標數組,magnification為縮放比例.
4)行走軌跡繪制。
動態定義一個軌跡坐標數組:
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.acByLayer ‘軌跡線顏色為隨層
lwpolyObj.Lineweight = 50 ‘設置線寬
5)在CAD中創建自定義菜單與工具條。
自定義菜單:
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) & "導航查圖.exe" & Chr(13)
…
4.1 軟硬件平臺
系統開發時使用的測試平臺是松下CF-18型軍用筆記本,如圖1所示,其優點是可觸屏操作,在陽光條件下屏幕依然顯示較為清晰;系統采用基于.NET平臺對AutoCAD進行二次開發,可充分利用.NET 的各種優勢,在保證功能強大的前提下大大提高開發速度,并且vb.net的串口控件SerialPort使串口操作變得簡單。
4.2 系統運行
啟動AutoCAD, 打開所需查圖范圍內的電子地圖,加載開發的軟件模塊,在CAD下拉菜單中自動添加上GPS菜單、工具條如圖2所示。

圖1 F-18型軍用筆記本

圖2 GPS菜單、工具條
串口通信部分的參數在連接設置頁面上選擇,見圖3,在定位信息界面顯示經緯度等信息,可選擇是否顯示行走軌跡,如圖4所示。

圖3 連接設置

圖4 定位信息顯示
對于獨立坐標系,本系統提供了坐標轉換功能(見圖5),可直接輸入坐標轉換參數;或用現場測量的數據求解出四參數,測量界面如圖6。

圖5 坐標轉換設置

圖6 點位測量
圖7為定位的效果,藍線為行走軌跡,藍色圓表示當前所在位置。根據測試,藍牙GPS適配器定位精度一般在5 m左右,此精度可滿足查圖的概略定位。

圖7 行走軌跡繪制及定位點顯示圖
利用導航型GPS配合便攜電腦在野外實時定位查圖,既節省了打印圖紙的開支又避免了使用圖紙查圖在野外確定所處位置困難的麻煩。本方法在幾個測區的實際查圖應用表明,在野外能夠快速確定當前所在位置,行走軌跡能夠記錄且清晰表明已查圖的行走路徑,避免了重復檢查與遺漏現象發生。通過該方法還可應用于外業調繪等其他需要實時識圖領域,對外業快速識圖與判讀均有較好的效果。
[1] 胡輝.GPS數據采集軟件的實現[J].全球定位系統, 2008(1): 25-30
[2] 曹婷婷,高玉. GPS中NMEA-0183協議的應用[J].電子工程師,2006,32(10):8-11
[3] 秦永.遙感影像支持的實時導航應用研究[J].測繪科學,2008,33(5):164-165
[4] 張晉西.Visual Basic.NET二次開發AutoCAD范例精解[M].北京:清華大學出版社,2004
[5] 陳明,郭際明,葉嵐.利用藍牙技術傳輸GPS數據[J].測繪信息與工程,2008,33(2):8-9
[6] 付曉玲,吳潔明,佃來.基于藍牙GPS 的移動GIS系統解決方案[J].計算機工程與設計,2009,30(2):299-301
[7] 張增華,程明霄.基于Windows Mobile 的藍牙GPS 數據采集方法的改進[J].微計算機信息,2007,23(6):197-199
P228.42
B
1672-4623(2014)01-0137-03
10.11709/j.issn.1672-4623.2014.01.047
廖建昌,研究方向為工程測量。
2012-04-24。