亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

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

        2010-01-11 08:27:02蔡足根陸柏樹
        物探化探計(jì)算技術(shù) 2010年1期
        關(guān)鍵詞:航點(diǎn)航線坐標(biāo)系

        蔡足根,陸柏樹

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

        0 前言

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

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

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

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

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

        1 設(shè)備和軟件準(zhǔn)備

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

        2 gpx文件解讀

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

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

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

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

        3 gpx文件的生成

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

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

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

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

        3.2 坐標(biāo)轉(zhuǎn)換

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

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

        3.3 主要部份源代碼

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

        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)′以下為分列讀取坐標(biāo)數(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坐標(biāo)

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

        txt1= txt1&""&vbCrLf

        txt2= txt2&""&vbCrLf

        ElseIfOption2.ValueThen ′即為 80坐標(biāo)

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

        txt1= txt1&""&vbCrLf

        txt2= txt2&""&vbCrLf

        Else ′即為 84坐標(biāo)

        txt1=txt1&" "&vbCrLf

        txt2= txt2&""&vbCrLf

        EndIf Nexti

        S2=A1′讀取航線終點(diǎn)

        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 程序設(shè)計(jì)中一些技術(shù)問題的處理

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

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

        FunctionTH(TxtAsString)

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

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

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

        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只能識(shí)別UTF-8編碼。要將一個(gè)文本文檔的編碼修改成 UTF-8格式有二種方法,一種是手動(dòng)修改,直接將文本文檔選擇 UTF-8編碼另存即可;另一種就是編寫 VB代碼自動(dòng)實(shí)現(xiàn),同樣可以編寫一個(gè)轉(zhuǎn)換公式 ConvUTF8(),詳細(xì)代碼如下:

        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è)置

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

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

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

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

        4.2 Mapsource設(shè)置

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

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

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

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

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

        5 結(jié)語

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

        猜你喜歡
        航點(diǎn)航線坐標(biāo)系
        (21)新航線
        二次開發(fā)在航點(diǎn)航跡圖批量繪制中的應(yīng)用
        解密坐標(biāo)系中的平移變換
        坐標(biāo)系背后的故事
        基于重心坐標(biāo)系的平面幾何證明的探討
        太空新航線
        太空探索(2016年5期)2016-07-12 15:17:58
        太空新航線
        太空探索(2016年6期)2016-07-10 12:09:06
        極坐標(biāo)系下移動(dòng)機(jī)器人的點(diǎn)鎮(zhèn)定
        久久午夜伦鲁片免费无码| 自由成熟女性性毛茸茸应用特色| 国产精品美女久久久免费 | 男男啪啪激烈高潮无遮挡网站网址| 亚洲无码在线播放| 日本丰满人妻xxxxxhd| 无码一区二区三区不卡AV| 亚洲成av人片在久久性色av| 精品亚洲麻豆1区2区3区| 亚洲人成无码网站在线观看| 亚洲中文无码久久精品1| 午夜香蕉av一区二区三区| 手机av在线中文字幕| 国内精品卡一卡二卡三 | 欧美中出在线| 一区二区三区国产精品麻豆| 亚洲av无码国产综合专区| 亚洲av色先锋资源电影网站| 中文无码制服丝袜人妻AV| 日本一区二区三级在线| 国产精品vⅰdeoxxxx国产| 亚洲熟妇少妇任你躁在线观看| 色婷婷激情在线一区二区三区| 99精品国产一区二区三区| 国产中文字幕乱人伦在线观看| 亚洲AV无码精品呻吟| 蜜臀一区二区av天堂| 国产乱码人妻一区二区三区| 9lporm自拍视频区| mm在线精品视频| 国产中文字幕亚洲精品| 日韩精品一区二区午夜成人版| 最近日韩激情中文字幕| av资源在线播放网站| 国产一区二区三区精品免费av| 国产成人无码一区二区在线观看| 亚洲电影一区二区| 亚洲丰满熟女一区二亚洲亚洲| a级毛片100部免费观看| 日韩AV有码无码一区二区三区| 亚洲少妇一区二区三区老|