999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

利用 VB實現(xiàn)手持 GPS航點航線輸入

2010-01-11 08:27:02蔡足根陸柏樹
物探化探計算技術 2010年1期
關鍵詞:設置

蔡足根,陸柏樹

(湖北省水文地質(zhì)工程地質(zhì)勘察院,湖北荊州 434100)

0 前言

手持 GPS是目前地質(zhì)工作中常用的工具,但由于其坐標投影格式和數(shù)據(jù)輸入的問題,給大多數(shù)地質(zhì)工作者帶來了一定的困惑和苦惱。

對于要求出二個坐標系之間的轉(zhuǎn)換參數(shù),需要進行大量而復雜的計算工作,如果利用手工的計算方法,既費時又費力,而且計算精度也相對較低。對于大量坐標數(shù)據(jù)的手工輸入,更是一個相當繁瑣的工作,且輸入的數(shù)據(jù)出錯率較高。要實現(xiàn)坐標數(shù)據(jù)的高效轉(zhuǎn)換和快速傳輸,可以利用多種編程語言來編寫軟件,解決坐標數(shù)據(jù)自動化轉(zhuǎn)換和自動化傳輸?shù)膯栴}。

由于VisualBasic是Windows操作系統(tǒng)下一種面向用戶的編程語言。它沿用了一些標準 Basic的函數(shù)和編程風格,同時又有許多新的函數(shù)適合于Windows操作系統(tǒng)使用。采用 VB(VisualBasic)編寫的軟件,編譯后具有很強的獨立性和可移植性,VisualBasic6.0目前也是眾多流行的編程軟件之一。

根據(jù)作者多年工作經(jīng)驗和總結(jié),成功地利用VB解決了坐標投影轉(zhuǎn)換和批量數(shù)據(jù)輸入手持 GPS的問題。該方法簡單實用,可以在物化探和地質(zhì)測繪,特別是在中小比例尺放樣中得到廣泛使用。作者在本文的主體思路是通過 VB,將各種坐標數(shù)據(jù)轉(zhuǎn)換成 WGS-84坐標數(shù)據(jù),并生成 Mapsource能識別的 gpx文件,Mapsource可以通過自身內(nèi)部程序,自動地將WGS-84坐標轉(zhuǎn)換成自定義坐標系,再將數(shù)據(jù)上傳到 GPS中。

下面以湖北恩施高速公路物探放點測量為例進行詳細介紹 (已知測線方位 166°,測點間距 150 m,測線長 1800m,測點坐標為 BJ-54坐標,總共13個測點,測線起始點 4+01的坐標為 3500532,19437330,終點 4+13的坐標為 3498780,19437762)。

1 設備和軟件準備

作者在本文中,主要針對 GARMINeTrexVenture手持 GPS的數(shù)據(jù)傳輸,采用的軟件有 Visual Basic編程軟件和 GPS傳輸軟件 Mapsource6.5。對于其它型號的手持 GPS,可以采用由廠家提供的傳輸軟件,或下載 EasyGPS等綠色軟件來完成。并且,EasyGPS支持多款手持 GPS的數(shù)據(jù)輸入輸出。

2 gpx文件解讀

在Mapsource中,任意輸入一條航線并保存它,保存類型設為“GPS交換格式 (*.gpx)”,文件名為“航點航線.gpx”,以備下一步工作的需要。

gpx文件是一個基于 XML語法和文件格式的文件,主要用來描述和保存地理信息。該文件主要分為四個部份:文件頭、航點屬性、航線屬性和文件尾。首先解讀一下這個文件,利用 window自帶的記事本打開文件“航點航線.gpx”,可以看到從文件開始到 語句描述的是 XML版本、網(wǎng)站信息、格式、創(chuàng)建時間和航線航點分布范圍等,這些內(nèi)容對數(shù)據(jù)傳輸沒有影響,可照搬而不去理會。重點是對航點和航線的描述部份。

(1)航點數(shù)據(jù)格式:從每個 之間,記錄了單個航點的經(jīng)緯度 (WGS-84坐標)、創(chuàng)建時間、航點名稱、航點符號等。

(2)航線數(shù)據(jù)格式:之間為一條航線描述,后面的語句 為航線名稱描述,其中 AAA為名稱,可以根據(jù)用戶需要進行修改,接下來是航線上各航點的描述,與航點數(shù)據(jù)格式基本相似。這里就不一一講解了,相信讀者很容易看懂。文件尾“”表示文件結(jié)束。

3 gpx文件的生成

對 gpx文件了解之后,現(xiàn)可以通過 VB編寫程序?qū)崿F(xiàn) gpx文件的生成。

3.1 gpx文件生成器的程序編制

在 gpx文件生成器左邊的 TextBox控件中輸入原始數(shù)據(jù),數(shù)據(jù)格式為“編號,X(或 B),Y(或 L)”。如果輸入的數(shù)據(jù)為WGS-84坐標,則在 Option控件中選擇對應的WGS-84坐標系;同理,其它數(shù)據(jù)格式對應選擇。在填寫和選擇正確后,點擊“生成gpx文件”,即可在右邊的 TextBox控件中顯示出gpx的全部內(nèi)容,在確認無誤后點擊“保存 gpx文件 ”即可 (見圖 1)。

圖 1 gpx文件生成器的編制Fig.1 Gpxfilelayoutofgenerator

3.2 坐標轉(zhuǎn)換

由于Mapsource只能識別 gpx文件中的 WGS-84坐標數(shù)據(jù),所以當現(xiàn)有的數(shù)據(jù)為其它坐標系時,還應將坐標數(shù)據(jù)轉(zhuǎn)換成WGS-84坐標系。坐標轉(zhuǎn)換就是依據(jù)一定的數(shù)學模型,計算出二個坐標系間的轉(zhuǎn)換參數(shù),然后利用所求的轉(zhuǎn)換參數(shù)對其余各點進行轉(zhuǎn)換。研究不同坐標系統(tǒng)的坐標轉(zhuǎn)換問題,主要是研究不同的空間直角坐標系的坐標轉(zhuǎn)換問題,合理確定二種坐標系的轉(zhuǎn)換參數(shù)是非常關鍵。一般的是根據(jù)已知的一部份同名點 (也稱公共點)在二個坐標系中的坐標,選擇一定的計算方法進行解算。目前常用的有三點法、多點法和嚴密平差法等多種方法。在實際工作中,根據(jù)不同的精度要求,可選取不同的方法。二個不同的空間直角坐標系有七個轉(zhuǎn)換參數(shù),一般來說,有三個同名點就可以求得轉(zhuǎn)換參數(shù)。關于坐標轉(zhuǎn)換已經(jīng)有相關論文利用 VB實現(xiàn)過,作者在本文主要用到的是將各種坐標數(shù)據(jù)轉(zhuǎn)換成WGS-84坐標數(shù)據(jù),具體原理和實現(xiàn)過程可見參考文獻[2],這里就不再詳細介紹了。

為了敘述方便,現(xiàn)將WGS-84坐標轉(zhuǎn)換數(shù)據(jù)在VB模塊中用一個公式來描述:PublicSubXY_To_LB(XAsDouble,YAsDouble,BAsDouble,L AsDouble,MAsInteger),其中 X、Y為待轉(zhuǎn)換的坐標,B、L為轉(zhuǎn)換后緯度和經(jīng)度坐標,M為待轉(zhuǎn)換坐標的格式。

3.3 主要部份源代碼

根據(jù) gpx文件解讀可知,gpx文件由四個部份組成,文件頭、航點屬性、航線屬性和文件尾。

3.3.1 生成 gpx文件

PrivateSubCommand1_Click()

DimS$,SS$,SSS$,SSSS$,S0$,S1$,S2$,S3$,S4$,temp$,txt1$,txt2$

DimSZ1$(),N $,A1$

DimA2#,A3#,WD#,JD#

S="

xsi:schemaLocation =""http://www.topografix.com/GPX/1/1http://www.topografix.com/GPX/1/1/gpx.xsd"">"

S0=""

S3=""

S4=""

SZ1()=Split(Text1,vbCrLf)′以下為分列讀取坐標數(shù)據(jù)

Fori=0ToUBound(SZ1)

IfInStr(SZ1(i),",")<>0Then

A1= (Mid(SZ1(i),1, (InStr(SZ1(i),",")-1))) ′讀取第 1列

A2=Val(Mid(SZ1(i),InStr(SZ1(i),",") + 1, InStr(InStr(SZ1(i),",") + 1,SZ1(i),",")-1))′讀取第 2列

A3=Val(Mid(SZ1(i),InStr(InStr(SZ1(i),",")+1,SZ1(i),",")+1))′讀取第3列

EndIf

IfOption1.ValueThen ′即為 54坐標

CallXY_To_LB(A2,A3,WD,JD,1)

txt1= txt1&""&vbCrLf

txt2= txt2&""&vbCrLf

ElseIfOption2.ValueThen ′即為 80坐標

CallXY_To_LB(A2,A3,WD,JD,2)

txt1= txt1&""&vbCrLf

txt2= txt2&""&vbCrLf

Else ′即為 84坐標

txt1=txt1&" "&vbCrLf

txt2= txt2&""&vbCrLf

EndIf Nexti

S2=A1′讀取航線終點

Text2.Text=S&vbCrLf&SS&vbCrLf&txt1&S0&S1&"TO"&S2&S3&vbCrLf&txt2&S4′顯示到 text2.text

EndSub

3.3.1 保存 gpx文件

PrivateSubCommand2_Click()′保存 gpx文件

DimFName1$

CommonDialog1.DialogTitle="另存轉(zhuǎn)換數(shù)據(jù)文件"

CommonDialog1.Filter="轉(zhuǎn)換數(shù)據(jù) (*.gpx)|*.gpx"

CommonDialog1.FileName=""

CommonDialog1.ShowSave

FName1=CommonDialog1.FileName

IfFName1=""ThenExitSub

OpenFName1ForOutputAs#1

Print#1,Text2.Text

Close#1

EndSub

3.4 程序設計中一些技術問題的處理

3.4.1 原始數(shù)據(jù)分隔符的處理

根據(jù)數(shù)據(jù)本身的特點以及使用者的愛好,原始數(shù)據(jù)使用分隔符可能會不一樣,為了使該程序適用更廣,現(xiàn)對原始數(shù)據(jù)分隔符作適當?shù)念A處理,將各種不同的數(shù)據(jù)分隔符全部替換成一種分隔符。以下編寫了一個公式 TH(),對十個不同的數(shù)據(jù)分隔符全部替換成以“,”分隔。筆者也可以根據(jù)自己的習慣或愛好去修改,詳細代碼如下:

FunctionTH(TxtAsString)

Txt=Replace(Txt,"",",") ′3個空格分隔

Txt=Replace(Txt,"",",")′2個空格分隔

Txt=Replace(Txt,"",",")′1個空格分隔

Txt=Replace(Txt,Chr(9),",") ′tab分隔

Txt=Replace(Txt,";",",") ′;分隔

Txt=Replace(Txt,":",",") ′:分隔

Txt=Replace(Txt,Chr(-23636),",")′,分隔

Txt=Replace(Txt,Chr(-24158),",")’、分隔

Txt=Replace(Txt,Chr(-23621),",")′;分隔

Txt=Replace(Txt,Chr(-23622)",") ′:分隔

EndFunction

其中,Txt為要替換的文本內(nèi)容。

3.4.2 gpx文件編碼轉(zhuǎn)換

由VB直接生成的文本文件編碼都是 ANSI,而Mapsource只能識別UTF-8編碼。要將一個文本文檔的編碼修改成 UTF-8格式有二種方法,一種是手動修改,直接將文本文檔選擇 UTF-8編碼另存即可;另一種就是編寫 VB代碼自動實現(xiàn),同樣可以編寫一個轉(zhuǎn)換公式 ConvUTF8(),詳細代碼如下:

FunctionConvUTF8(FPathAsString)

DimADO_StreamAsObject

DimB()AsByte

ReDimB(FileLen(FPath))

OpenFPathForBinaryAs#1

Get#1,,B

Close#1

D=StrConv(B,vbUnicode)

SetADO_Stream=CreateObject("ADODB.

Stream")

WithADO_Stream

.Type=2

.Mode=3

.Charset="UTF-8"

.Open

.WritetextD

.SaveToFileFPath,adSaveCreateOverWrite

.Close

EndWith

EndFunction

其中 FPath為待轉(zhuǎn)換文本文件的路徑。

4 數(shù)據(jù)傳輸?shù)?GPS

4.1 手持 GPS設置

由于大多數(shù)工區(qū)坐標系都是用戶自定義坐標系,為了開展工作方便,可以將 GPS的坐標系統(tǒng)設置成用戶自定義坐標系。湖北恩施高速公路給定測點坐標系為 BJ-84,為了使用方便,現(xiàn)將 GPS中的坐標系統(tǒng)通過用戶自定義的方式設置成 BJ-54坐標,具體操作如下:

(1)進入 GPS主菜單頁面的“設置”子頁面中,按動方向鍵選擇“單位”,按輸入鍵進入坐標設置的頁面,將“位置格式”的選項改為“UserUTM Grid”(自定義坐標格式)。在出現(xiàn)的參數(shù)頁面中,輸入相關的參數(shù),參數(shù)包括中央經(jīng)線 (根據(jù)當?shù)氐乩砦恢么_定,本次工作區(qū)為 111°),投影比例 (該值為 1),東西偏差 (該值為 500000.0)以及南北偏差 (該值為 0)。

(2)按下屏幕上的“存儲”按鈕后,再將“地圖基準”(有的 GPS稱之為“坐標系統(tǒng)”)的選項改為“User”(自定義坐標系統(tǒng))。在出現(xiàn)的參數(shù)頁面中輸入相關參數(shù),包括 DX、DY、DZ、DA和 DF。對于BJ-54坐標系,DA的值為 -108,DF的值為0.0000005。按下屏幕上的“存儲”按鈕后,GPS顯示的坐標點格式為 BJ-54坐標格式。如果是80坐標 ,則 DA=-3,DF=0。

DX、DY及 DZ三個參數(shù)因地區(qū)而異,具體的求解辦法這里就不作詳細介紹了,相信大家都知道。在這里,作者根據(jù)該工區(qū)現(xiàn)場條件,求解得到DX=-6,DY=-110,DZ=-48。

4.2 Mapsource設置

為了保證數(shù)據(jù)在同一個坐標系中傳輸,Mapsource的設置應與 GPS設置一致,具體操作如下:

(1)進入編輯 /首選項 /位置進入坐標設置的頁面,將“格網(wǎng)”中的選項改為“用戶定義的格網(wǎng)”,然后在“屬性”選項中,將參數(shù)設置與 GPS相一致。

(2)將“地圖基準”的中選項改為“用戶定義的地圖基準”,在“屬性”選項中設置相應的參數(shù),參數(shù)包括 DeltaX、DeltaY、DeltaZ、Delta半長和 Delta扁 ,其值依次與 GPS中的 DX、DY、DZ、DA和 DF對應。

4.3 數(shù)據(jù)傳輸?shù)?GPS

當參數(shù)設置好后,利用Mapsource程序打開剛保存過的 gpx文件,在Mapsource可以看到十三個航點和一條航線,這時數(shù)據(jù)就全部調(diào)入到 Mapsource中了。然后,將手持 GPS與 Mapsource軟件對接,點擊“發(fā)送到設備”按鈕,選擇傳輸航線,數(shù)據(jù)就全部上傳到手持 GPS上了,此時 GPS上的數(shù)據(jù)顯示為設置好的BJ-54坐標。現(xiàn)在就可以利用它到野外進行導航、定點了。

5 結(jié)語

以上主要闡述了一條航線的生成方法,讀者也可以根據(jù)以上原理,編寫多條航線或航跡的 gpx文件。

由于傳統(tǒng)的野外地質(zhì)記錄方式及其地質(zhì)人員對硬件設施的運用現(xiàn)狀,致使許多數(shù)據(jù)點的轉(zhuǎn)換和傳輸還經(jīng)常要人工進行操作,這樣難以提高工作效率,同時增加了出錯率。利用 VB實現(xiàn)了坐標投影轉(zhuǎn)換和批量數(shù)據(jù)輸入 GPS,極大地方便了地質(zhì)資料的整理、管理和利用。

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

[2] 宋順安,陳懷爭.利用 VB實現(xiàn)手持 GPS成果坐標系轉(zhuǎn)換的方法[J].測繪技術裝備,2007,9(2):9.

[3] GARMIN公司.eTrexVenture-奇遇 GPS使用手冊[S].北京:GARMIN公司,2006.

[4] 王聲喜 ,康寶林.Mapsource與 Excel、MapGIS相結(jié)合在化探中的應用 [J].物探化探計算技術,2009,31(2):169.

[5] 宋丙劍,張艷軍.記事本、Excel在 Mapsource和 Mapgis數(shù)據(jù)轉(zhuǎn)換中的應用探討 [J].礦山測量,2008,(2):27.

[6] 劉凡珍 ,郭玉軍 ,孫萍 ,等.GPS與 Excel、Mapgis相結(jié)合在化探工作中的應用[J].吉林地質(zhì),2007,26(1):61.

[7] 中海達公司.Coord4.0使用說明書[R].廣州:中海達公司,2004.

[8] GARMIN公司.Mapsource使用說明書 [R].北京:GARMIN公司.2004.

[9] 王會鋒,彭立華,安興,等.GPS技術在化探工作中的應用[J].物探與化探,2008,32(5):477.

[10]李鵬,楊婷婷,王秋菊,等.手持 GPS的功能及其在野外調(diào)查中的應用 [J].內(nèi)蒙古農(nóng)業(yè)科技.2008,(05):98。

[11]王建宏.用 VB實現(xiàn) GPS信息處理 [J].微型電腦應用.2007,23(1):43.

[12]張云.手持 GPS坐標系統(tǒng)轉(zhuǎn)換參數(shù)的求解方法[J].西部探礦工程.2006,18(8):46.

[13]周忠謨.GPS衛(wèi)星測量原理與應用 (修訂版)[M].北京:測繪出版社,2004.

[14]杜大彬,張寬房,張開盾,等.手持 GPS坐標系轉(zhuǎn)換方法[J].陜西地質(zhì).2007,35(01):96.

猜你喜歡
設置
中隊崗位該如何設置
少先隊活動(2021年4期)2021-07-23 01:46:22
船舶防火結(jié)構(gòu)及設置的缺陷與整改
水上消防(2020年5期)2020-12-14 07:16:18
中外醫(yī)學專業(yè)與??圃O置對比分析及啟示
特殊場景下列控等級轉(zhuǎn)換的設置方案
7招教你手動設置參數(shù)
動車段(所)股道有效長設置研究
我國中小學將設置人工智能相關課程
玩具世界(2017年9期)2017-11-24 05:17:29
吃紙的妖怪
本刊欄目設置說明
中俄臨床醫(yī)學專業(yè)課程設置的比較與思考
主站蜘蛛池模板: 狠狠色婷婷丁香综合久久韩国| 香蕉精品在线| 久久精品丝袜| 亚洲AⅤ永久无码精品毛片| 日韩视频免费| 亚洲无码熟妇人妻AV在线| 99热这里只有精品免费| 97se亚洲综合在线天天| 在线观看国产精美视频| 亚洲永久免费网站| 国产精品尤物在线| 国产麻豆精品久久一二三| 97视频在线精品国自产拍| 国产精品福利在线观看无码卡| 国产高清毛片| 亚洲国模精品一区| 亚洲乱强伦| 国产人人干| 亚洲无码高清视频在线观看| 天天做天天爱夜夜爽毛片毛片| 欧美激情视频二区| 一边摸一边做爽的视频17国产 | 成人福利在线看| 全部免费特黄特色大片视频| 久久精品视频亚洲| 日韩 欧美 小说 综合网 另类| 高清无码不卡视频| 97精品国产高清久久久久蜜芽| 国产乱人视频免费观看| 国产精品所毛片视频| 青青草a国产免费观看| 亚洲欧美激情小说另类| 亚洲成a人片77777在线播放| 四虎精品黑人视频| 国内精品免费| 国产精品福利在线观看无码卡| 免费亚洲成人| 国产一区在线视频观看| 国产精品欧美在线观看| 国产日韩丝袜一二三区| 国产精品第三页在线看| 狠狠躁天天躁夜夜躁婷婷| 国产18页| 成人91在线| 经典三级久久| 久久久久亚洲av成人网人人软件| 国产免费人成视频网| 91黄色在线观看| 直接黄91麻豆网站| 欧美成人午夜在线全部免费| 欧美www在线观看| 亚洲系列无码专区偷窥无码| 欧美色图第一页| 国产成人无码Av在线播放无广告| 久久久久人妻一区精品色奶水| 欧美中文一区| 午夜小视频在线| 国产精品 欧美激情 在线播放| 白浆免费视频国产精品视频| 久久久久国产精品熟女影院| 亚洲精品无码人妻无码| 在线免费观看a视频| 毛片网站在线播放| 中文字幕在线日本| 在线看片中文字幕| 国产特级毛片| 久久国产精品影院| 国产精品林美惠子在线播放| 在线另类稀缺国产呦| 高清欧美性猛交XXXX黑人猛交 | 久久久噜噜噜久久中文字幕色伊伊| 欧美三级自拍| 草逼视频国产| 亚洲中文字幕日产无码2021| 日本91在线| 全色黄大色大片免费久久老太| 综合色在线| 亚洲综合经典在线一区二区| 久久久黄色片| 婷婷亚洲综合五月天在线| 欧美日韩午夜视频在线观看| 欧美激情伊人|