VB实现全球定位系统GPS数据的获取
基于VB的GPS定位算法与软件实现
卫星不问断地将 自身的星历参数 和时间信 息等发送 到
接收设 备上 , 用户接 收到后 , 加 以计 算 , 即可 获取接 收设 备
的三维位置 , i维方 向 以及 运动 速度 和时 间信 息 。实 际上
是将卫星作为动态空 间已知点 , 利用 距离 交会 的原理确 定 接收机的 维位置[ 1 。
LI U Xi a
( S a n y a Av i a t i o n & To u r i s m C o l l e g e .S a n y a 5 7 2 0 0 0 )
Abs t r a c t As d a t a b e t we e n c o mp ut e r s a nd GPS r e c e i v e r s h a s t o be t r a ns mi t t e d v i a RS - 2 3 2 b a t t e r y c o nv e r s i o n s e r i a l p o r t s .i t ha s r e c e n t l y b e e n p r o p o s e d t h a t VB b e e mp l o y e d a s a p l a t f o r m f o r o p e r a t i o n,i t i s p r o p o s e d t h a t Vi s ua l B a s i c 6 . 0 a n d i t s r e l e v a n t c o nt r o l f u n c t i o n s c a n b e a pp l i e d t o t h e p r o g r a mm i n g a n d d e c o di ng o f t he o r i e n t a t i o n d a t a .Th i s wa y,t he d a t a c a n be v i s u a l l y a c c e s s i bl e a n d f a v o r a b l e f o r o r i e n—
坐标点提取vba -回复
坐标点提取vba -回复如何使用VBA提取坐标点。
一、介绍坐标点提取是一种常见的数据处理操作,它可以从给定的数据中提取出符合特定格式的坐标点。
在地理信息系统(GIS)和地图制作中,坐标点是非常重要的数据。
本文将介绍如何使用VBA(Visual Basic for Applications)编写代码来提取坐标点。
二、准备工作1. 安装Microsoft Excel或其他支持VBA的电子表格软件。
2. 打开Excel并创建一个新的工作表。
3. 将包含数据的列复制到新的工作表中。
三、编写代码1. 打开Excel的VBA编辑器。
在Excel中,按下“ALT”键并同时点击“F11”键,即可打开VBA编辑器。
2. 在VBA编辑器中,选择“插入”>“模块”,以创建一个新的模块。
3. 在新创建的模块中,输入以下代码:vbaSub ExtractCoordinates()Dim inputRange As RangeDim outputRange As RangeDim cell As RangeDim pattern As StringDim regex As ObjectDim match As ObjectDim result As String'设置输入范围Set inputRange = Sheets("Sheet1").UsedRange'设置输出范围Set outputRange = Sheets("Sheet2").Range("A1")'设置坐标点的模式pattern = "(\d{1,3}\.\d+),\s*(-?\d{1,3}\.\d+)"'创建正则表达式对象Set regex = CreateObject("VBScript.RegExp")'遍历输入范围中的每个单元格For Each cell In inputRange'在单元格中查找匹配的坐标点Set match = regex.Execute(cell.Value)'如果找到坐标点If match.Count <> 0 Then'将坐标点添加到输出范围For Each m In matchresult = Replace(m.Value, ",", ";")outputRange.Value = result'如果要提取多个坐标点,请取消下面这行代码的注释'Set outputRange = outputRange.Offset(1)Next mEnd IfNext cellEnd Sub四、代码说明1. 首先,定义了几个变量:inputRange,用于设置输入范围;outputRange,用于设置输出范围;cell,用于遍历输入范围中的每个单元格;pattern,用于定义坐标点的模式;regex,使用CreateObject函数创建了一个正则表达式对象;match,用于存储找到的匹配结果;result,用于存储最终的坐标点结果。
用VB实现GPS信息处理
用VB实现GPS信息处理用VB实现GPS信息处理目前,GPS 已在许多行业和领域得到广泛应用,但就如何将GPS 有关信息读入计算机以便进一步处理和应用,仍是大家普遍关心的问题.虽然目前GPS 接收仪的种类,功能各有差异,而且使用的通讯协议也比较多,但许多GPS 生产商都遵循NMEA0183 协议,并且这些GPS 都提供串行通讯接口.笔者试图从分析GPS 通讯NMEA0183 协议入手,以计算机实时读取,显示,存储,回放GPS信息为例,探讨用VB 实现GPS 信息处理的一些方法.1 GPS 通讯的NMEA 协议PS 的通讯协议比较多,其中NMEA (National Ma2rine Electronics Association) , 0183 协议为GPS 接收机和其他航海电子产品的导航数据输出格式,是目前普遍使用且为大多数生产商遵循的协议之一,以下为其基本通讯参数及报文格式.1. 1 GPS 串行通讯参数波特率= 4800 ;无奇偶校验;数据位= 8 ;停止位= 11. 2 NMEA 0183 报文格式NMEA 0183 协议报文的语句串(ASCII 字符) 格式全部信息可如下表示[1] :$AAXXX,ddd. . . ddd , 3 hh具体内容为:$ 串头,表示串开始AA 识别符XXX 语句名ddd ⋯ddd数据字段,字母或数字, 逗号3 星号,串尾hh $与3 之间所有字符代码的校验和回车控制符换行控制符1. 3 报文示例说明在具体的GPS 应用中,不需要用到NMEA 的全部信息,而是根据具体的工作,从中选取所需的信息,忽略其他信息.在文献[ 1 ]中,给出了用NMEA0813 的$GPGGA语句的数据格式及示例,文中以GPS 推荐的最短数据$GPRMC 语句为例,具体讨论协议串中各数据段内容.1. 3. 1 当GPS 接收仪和卫星的通讯正常时接收到的数据中就包含如下格式的RMC 语句:$GPRMC,055142,A,3603.3291,N,10346.3723,E,0.0,230.4,250503,1.3,W,A *3 02其中数据分别为:$GPRMC 串头,其中RMC 为定位语句055142 表示UTC 24 小时制的标准时间,格式为"时时/分分/秒秒".根据任务还需要将其转换为北京时间格式[本帖最后由 GISCafe 于 2008-5-4 08:27 编辑]3评分次数竹疏willwayGISCafe收藏分享评分回复引用订阅 TOPkisstome882#发表于 2008-5-3 10:29 |新手上路帖子310 精华1 只看该作者用VB实现GPS信息处理-2A 或V 表示信号接收状态,其中A表示数据"OK,V表示一个警告3603.3291 表示纬度值,格式为"ddmm.mmmm"N 或S 标明南北半球,N为北半球(北纬),S为南半球(南纬)10346.3723 表示经度值,格式为"dddmm.mmmm"E 或W 标明东西半球,E为东半球(东经),W为西半球(西经)0.0 表示速度, (这里速度为0) 30.4 方位角,范围为000.0 到359.9度250503 为UTC 的日期,格式为"日日/月月/年年"1. 3 地磁变化(磁偏角) ,从000.0 到180.0度W 地磁变化方向,为E或W1. 3. 2 当没有和卫星取得联系时RMC 语句的显示格式如下:$GPRMC, ,V, , , , , , ,270503 ,1.3,W,N *2B2 VB编程实现在应用VB 实现对GPS 数据接收和处理时,主要通过串行通讯方式,应用MSComm 控件完成.由于文中涉及内容较多,故只给出编程思想和核心程序段.2. 1 MSComm 控件应用2. 1. 1 端口设置由于GPS串行通讯参数是固定的"波特率=4800 ;无奇偶校验;数据位=8;停止位=1",所以在编程时直接设置串口通讯参数就行了.其主要程序段如下[2] :'NMEA 协议设置MSComm1.Settings= "4800,N,8,1"2. 1. 2 数据采集OnComm 事件被用于捕获communications 事件及错误.因此可在MSComm 控件的OnComm 事件中加入处理函数,以便在文本框区实时显示,数据采集.Private Static Sub MSComm1 - OnComm()'事件信息Dim Buffer As VariantBuffer = MSComm1.Input ShowDatatxtTerm ,(StrConv(Buffer,vbUni code))'在文本框txtTerm 内显示接收到的GPS 信息'ShowData 过程实现, 见2.2.4 End Sub2. 2 GPS 信息显示的实现GPS 信息的显示实际包括两个方面,一是经过提取处理,显示需要的信息;二是在文本框内显示或记录全部信息(各种语句都显示) .在程序实现上,为方便读取GPS信息, 并提高程序的复用性, 事先设计了两个类模块CparseUtils-wjh.cls,GPRMC-wjh. cls和一个标准模块modTransFun.bas ;同时也设计了一个在文本框区显示,采集数据的过程showdata.以下为主要功能或实现过程.2. 2. 1 CparseUtils-wjh 类该类主要用于求得语句串中数据段的数目和内容,包含两个函数: Function Count Parts ( sString As String , Optional sDelim As String) As Byte '用于返回协议语句中用","分割的段数Function Parse (ByVal sString As String , iReq As Integer ,Op2tional sDelim As String) As String '用于分割数据段内容影音更酷!马上访问GISALL 视频分享中心回复引用TOPkisstome88新手上路帖子310 精华1 3#发表于 2008-5-3 10:29 | 只看该作者用VB实现GPS信息处理-32. 2. 2 GPRMC-wjh 类该类实现对接收到的语句进行判断,并确定各段字符的具体内容.除变量和其他属性定义外,最核心的一个方法,就是字串判断,下面列出其程序段:Public Property Let Sentence (ByVal RMC - Sentence As String)Dim Utils As New CparseUtils-wjh'检查正确的协议语句串头,以保证为$GPRMC 串If Utils.Parse (RMC- Sentence , 1) ="$GPRMC"Then'变量定义部分从略mvarSentence = RMC - Sentence'分析NMEA 并检查效果,如果不满足控制条件,返回并使变量值为空sUTC = Utils.Parse (mvarSentence , 2) 'UTC 时间If IsNumeric (sUTC) ThenmvarUTC = sUTCEnd IfsLatitude = Utils.Parse (mvarSentence , 4) '纬度If IsNumeric (sLatitude) ThenmvarLatitude = sLatitudeEnd IfsLatHemis = Utils.Parse (mvarSentence , 5) '南,北纬If sLatHemis ="S"Or sLatHemis ="N"ThenmvarLatHemis = sLatHemisEnd IfsLongitude = Utils. Parse (mvarSentence , 6) '经度If IsNumeric (sLongitude) ThenmvarLongitude = sLongitudeEnd IfsLonHemis = Utils. Parse (mvarSentence , 7) '东,西经If sLOr sLThenmvarLonHemis = sLonHemisEnd IfsSpeed = Utils. Parse (mvarSentence , 8) '速度If IsNumeric (sSpeed) ThenmvarSpeed = sSpeedEnd IfsUTDate = Utils. Parse (mvarSentence , 10) '日期If IsNumeric (sUTDate) ThenmvarUTDate = sUTDateEnd If'⋯⋯其他判断类似,此处从略End IfSet Utils = NothingEnd Property2. 2. 3 modTransFun 功能模块该模块给出了坐标格式转换函数及GPS 信息显示函数,它们分别为:Public Function DM2DD(DegreeMinutes As String) As Double'坐标格式转换函数,转换NMEA 协议的"度分"坐标格式为十进制"度度"格式'实现方法读者可自己完成下面主要介绍用于GPS 数据显示,回放时要用到的playNMEA 过程的实现方法: Public Sub playNMEA(sArray As Variant )'直接显示GPS 数据流,或回放已存在的NMEA 文件Dim rmc As GPRMC-wjhDim Utils As New CparseUtils - wjhDim Sentence As IntegerFor Sentence = 0 To sCnt - 1If Utils. Parse (sArray(Sentence) , 1) ="$GPRMC"ThenSet rmc = New GPRMC - wjhDoEventsWith rmc. Sentence = sArray(Sentence)If Not Val ( . Longitude) = 0 Then'lblX,lblY,lblSpeed,lblUTC,lblDate 分别为用于显示X,Y坐标,'速度,日期,时间的标签(Label) 控件'这里只示例了$GPRMC 中几个主要信息的提取,其他信息可如法炮制lblX. Caption = "X: " & Format (DM2DD ( . Longitude ) ,"000. 0000") &""& . LonHemislblY. Caption ="Y: "& Format (DM2DD( . Latitude) ," 00.0000") &""& . LatHemislblSpeed. Caption ="速度: "& . Speed &" Km/ h"lblDate. Caption ="日期: "& . UTDatelblUTC. Caption ="时间: "& . UTC '这个时间为UTC时间'根据任务可转换成北京时间ElseMsgBox"接收卫星数太少,不能定位!"'赋给lblX,lblY,lblSpeed,lblUTC,lblDate 空串Exit SubEnd IfEnd WithEnd IfNext SentenceEnd Sub'如果需要记录数据到文件If hLogFile Theni = 2DoErr = 0Put hLogFile , , DataDim data0 As StringIf Err Theni = MsgBox( Error $, 21)If i = 2 ThenmnuCloseLog - ClickEnd IfEnd IfLoop While i 2End IfTerm. SelStart = Len ( Term. Text ) '定位信息显示部分开始InString = Datacnt = Utils. Count Parts ( InString , Chr (10) )For n = 0 To cnt - 1tempStr = Utils. Parse ( InString , n , Chr (10) ) ReDim Preserve sArray(n)sArray(n) = tempStrNext nSet Utils = NothingsCnt = cntCall playNMEA(sArray) '显示部分结束Exit SubHandler :MsgBox Error $Resume NextEnd Sub没有个人空间?GISALL全新上线,点击申请开通回复引用TOPkisstome884#发表于 2008-5-3 10:30 | 只看该作者用VB实现GPS信息处理-4新手上路帖子310 精华1 2. 3 实时记录和保存GPS 数据程序运行时,如执行"打开记录文件",则打开要记录的文件和端口,在GPS 信息区实时显示接收到的GPS 报文,并录入到记录文件中;若执行"关闭记录文件",则关闭记录文件(但文本框中仍然显示GPS 信息) .Private Sub mnuOpenLog - Click()'执行"打开记录文件"Dim replaceOn Error Resume NextWith OpenLog 'CommonDialog 控件. Flags = cdlOFNHideReadOnly Or cdlOFNExplorer. CancelError = True '从用户处获得记录文件名称. DialogTitle = "打开记录文件". Filter = "文件格式1 ( 3 . LOG) | 3 . log| 文件格式2 ( 3 . txt) | 3 . txt| 文件格式3 ( 3 . 3 ) | 3 . 3 "End WithDoOpenLog. FileName = ""OpenLog. ShowOpenIf Err = cdlCancel Then Exit SubTemp = OpenLog. FileName'如果文件已经存在, 询问用户是否希望覆盖此文件或在此文件基础上添加内容Ret = Len (Dir $( Temp) )If Err ThenMsgBox Error $, 48Exit SubEnd IfIf Ret Thenreplace = MsgBox("代替存在的- "+ Temp +"吗", 35)Elsereplace = 0End IfLoop While replace = 2'用户单击"确定"按钮, 则删除此文件If replace = 6 ThenKill TempIf Err ThenMsgBox Error $, 48Exit SubEnd IfEnd If'打开记录文件hLogFile = FreeFileOpen Temp For Binary Access Write As hLogFileIf Err ThenMsgBox Error $, 48Close hLogFilehLogFile = 0Exit SubElse'到文件结尾处来添加新数据Seek hLogFile , LOF(hLogFile) + 1End IfEnd SubPrivate Sub mnuCloseLog - Click()'执行"关闭记录文件"Close hLogFilehLogFile = 0End Sub2. 4 回放GPS 数据GPS 数据的回放,是将存有GPS 信息的文件打开,并重新读取,显示其信息的过程.它包括一个打开过程和一个播放过程.具体实现代码如下(要用到前面给出的模块中的方法) :Private Sub mnuOpenBFile - Click()'读取存有GPS 信息的回放文件Dim sFile As StringDim SentenceOn Error GoTo errorhandleWith OpenBFile'从用户处获得回放文件名称. DialogTitle = "打开回放文件". Filter = "文件格式1 ( 3 . LOG) | 3 . log| 文件格式2 ( 3 . txt) | 3 . txt| 文件格式3 ( 3 . 3 ) | 3 . 3 ". ShowOpenIf Len( . FileName) = 0 ThenExit SubEnd IfsFile = . FileNameEnd WithOpen sFile For Input As # 1sCnt = 0Do While Not EOF (1)Line Input # 1 , SentenceReDim Preserve sArray(sCnt)sArray(sCnt) = SentencesCnt = sCnt + 1LoopClose # 1Exit Suberrorhandle :Close # 1MsgBox"打开文件错误!"End SubPrivate Sub mnuPlayBFile - Click()'播放GPS 记录文件Call playNMEA(sArray)End Sub3 结论通过对GPS 通讯NMEA 协议的分析,以RMC 语句的"$GPRMC"串为例,给出了开发GPS 数据处理的方法.该方法具有简单,高效,实用的特点.需要说明的是,用RMC 语句不能读取高程数据,如果要在应用中读取高程数据, 可应用文中的方法, 再编写一个读GGA 语句("$GPGGA"串) 的类,其中第9 个数据段就是高程信息.。
利用VB实现手持GPS航点航线输入
第32卷 第1期物探化探计算技术2010年1月收稿日期:2009-06-08 改回日期:2009-11-10文章编号:1001 1749(2010)01 0099 05利用VB 实现手持GPS 航点航线输入蔡足根,陆柏树(湖北省水文地质工程地质勘察院,湖北荆州 434100)摘 要:手持GPS 是目前地质工作中常用的工具,它具有导航方便,高精度,高效率等特点,已赢得广大地质工作者的热爱。
但GPS 航点航线的输入工作一般是采用手工方式完成,对于大量坐标数据的输入是一个相当繁琐的工作,且容易出错,这样大大限制了GPS 的应用。
为了解决这个问题,这里利用VB 成功地实现了坐标投影转换和批量数据输入GPS,极大地提高了室内和野外工作效率。
关键词:手持GPS;批量数据输入;坐标投影转换中图分类号:TP 312 文献标识码:A0 前言手持GPS 是目前地质工作中常用的工具,但由于其坐标投影格式和数据输入的问题,给大多数地质工作者带来了一定的困惑和苦恼。
对于要求出二个坐标系之间的转换参数,需要进行大量而复杂的计算工作,如果利用手工的计算方法,既费时又费力,而且计算精度也相对较低。
对于大量坐标数据的手工输入,更是一个相当繁琐的工作,且输入的数据出错率较高。
要实现坐标数据的高效转换和快速传输,可以利用多种编程语言来编写软件,解决坐标数据自动化转换和自动化传输的问题。
由于V isua lBasic 是W i n do w s 操作系统下一种面向用户的编程语言。
它沿用了一些标准Basic 的函数和编程风格,同时又有许多新的函数适合于W i n do w s 操作系统使用。
采用VB (V isual Basic)编写的软件,编译后具有很强的独立性和可移植性,V isual Basi c 6.0目前也是众多流行的编程软件之一。
根据作者多年工作经验和总结,成功地利用VB 解决了坐标投影转换和批量数据输入手持GPS的问题。
该方法简单实用,可以在物化探和地质测绘,特别是在中小比例尺放样中得到广泛使用。
坐标点提取vba
坐标点提取vbaVBA(Visual Basic for Applications)是一种用于编写Microsoft Office应用程序的编程语言,在Excel中使用VBA可以进行自动化操作、数据处理、图表生成等。
在VBA中,可以使用坐标点提取来定位并读取或修改特定单元格的内容。
坐标点提取功能在Excel中非常有用,特别是当我们处理大量数据或需要进行批量操作时。
下面是使用VBA进行坐标点提取的方法:1.打开Excel,按下ALT+F11键调出VBA编辑器。
2.在VBA编辑器中,双击要操作的工作簿,然后插入一个新的模块。
3.在模块中编写VBA代码。
首先,定义一个变量来存储工作表对象:```vbaDim ws As WorksheetSet ws = ThisWorkbook.Sheets("Sheet1") '将Sheet1替换为目标工作表的名称```4.定义一个变量来存储要提取的坐标点的范围,例如A1:C10:```vbaDim rng As RangeSet rng = ws.Range("A1:C10")```5.使用For Each循环遍历范围中的每个单元格,并提取坐标点及其内容:```vbaDim cell As RangeFor Each cell In rngDebug.Print cell.Address & ": " & cell.ValueNext cell```这段代码会在输出窗口中显示每个单元格的坐标及其内容。
如果你希望将提取的坐标点及其内容存储到一个数组中,可以使用以下代码:```vbaDim values() As VariantReDim values(1 To rng.Rows.Count, 1 To rng.Columns.Count) Dim i As Long, j As Longi = 1For Each cell In rngvalues(i, j) = cell.Valuej = j + 1If j > rng.Columns.Count Thenj = 1i = i + 1End IfNext cell```这段代码将提取的内容存储到名为values的二维数组中。
VB实现全球定位系统GPS数据的获取
VB实现全球定位系统GPS数据的获取李雪梅(湖北省第二测绘院)摘要:本文简述了GPS全球定位系统的数据格式,提出了一种在VB下实现对GPS定位信息的接受以及对各定位参数数据提取的方法。
关键词:GPS;定位信息;VB;数据提取0、引言卫星导航技术的飞速发展已逐渐取代了无线电导航、天文导航等传统导航技术,而成为一种普遍采用的导航定位技术,并在精度、实时性、全天候等方面取得了长足进步。
现不仅应用于汽车导航定位、电离层测量和自然灾害遥感实时监测等诸多民用领域,在军事领域更是取得了广泛的应用——在弹道导弹、野战指挥系统、精确弹道测量以及军用地图快速测绘等领域均大量采用了卫星导航定位技术。
鉴于卫星导航技术在民用和军事领域的重要意义,使其得到了许多国家的关注。
我国也于2000年 10月31日和12月21日成功发射了第一颗和第二颗导航定位试验卫星并建立了我国第一代卫星导航定位系统——“北斗导航系统”。
目前在我国应用最多的是美国的GPS系统。
本文针对当前应用较多的GPS系统,对其卫星定位信息的接收及其定位参数提取的实现方法予以介绍。
1、GPS数据格式GPS卫星全球定位系统,包括下列三大部分:GPS卫星星座(空间部分);地面监控系统(地面控制部分);GPS信号接收机(用户设备部分)。
通常GPS定位信息接收系统主要由GPS接收天线、变频器、信号通道、微处理器、存储器以及电源等部分组成。
GPS与电脑通信时,通过串口每秒钟发送10条数据。
实际导航应用读取GPS的空间定位数据时,可以根据需要每隔几秒钟更新一次经纬度和时间数据,不必频繁地更新数据。
NMEA0183协议是美国国家海洋电子协会(National Marine Electronlcs Association)制定的GPS接口协议标准。
NMEA0183定义了若干代表不同含义的语句,每个语句实际上是一个ASCII码串。
这种码直观,易于识别和应用。
在实际应用中,不需要了解NMEA0183通信协议的全部信息,仅需要从中挑选出需要的那部分定位数据,其余的信息忽略掉。
利用VISUAL BASIC 6.0开发GPS导航定位软件
利用VISUAL BASIC 6.0开发GPS导航定位软件
吴敬文;赵昕
【期刊名称】《现代测绘》
【年(卷),期】2005(000)0S1
【摘要】在我们的水文测量定位及其它测量工作中,经常涉及到许多需要利用GPS 进行精确导航定位的工作。
鉴于商用GPS导航软件一般比较昂贵,若自己能利用VISUAL BASIC程序语言编制导航定位软件,我们就能更经济地完成我们的工作。
【总页数】3页(P)
【作者】吴敬文;赵昕
【作者单位】长江水利委员会长江口水文水资源勘测局;长江水利委员会水文局;江苏太仓;湖北武汉
【正文语种】中文
【中图分类】P228.4
【相关文献】
1.基于Visual Basic 6.0开发的数据采集系统软件 [J], 刘志杰;沈胜强
2.基于Visual Basic 6.0的含水层水文地质参数求取软件的开发及应用 [J], 张海涛;许光泉
3.基于Visual Basic 6.0的高温空气换热器热力参数计算软件的开发 [J], 曾蛟华;姜昌伟;童永清;姜建荣
4.基于Visual Basic 6.0的空气换热器计算软件的开发 [J], 曾蛟华;姜昌伟;童永清;
姜建荣
5.利用Visual Basic
6.0开发质量流量计数据采集软件 [J], 潘洪跃
因版权原因,仅展示原文概要,查看原文内容请购买。
VB语言下GPS导航数据的提取并在MapX控件中显示的实现
VB语言下GPS导航数据的提取并在MapX控件中显示的实现摘要:本文针对导航系统设计和开发过程中涉及到的GPS导航数据和MapX控件进行了介绍,并提出了利用VB语言进行定位信息的提取和在MapX 控件中显示的方法。
关键词:NMEA-0183;MapX;串口通讯;导航系统Abstract: In this paper, the GPS navigation data and the MapX controls involved in navigation system design and development process are introduced, and the methods of location information extraction with VB language and its display in the MapX controls.Keywords: NMEA-0183; MapX; serial communication; navigation system1前言随着社会经济的不断进步,科学水平的飞速发展,人们对类似车载GPS定位系统的位置服务也越来越关注。
GPS定位系统接收GPS卫星信号,并将解算的位置通过接口显示在电子地图上,就可以实现位置显示的基本定位功能。
在本文中,我们将探讨如何在VB语言条件下,通过MapX控件来提取和显示GPS定位信息,从而为进一步的GPS定位服务提供一个基础平台。
2 GPS导航数据格式与MapX控件介绍2.1GPS导航数据格式GPS导航数据主要是NMEA协议的数据,目前主要较新版本为NMEA-0183,它是美国国家海洋电子协会为统一海洋导航规范而制定的统一标准,该格式标准已经成为国际通用的一种格式[1]。
NMEA-0183格式数据串的所有数据都采用SASCII文本字符表示,数据传输以“$”开头,后面是语句头。
语句头由五个字母组成,分两部分,前两个字母表示“系统ID”,即表示该语句是属于何种系统或设备,后三个字母表示“语句ID”,表示该语句是关于何方面的数据。
用VB实现GPS信息处理
A 或 V表 示信号接收 状态 , 中A 表示数据 “ 其 0K” v表 ,
示 一 个 警 告
波 特 率 一 4 0 ; 奇 偶 校 验 ; 据 位 一8 停 止 位 一 1 80无 数 ;
12 N . ME 0 8 A 1 3报 文 格 式
0 5 4 示 UTC 4 时制 的标 准 时 间 , 式 为 “ 时 / 5 12表 2小 格 时 分 分/ 秒 ” 秒 。根 据 任 务 再 将 其 转 换
成 北 京 时 间
scain ,美 国 ) oi o ) ( t 国家 航 海 电子 协会 ; N E 1 3 G S接 收 机 和 其 他 航 海 电 子 产 品 的 导 航 M A0 8 为 P 数 据 输 出格 式 ) 并 且 这 些 GP , S提 供 串行 通 讯 接 口 。
NME 1 3协 议 报 文 的 字 符 串 ( C I 符 ) 式 全 部 A0 8 AS I 字 格 信息可如下表示 :
具 本 内容 为 : ¥串 头 , 示 串 开 始 表
X XX 串 头 X X
20 0 5 5 3为 UT 的 日期 , 式 为 “ 日/ 月 / 年 ” C 格 日 月 年 13地 磁 变 化 ( 偏 角 ) 从 0 0 0到 1 0 0度 . 磁 , 0. 8.
协 议 标 准 的基 础 上 , 讨 用 VB 实现 GP 探 S信 息处 理 的 方 法 及 程 序 实 现 。
关键词 : VB; S; M E GP N A 中图 分 类 号 : 2 8 4 P 2 . 文 献 标 识 码 : B
引 言
目 前 , P 已经 在 许 多 行 业 得 到 广 泛 应 用 , 就 如 何 将 G S 但 GP S有 关 信 息 读 入 计 算 机 以 便 进 一 步 处 理 和应 用 , 最 简 单 如 的 用计 算 机 实 时 显 示 、 储 G S信 息 , 存 P 用计 算 机 回放 已保 存 有 G S信 息 文 件 , 一 个 普 遍 关 注 的 问 题 , 本 人 在 编 写 G S软 P 就 我 I 件 时 , 遇 到 了同 样 的难 题 。经 研 究 G S通 讯 协 议 , 于 找 着 也 P 终 了用 串 口通 讯 处 理 GP S信 息 的方 法 。
GPS 数据获取
GPS 数据获取
从串口获取GPS信息
首先要保证设备安装了GPS天线。
并且能够正确显示GPS地理信息。
如果电脑使用USB转串口的话,应该保证驱动程序安装正确,并且能够检测到com口
然后启动设备,进入页面设置WEBMAX,在gps选项中勾选NMEA 具体设置如图
设置完成后重启设备并打开LOGGER日志文件,会显示NEMA设置成功。
然后关闭LOGGER程序,打开串口助手软件。
就可以从串口助手中读取相应的GPS信息了。
从网口获取GPS信息
用网线将MVG与PC相连接。
使用服务器端软件相应设置如下图:
图中NMEA SERVER 为安装了服务器软件的PC的IP地址,端口号为8080
GPS软件使用步骤
1、设置电脑ip地址为上面设置NMEA SERVER的ip地址。
2、打开软件,点击“启动服务器”,每隔3秒打印一次GPS数据信息。
利用VB6.0处理GPS数据
利用VB6.0处理GPS数据
姜玉林;杨保海
【期刊名称】《九江医学》
【年(卷),期】2005(020)004
【摘要】本文分析了GPS定位数据的数据格式及信息组成,阐述了利用VB6.0进行串行数据通讯的特点及实际应用,并给出了处理GPS定位数据的有关的源程序代码.
【总页数】4页(P7-10)
【作者】姜玉林;杨保海
【作者单位】九江学院电子工程学院,332005;九江学院电子工程学院,332005【正文语种】中文
【中图分类】TP33
【相关文献】
1.利用不同版本Solutions软件共同处理GPS数据的方法探讨 [J], 王绪龙
2.利用GAMIT/GLOBK软件进行高精度GPS数据处理 [J], 张明;徐杰
3.VC ++环境下利用MsChrt控件对GPS数据的处理 [J], 曲国伟;王英慧
4.利用MATLAB实时处理GPS数据 [J], 孙鹏;高金耀;张涛
5.利用VB
6.0开发的回弹法检测混凝土强度数据处理系统 [J], 韩锋
因版权原因,仅展示原文概要,查看原文内容请购买。
利用VB的MSComm控件实现GPS数据采集
利用VB的MSComm控件实现GPS数据采集张鹏武汉理工大学航运学院(430063)E-mail: xiaocilang2009@摘要:海事调查等活动需要对GPS接收机的数据进行处理和分析,这就要求把接收机的数据采集到计算机中。
本文以NAVMAN TRACKER 5600型GPS接收机为例,在Windows XP和VB 环境下实现了GPS数据采集。
关键词:GPS,MSComm控件,数据采集1.引言GPS(Global Positioning System),即全球定位系统,利用24颗GPS卫星的测距和测时功能进行全球定位,在许多系统中,如机场导航系统,出租车辆管理和调度系统、江河流域的灾害信息管理和预测系统、船舶航行定位系统中,GPS都得到了广泛而成功的应用。
尤其在航海界,船舶定位与导航、搜救指挥与决策、海事调查与分析等活动中都可以看到GPS的身影。
GPS数据的读取、显示、保存和回放是GPS应用和数据处理中非常重要的环节。
如果能把GPS数据采集到计算机中,那么利用Windows的编程优势,就可以对GPS数据进行更加复杂和多方面的处理,更大地发挥GPS的功能和应用潜力。
本文利用VB中的MSComm控件,并采用GPS的异步串行传送方式,将NAVMAN TRACKER 5600型GPS接收机按NMEA-0183协议输出的数据采集到了计算机。
实践证明,该方法简单易行,实用效果良好。
2.GPS接收机与计算机串口的硬件连接GPS接收机与计算机之间传输的数据为NMEA0183标准格式,采用串口通信协议为波特率4800bps,8个数据位,1个停止位,无奇偶校验。
GPS接收机与计算机之间采用串口异步通信方式,由于为近距离传输,连接方法采用最简单的零调制三线制[1],将GPS接收机的Power/Data Cable之Data Out端、Data In端、Ground端分别与计算机串口的接收端(DB9/pin2)、传输端(DB9/pin3)、信号接地(DB9/pin5)相连接(如图1所示)。
利用VB实现手持GPS航点航线输入
利用VB实现手持GPS航点航线输入
蔡足根;陆柏树
【期刊名称】《物探化探计算技术》
【年(卷),期】2010(032)001
【摘要】手持GPS是目前地质工作中常用的工具,它具有导航方便,高精度,高效率等特点,已赢得广大地质工作者的热爱.但GPS航点航线的输入工作一般是采用手工方式完成,对于大量坐标数据的输入是一个相当繁琐的工作,且容易出错,这样大大限制了GPS的应用.为了解决这个问题,这里利用VB成功地实现了坐标投影转换和批量数据输入GPS,极大地提高了室内和野外工作效率.
【总页数】5页(P99-103)
【作者】蔡足根;陆柏树
【作者单位】湖北省水文地质工程地质勘察院,湖北,荆州,434100;湖北省水文地质工程地质勘察院,湖北,荆州,434100
【正文语种】中文
【中图分类】TP312
【相关文献】
1.利用C语言实现手持GPS航点的批量输入 [J], 黄原春;吴剑
2.在VB中利用OLE技术实现数学公式的输入 [J], 李鹏
3.基于MAPSOURCE交换格式实现GPS航点批量输入 [J], 张艳军;韦库明
4.利用VB实现手持GPS成果坐标系转换的方法 [J], 宋顺安;陈怀争
5.基于MAPSOURCE交换格式实现GPS航点批量输入浅析 [J], 韩嘉莉;杨仙;赵焱
因版权原因,仅展示原文概要,查看原文内容请购买。
vb-net获取GPS定位
"." + ((Convert.ToDouble(lat(1)) /
60)).ToString("#####")
' Longitude
Dim dLon As Double =
Convert.ToDouble(lineArr(4))
dLon = dLon / 100
Dim lon() As String =
txtLong.Text = "COM Port Closed"
btnMapIt.Enabled = False
End If
End Sub
GPS信息输出格式:
GPGGA GPS固定数据输出语句($GPGGA)
这是一帧GPS定位的主要数据,也是使用最广的数据。
<9> 天线离海平面的高度,-9999.9到9999.9米
M 指单位米
<10> 大地水准面高度,-9999.9到9999.9米
M 指单位米
<11> 差分GPS数据期限(RTCM SC-104),最后设立RTCM传送的秒数量
<12> 差分参考基站标号,从0000到1023(首位0也将传送)。
dLat.ToString().Split(".")
Latitude = lineArr(3).ToString() +
lat(0).ToString() + _
Next
Catch
'do nothing
End Try
End If
Else
txtLat.Text = "COM Port Closed"
VB语言在GPS控制网数据处理中的应用
VB语言在GPS控制网数据处理中的应用
张红斌
【期刊名称】《物探装备》
【年(卷),期】2009(019)004
【摘要】GPS控制网平差数据处理后,各项技术指标往往还需要借助Excel的计算功能进行手工计算,费时且易出错.本文介绍了运用Visual Basic可视化语言对控制网报告进行程序化处理,最终得出评价控制网质量的五项技术指标,从而解决了困扰控制网处理员的烦琐手工计算的难题.
【总页数】7页(P256-261,265)
【作者】张红斌
【作者单位】江苏油田物探处,江苏扬州,225000
【正文语种】中文
【中图分类】TN96
【相关文献】
1.科研软件与商用软件在长江干流航道GPS测量控制网数据处理中的结果分析 [J], 李国祥;曾旭平;何传金
2.管线测量中GPS控制网布设及数据处理方法研究 [J], 何源
3.TEQC在GPS控制网数据处理中的应用 [J], 刘成;周江玲;黄富城;秦鹏飞
4.TEQC在GPS工程控制网数据处理中的应用 [J], 梁运忠
5.GPS控制网数据处理中的基线粗差探讨 [J], 冯卫军;高俊龙;蒋艳春;张代军;雒金泉;徐志强;于海飞
因版权原因,仅展示原文概要,查看原文内容请购买。
坐标点提取vba
坐标点提取vba标题:以坐标点提取VBA为题引言:在VBA编程中,坐标点的提取是一项常见且重要的任务。
通过使用VBA语言,我们可以轻松地提取坐标点,并在程序中进行进一步处理和分析。
本文将介绍如何使用VBA编写代码来实现坐标点的提取,以及一些常见的应用场景。
一、什么是坐标点提取?坐标点提取是指从给定的数据中提取出坐标点的过程。
在实际应用中,坐标点通常以(x, y)的形式表示,其中x和y分别代表水平和垂直方向上的位置。
通过提取坐标点,我们可以进一步分析和处理这些数据,以满足特定的需求。
二、VBA实现坐标点提取的基本步骤要实现坐标点的提取,我们可以按照以下步骤进行操作:1. 打开VBA编辑器:在Excel中按下Alt+F11,即可打开VBA编辑器窗口。
2. 创建一个新的模块:在VBA编辑器中,选择插入 -> 模块,即可创建一个新的模块。
3. 编写提取坐标点的代码:在新建的模块中,使用VBA语言编写代码来提取坐标点。
例如,可以使用循环结构遍历数据,并使用条件语句判断是否为坐标点。
4. 运行代码:在VBA编辑器中,点击运行 -> 运行主程序,即可运行代码并提取坐标点。
5. 处理和分析提取的坐标点:根据实际需求,对提取的坐标点进行进一步的处理和分析。
例如,可以计算坐标点之间的距离或角度,或者在图表中绘制这些坐标点。
三、坐标点提取的应用场景坐标点提取在实际应用中有着广泛的应用。
下面列举了一些常见的应用场景:1. 地理信息系统:在地理信息系统中,坐标点提取是一项基础工作。
通过提取地理数据中的坐标点,可以进行地图的绘制、路径规划等工作。
2. 数据可视化:在数据可视化中,坐标点提取是绘制图表和图形的基础。
通过提取数据中的坐标点,可以在图表中显示数据的分布和趋势。
3. 图像处理:在图像处理中,坐标点提取是一项关键任务。
通过提取图像中的坐标点,可以进行图像的分割、特征提取等处理。
4. 三维建模:在三维建模中,坐标点提取是创建三维模型的基础。
基于VB6.0的GPS卫星预报软件的设计与实现
基于VB6.0的GPS卫星预报软件的设计与实现
曾凡河;周晓卫;邓才华;刘正才
【期刊名称】《河南理工大学学报(自然科学版)》
【年(卷),期】2005(024)002
【摘要】根据GPS卫星预报原理,介绍了基于VB6.0的GPS卫星预报软件的设计方法以及在软件实现时的一些主要技术,以这种方法进行编程简单方便,将其预报结果与同类商业软件进行了比较,证实了该方法是可行的.
【总页数】4页(P148-151)
【作者】曾凡河;周晓卫;邓才华;刘正才
【作者单位】中南大学,测绘与国土信息工程系,湖南,长沙,410083;中南大学,测绘与国土信息工程系,湖南,长沙,410083;中南大学,测绘与国土信息工程系,湖南,长沙,410083;湘潭大学,土木工程与力学学院,湖南,湘潭,411105
【正文语种】中文
【中图分类】P228.4
【相关文献】
1.基于一阶差分修正指数曲线法的GPS卫星钟差预报 [J], 于烨;张慧君;李孝辉
2.基于Android的天气预报软件的设计与实现 [J], 王冬
3.基于MATLAB的GPS卫星预报软件设计 [J], 纪元法;孙希延;施浒立
4.基于GM(1,1)和MECM组合模型的GPS卫星钟差中短期预报 [J], 于烨;张慧君;李孝辉;肖波;陈婧亚
5.基于VB
6.0的排序算法动态演示软件的设计与实现 [J], 高向敏
因版权原因,仅展示原文概要,查看原文内容请购买。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
VB实现全球定位系统GPS数据的获取李雪梅(湖北省第二测绘院)摘要:本文简述了GPS全球定位系统的数据格式,提出了一种在VB下实现对GPS定位信息的接受以及对各定位参数数据提取的方法。
关键词:GPS;定位信息;VB;数据提取0、引言卫星导航技术的飞速发展已逐渐取代了无线电导航、天文导航等传统导航技术,而成为一种普遍采用的导航定位技术,并在精度、实时性、全天候等方面取得了长足进步。
现不仅应用于汽车导航定位、电离层测量和自然灾害遥感实时监测等诸多民用领域,在军事领域更是取得了广泛的应用——在弹道导弹、野战指挥系统、精确弹道测量以及军用地图快速测绘等领域均大量采用了卫星导航定位技术。
鉴于卫星导航技术在民用和军事领域的重要意义,使其得到了许多国家的关注。
我国也于2000年 10月31日和12月21日成功发射了第一颗和第二颗导航定位试验卫星并建立了我国第一代卫星导航定位系统——“北斗导航系统”。
目前在我国应用最多的是美国的GPS系统。
本文针对当前应用较多的GPS系统,对其卫星定位信息的接收及其定位参数提取的实现方法予以介绍。
1、GPS数据格式GPS卫星全球定位系统,包括下列三大部分:GPS卫星星座(空间部分);地面监控系统(地面控制部分);GPS信号接收机(用户设备部分)。
通常GPS定位信息接收系统主要由GPS接收天线、变频器、信号通道、微处理器、存储器以及电源等部分组成。
GPS与电脑通信时,通过串口每秒钟发送10条数据。
实际导航应用读取GPS的空间定位数据时,可以根据需要每隔几秒钟更新一次经纬度和时间数据,不必频繁地更新数据。
NMEA0183协议是美国国家海洋电子协会(National Marine Electronlcs Association)制定的GPS接口协议标准。
NMEA0183定义了若干代表不同含义的语句,每个语句实际上是一个ASCII码串。
这种码直观,易于识别和应用。
在实际应用中,不需要了解NMEA0183通信协议的全部信息,仅需要从中挑选出需要的那部分定位数据,其余的信息忽略掉。
同其他通讯协议类似,对GPS进行信息提取必须首先明确其帧结构,然后才能根据其结构完成对各定位信息的提取。
对于本文所使用GARMIN GPS天线板,其发送到计算机的数据主要由帧头、帧尾和帧内数据组成,根据数据帧的不同,帧头也不相同,主要有“$GPGGA”、“$GPGSA”、“$ GPGSV”以及“$GPRMC”等。
这些帧头标识了后续帧内数据的组成结构,各帧均以回车符和换行符作为帧尾标识一帧的结束。
“$GPGGA”是GPS定位数据语句,“$ GPGSV”是可视卫星状态输出语句,“$GPGSA”是当前卫星信息语句,“$GPRMC”是推荐定位信息语句。
如果和卫星通信正常,可以接收到的数据格式如下:$GPGGA,<l>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,M,<10>,M,<11>,<12>*hh<cR><LF>。
其具体信息如下表所列:数据位数据内容$GPGGA 接受GPS语句的起始符,域分隔符<l> UTC时间,小时/分钟/秒(hhmmss.sss)格式<2> 纬度,格式为ddmm.mmmm(第一位是零也将传送)<3> 纬度方向N或S,N表示北纬,S表示南纬<4> 经度,格式为ddmm.mmmm(第一位是零也将传送)<5> 经度方向E或W,E表示东经,W表示西经<6> GPS状态提示,0=未定位,1=无差分定位信息,2=带差分定位信息<7> 使用卫星号,最多可接受12颗卫星信息<8> 水平精确度,从0.5到99.9<9> 海平面的高度M 单位:米<10> 大地水准面高度<11> 差分GPS数据信息<12> 差分参考基站编号,从0000到1023(首位0也将传送)*hh 从$开始到*之间的所有ASCII码的异或校验和<cR><LF> 终止位2、定位信息的接收由于GPS定位信息内容较少,因此多用RS-232串口将定位信息(NEMA0183语句)从GPS 接收机传送到计算机中进行信息提取处理。
每个Pocket PC都配有一个串行端口,以便Pocket PC与外部串行设备之间进行通信。
串行端口的本质功能是作为芯片和串行设备之间的编码转换器。
当数据从芯片经过串行端口发送出去时,字节数据被转换为串行的位。
在接收数据时,串行的位将被转换为字节数据。
Windows CE使用了通信驱动程序Comm.drv(驱动程序通常由串口设备制造商提供,以便将硬件与Windows CE连接),以便使用标准的Windows API函数发送和接收数据。
从串口读取数据有多种方法,在此直接使用 Win32 API函数对其进行编程处理。
在Windows下不允许直接对硬件端口进行控制操作,所有的端口均被视为“文件”,因此在对串口进行侦听之前需要通过打开文件来打开串口,并对其进行相关参数配置。
本文在程序设计中,模拟了一个COM9串口。
先使用Comm9.PortOpen打开串口,设置MSComm控件的属性,Timer触发OnComm接收GPS信号的事件,实现GPS信号的实时接收。
GPS提供串行通信接口,串行通信参数为:波特率=4800bps,数据位=8位,开始位=1位,停止位=1位,无奇偶校验。
在成功打开并设置通讯串口后,可采取轮询串口和事件驱动两种方式对数据进行接收处理。
轮询串口方式,即在用户程序中设计定时或不定时查询MSComm控件的某些属性是否发生变化,从而确定相应处理。
事件驱动方式,相当于一般程序设计中的中断方式,即当串口发生事件时,MSComm控件会产生OnComm事件,用户程序可以捕获该事件进行相应处理。
本文程序设计中采取效率比较高的事件驱动方式进行接收处理。
程序设计中通过等待mEvent = comEvReceive 来启动函数ParseGPS_GPGGA 完成对GPS定位信息的接收。
If mEvent = comEvReceive Thenval = MSComm1.InputIf Asc(val) = 10 Or Asc(val) = 13 ThenIf Mid(MSComm1.Tag, 1, 6) = "$GPGGA" ThenParseGPS_GPGGA MSComm1.TagEnd IfEnd ifEnd if3、提取定位数据GPS接收机只要处于工作状态就会源源不断地把接收并计算出的GPS导航定位信息通过串口传送到计算机中。
前面的代码只负责从串口接收数据并将其放置于缓存,在没有进一步处理之前缓存中是一长串字节流,这些信息在没有经过分类提取之前是无法加以利用的。
因此,必须通过程序将各个字段的信息从缓存字节流中提取出来,将其转化成有实际意义的,可供用户决策使用的定位信息数据。
根据前面介绍的GPS定位数据帧结构,完成对各定位信息的提取。
一般需要提取的信息是经纬度、经纬度方向、海平面的高度、GPS定位状态和接收信号的时间。
由于帧内各数据段由逗号分割,因此在处理缓存数据时一般是通过搜寻ASCII码"$"来判断是否是帧头,在对帧头的类别进行识别后,从起始符开始读入数据,再通过异或校验后的语句中寻找字符“,”,然后截取前后两个“,”之间的字符(串)获得所关心的数据,通过对所经历逗号个数的计数来判断出当前正在处理的是哪一种定位导航参数,并作出相应的处理。
最后以回车符为一个GPS语句的终止符,得到一个完整的GPS信号。
下面就是对缓存sLine中的数据进行解帧处理的主要代码,本程序设计了GetToken函数来提取两个逗号之间的字符串。
If Mid(sLine, 1, 9) <> "$GPGGA,,," Then '' 判断帧头为$GPGGA语句是否正常接受信号 sLine = GetToken(sLine, 1, "*") ''去掉检查位utc_time = GetToken(sLine, 2, ",") '' 提取出UTC时间lat_deg_nmea = GetToken(sLine, 3, ",") '' 提取出纬度lat_dir = GetToken(sLine, 4, ",") '' 提取出纬度方向,lon_deg_nmea = GetToken(sLine, 5, ",") '' 提取出经度lon_dir = GetToken(sLine, 6, ",") '' 提取出经度方向num_sat = GetToken(sLine, 8, ",") '' 提取出使用卫星号altitude = GetToken(sLine, 10, ",") ''提取出海平面的高度End if现在已将所需信息提取到内存,即时间、经纬度以及海平面高度分别保存在变量utc_time、lat_deg_nmea、lon_deg_nmea和altitude中。
在实际应用中往往要根据需要对其做进一步的运算处理,比如从 GPS接收机中获得的时间信息为格林尼治时间,因此需要在获取时间上加8小时才为我国标准时间。
而且GPS使用的WGS-84坐标系也与我国采用的坐标系不同,有时也要对此加以变换。
而这些变换运算必须通过数值运算完成,因此需要将前面获取的字符型变量转化为数值型变量,这部分工作在下一步完成:Function nmeadegrees2d_m_s(degrees_nmea As Double, direction As String)Dim dd, mm, ss As DoubleIf direction = "N" Or direction = "S" Then '判断是否纬度dd = Mid(degrees_nmea, 1, 2) '提取出度数mm = Mid(degrees_nmea, 3, 2) '提取出分数ss = Round(("0." & Mid(degrees_nmea, 6)) * 60, 4) '提取出秒数Else '判断是否经度If degrees_nmea < 10000 Then '判断经度是否超过90度dd = Mid(degrees_nmea, 1, 2) '提取出度数mm = Mid(degrees_nmea, 3, 2) '提取出分数ss = Round(("0." & Mid(degrees_nmea, 6)) * 60, 4) '提取出分数Elsedd = Mid(degrees_nmea, 1, 3)mm = Mid(degrees_nmea, 4, 2)ss = Round(("0." & Mid(degrees_nmea, 7)) * 60, 4)End IfEnd IfIf direction = "S" Or direction = "W" Then '判断东西经度和南北纬度dd = dd * -1End Ifnmeadegrees2d_m_s = dd & "°" & mm & "′" & ss & "″"End Function时间获取处理方法同上。