- 1、本文档共24页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
怎样写一个GPS应用程序
怎样写一个GPS应用程序——介绍原文:How to Write a GPS Application - Introduction作者:Jon Person?? 翻译:YuL
需要什么样的GPS应用程序才能满足商业级的要求呢,像安装在车里的导航器一样?而且,GPS数据是怎么被解释,从而应用于实际工作中的呢?在这两部分里,我将和大家一起探讨这两个问题,并且给你编写商业级GPS应用程序必要的技巧,让专业的GPS设备能够更好的为你所用。一句重要的语句第一部分将探讨描述GPS原始数据的工作。实际上这个工作已经被国家舰船电子协会(下面简称NMEA,)给简化了许多,该网站介 绍了一个正广泛应用于GPS主流设备的工业标准。为了给广大的开发人员一个良好的开端,我选择使用的一些VS.NET的源代码来自我的“GPS.NET Global Position SDK”组件。(为了简短这些代码,我去掉了诸如多线程和错误处理的部分。)NMEA数据通过一个“逗号分隔的语句”来传递,这个语句包含的信息都基于语句的第一个单词。这里有五十种以上类型的语句,不过真正的一个描述仅仅需要处理少量的采集数据。最终常用的NMEA语句是“推荐最小”语句,它以“$GPRMC.”开头。这里有个一例子:$GPRMC,040302.663,A,3939.7,N,10506.6,W,0.27,358.86,200804,,*1A这条语句基本上包含了GPS应用程序所需的全部数据:纬度、经度、速度、方向、卫星时间、状态以及磁场变量。第一步就是要写一个方法来解释NMEA数据,这个方法需要完成两件事:将每条语句分解为独立的单词,和检查首单词是否有效。清单 1-1 就是这个描述类的开始部分。清单 1-1:一个NMEA描述的核心功能是将NMEA语句分解成单个的单词。**? Listing 1-1.? The core of an NMEA interpreter*******************************************************Public Class NmeaInterpreter? 处理来自GPS接收器的信息? Public Function Parse(ByVal sentence As String) As Boolean??? 将语句分解为单词??? Dim Words() As String = GetWords(sentence)??? 通过匹配首单词来决定下一步的工作??? Select Case Words(0)????? Case $GPRMC????? 一条“推荐最小”的语句被找到!??????? 标示这条语句为可用??????? Return True????? Case Else??????? 标示这条语句为不可用??????? Return False??? End Select? End Function? 将语句分解为单词? Public Function GetWords(ByVal sentence As String) As String()??? Return sentence.Split(,c)? End FunctionEnd Class接下来一步就是要分析提取出来的信息了,让我们从纬度和经度开始吧。纬度和经度存储格式为“DDD°MM’SS.S,”,其中D表示时(也可以叫 “度”),M表示分,S表示秒。坐标可以简单表示为“DD°MM.M’”或者直接就表示为“DD°.”语句中第四个单词(“3939.7,”)以度和分的 形式表示当前的纬度为39°39.7’。头两个字符(39)表示度,余下的部分(39.7)表示分。经度和纬度是相同的结构,从这个语句来看要注意,头三 个字符表示经度的度(105°06.6’)。第五和第七个单词标示“半球”,其中“N”代表“北半球”,“W”代表“西经”。半球信息放在数字部分后面组 成完整的测量信息。我还发现NMEA描述在事件驱动下使工作更容易完成。这是因为并不是按照特定的顺序来获取数据。一个事件驱动类为一应用程序给出了它最具灵活性和响应性的 描述。因此,我也将使用事件来设计描述,从而获取信息。PositionReceived是第一个事件,它将记录当前获得的纬度和经度。清单 1-2 扩展这个描述器,来报告当前位置。清单 1-2:这个描述器可以报告当前的纬度和经度。******************************************************* *************? 清单 1-2. 从语句中提取信息? *********************
文档评论(0)