劉敬濤,黃 鷹,覃澤穎
(1.桂林理工大學 測繪地理信息學院,廣西 桂林 541004;2.廣西國土資源廳 土地整理中心,廣西 南寧530028;3.桂林好測信息科技有限公司,廣西 桂林 541004)
GPS-RTK自首次應用之后,就憑借其定位速度快、精度高、全天候等優(yōu)勢迅速成為當前野外測量的首選方法。然而,其操作手簿仍舊使用微軟的Windows操作系統(tǒng),Android版本的GPS-RTK手簿研究在國內(nèi)外仍舊是一個空白。本文對GPS-RTK手簿使用Android操作系統(tǒng)的可行性進行研究,并簡單比較了2種操作系統(tǒng)的優(yōu)劣。
經(jīng)過查閱大量文獻資料,筆者發(fā)現(xiàn)Android操作系統(tǒng)相對于微軟Windows 操作系統(tǒng)主要有以下優(yōu)勢:①Android操作系統(tǒng)是開源的,不存在以前使用的手簿需要向微軟繳納版權(quán)費的問題,降低了使用成本。更重要的是開源降低了對程序員的要求,會有更多的人投入到此應用的開發(fā)中,這必定加快此應用的更新速度,使其擁有更豐富的功能,更加人性化的操作,降低測量人員的野外工作強度,提高作業(yè)效率。②Android操作系統(tǒng)對硬件的要求遠低于微軟的Windows 操作系統(tǒng)。目前市面上使用的RTK手簿多數(shù)都是需要向特定廠家訂購的,價格昂貴,但是如果你有一款Android的手機或者平板,那么你完全可以安裝Android版本的軟件來實現(xiàn)一樣的效果,從而省去購買手簿的開支。③Android系統(tǒng)的3G通信模塊可以對未來CORS定位系統(tǒng)提供完美解決方案,而目前使用的微軟系統(tǒng)對此卻是一片空白。
手簿的開發(fā)以Windows7操作系統(tǒng)為平臺,在搭建Android開發(fā)環(huán)境之前,需要以下必要的軟件支持[1]:
①JDK(Java Development Kit), 即jdk-7u11-windows-i586.exe,官網(wǎng)下載最新版本。
②Eclipse Classic 4.2.1-win32.zip,在Eclipse官網(wǎng)下載。
③ADT(Android Development Tools),Android開發(fā)插件,最新版本為ADT-21.0.1.zip。
④Android SDK(Software Development Kit):android-sdk_r21.0.1-windows.zip。
安裝過程為:①安裝JDK。②安裝Eclipse。③安裝SDK。④設(shè)置環(huán)境變量。⑤為Eclipse安裝ADT Plugin。⑥安裝Android SDK。啟動Eclipse,在Windows→Android SDK Manager(注意,這個過程必須聯(lián)網(wǎng))查看當前可用以及需要下載的SDK版本。在Windows→AVD Manager新建一個Android模擬器之后直接點擊Launch,稍等片刻,電腦屏幕便會出現(xiàn)虛擬Android機[2,3]。
系統(tǒng)涉及項目建立、項目套用、大地坐標正反算、RTK校正、放樣、實時坐標解算,需要按照特定格式存儲點位信息以及測量數(shù)據(jù)文件的自動建立與命名等若干功能。
應用共有5個主要模塊:工程模塊、工具模塊、測量模塊、藍牙模塊、解算模塊。
手簿試驗所使用的GPS接收機以南方為主,考慮其兼容性,使用過中海達GPS接收機。
此模塊主要用于創(chuàng)建新的工程文件和打開已存在的工程文件。在創(chuàng)建新的工程文件中,用戶可以創(chuàng)建自己的工程,配置此工程測量所采用的橢球模型、中央子午線和相應轉(zhuǎn)換參數(shù)等信息。打開工程即是采用之前此工程的配置參數(shù)進行下一步測量。如果沒有創(chuàng)建新的工程和打開工程文件操作,系統(tǒng)會默認采用前一次測量所采用的測量參數(shù)。主要流程見圖1。
圖1 工程模塊主要流程圖
工具模塊主要包括點位校正、坐標正反算、高斯投影正反算及相鄰帶的坐標換算等內(nèi)容。
測量模塊是此應用中最重要的模塊,測量模塊的主要流程如圖2所示。
點號、編碼等主要為南方CASS數(shù)字化地形地籍成圖系統(tǒng)讀取數(shù)據(jù)格式設(shè)計。按下測量存儲后,數(shù)據(jù)自動保存到工程模塊設(shè)置的文件中,其文件名后綴為.dat。其中內(nèi)部存放數(shù)據(jù)的格式為:點號,編碼,y,x,h。控制點測量服務于工具模塊中的點位校正。按下此按鈕之后,程序?qū)⒃谠O(shè)置的時間內(nèi)將符合測量要求的點自動測量、保存并平差計算,得到此點位相對較為準確的三維坐標值。解算模塊解算相應的坐標轉(zhuǎn)換參數(shù),進而保證校正之后的點位坐標與目標坐標一致。連接按鈕主要負責啟動藍牙進程,接收GPS接收機發(fā)送過來的數(shù)據(jù),之后交給解算模塊實時解算當前點位信息。開發(fā)人員調(diào)試工具中,第一個文本框負責顯示處理之后的GPS接收機發(fā)送過來的相關(guān)字符串,第二個文本框負責編輯指令,配置GPS內(nèi)部參數(shù)和遠程控制GPS接收機。發(fā)送按鈕負責將第二個文本框中編輯好的指令通過藍牙進程發(fā)送給GPS接收機[4]。例如連接南方S86T GPS接收機,編輯 “readmachine+回車”字符發(fā)送給GPS接收機,返回相關(guān)信息如下:
圖2 測量模塊主要流程圖
$GPXXX,8000W1386770370,W13867703709973 054265C9BB8AE3B9,20130527,SA7224-V3.1,OEMT,GPRS,H86_HW_01,F121224H_2.1,STATIC,ZH,3,0,0,822,862*
其中W1386770370為機器號,9973054265C9BB8 AE3B9為注冊碼,20130527為注冊到期時間。此命令為讀取此GPS接收機機器號、注冊碼、到期時間、特征碼等相關(guān)信息。
當需要重新注冊此GPS接收機時,編輯“REGI 9973054265C9BB8AE3B9+回車”并發(fā)送,如果得到正確注冊,返回信息如下:
INPUT SERIAL W13867703709973054265 C9BB8AE3B9 UPDATED SUCCESSFUL,20130527.如果不正確,返回信息如下:
INIT: Serial CRC checksum error.
INPUT STRING W13867703709973054265 C9BB8AE3A9 UNMATCH SERIAL FORMAT.其中9973054265C9BB8AE3B9為W1386770370機器號此時的注冊碼。
此模塊為不可見模塊,主要有藍牙連接模塊、藍牙接收模塊、藍牙發(fā)送模塊和異常處理模塊。藍牙連接模塊主要負責發(fā)現(xiàn)附近可用藍牙并嘗試建立通信端口與之建立通信連接。藍牙接收模塊主要負責接收與之建立連接的GPS接收機藍牙端口發(fā)送過來的GPS協(xié)議數(shù)據(jù),格式如圖3所示。其中每一行分別代表的含義詳見GPS協(xié)議[5,6](NMEA-0183協(xié)議)。(注:廠家對此協(xié)議會有所改動,例如南方S86 GPS接收機發(fā)送電文$GPGGA中經(jīng)緯度精度達到小數(shù)點后8位,無$GPASV電文,增加一些新電文,如前面介紹的注冊GPS接收機主機時反饋的電文)。此模塊在接收到數(shù)據(jù)之后,會提取經(jīng)緯度、衛(wèi)星狀態(tài)等信息并將其移送到解算模塊。接收模塊是一個建立好連接之后一直在后臺運行的進程,用戶選擇停止或者藍牙連接中斷會銷毀此進程。藍牙發(fā)送模塊主要負責將編輯好的指令發(fā)送給GPS接收機,以期操作GPS接收機。異常處理模塊主要處理一些異常情況,例如突然丟失藍牙連接、藍牙開關(guān)突然關(guān)閉等,此模塊會妥善處理此類情況,而不至于使程序因為藍牙連接異常而崩潰[7]。
圖3 GPS協(xié)議數(shù)據(jù)格式(部分)
此模塊同樣為不可見模塊,主要負責程序解算工作。高斯投影正反算及相鄰帶的坐標換算、坐標正反算、點位校正、坐標轉(zhuǎn)換等都是通過此模塊解算。
Android是一款全新的智能無線終端操作系統(tǒng),它開放性好、功能擴展性強,能很好地支持各類測量程序開發(fā)。隨著GPS_RTK在測量中越來越多的應用,其操作手簿功能豐富程度與方便使用與否將成為評價其優(yōu)劣的直接因素,Android的開源優(yōu)勢將逐漸凸顯,Android系統(tǒng)的GPS_RTK手簿將會得到更廣泛的使用。
[1]吳孝麗,何燚.Windows中JDK的安裝及Java開發(fā)環(huán)境的搭建[J].福建電腦,2005(9):126-127
[2]李寧.Android 開發(fā)權(quán)威指南[M].北京:人民郵電出版社,2011
[3]李興華.Android開發(fā)實戰(zhàn)經(jīng)典[M].北京:清華大學出版社,2012
[4]周峰.基于Android智能手機平臺的GPS開發(fā)[D].蘇州:蘇州大學,2011
[5]曹婷婷,高玉.GPS中NMEA-0183協(xié)議的應用[J].電子工程師,2006,32(10):8-11
[6]胡輝.GPS數(shù)據(jù)采集軟件的實現(xiàn)[J].全球定位系統(tǒng),2008(1):25-30
[7]公磊.基于Android的GPS測量系統(tǒng)開發(fā)[D].南昌:南昌大學,2008