在 WM 平台上开发 GPS 导航系统
2010-02-21 22:52:00 来源:WEB开发网18 ' Indicate that the sentence was not recognized
19 Return False
20 End Select
21 End Function
22 ' Divides a sentence into individual words
23 Public Function GetWords(ByVal sentence As String) As String()
24 Return sentence.Split(","c)
25 End Function
26 End Class
27
下一步是执行实际信息的提取,首先是经度和纬度。纬度和经度以“DDD°MM’SS.S”的形式存储,其中D代表小时(也称为“度”),M代表分钟,S代表秒。坐标可以在速记上显示,如“DD°MM.M’” 甚至是 “DD°”。这句话的第四个单词“3939.7”,显示了当前的纬度为小时和分钟(39 ° 39.7')。前两个字符(39)代表小时,这个词其余部分(39.7)代表分钟。经度和纬度有相同的结构方式,除了前三个字符代表小时(105 ° 06.6')。关键词5和7表明“半球”,其中“N”是指“北”,“W”是指“西”等。半球附加到数字的末尾部分,做一个完整的测量。我发现 NMEA解析器 正像是事件驱动一样更容易协作。这是因为数据的到达没有特定的顺序。事件驱动类给应用程序的解析器最大的灵活性和响应能力。因此,我将设计解析器用来报告信息使用事件。第一个事件,PositionReceived,将会被凸起 只要目前的经度和纬度被收到。列表1-2扩大解析器用以记录目前的情况。
代码片段:
1 '*******************************************************
2
3 '** Listing 1-2. Extracting information from a sentence
4
5 '*******************************************************
6
7 Public Class NmeaInterpreter
8 ' Raised when the current location has changed
9 Public Event PositionReceived(ByVal latitude As String, _
10 ByVal longitude As String)
11 ' Processes information from the GPS receiver
12 Public Function Parse(ByVal sentence As String) As Boolean
13 ' Look at the first word to decide where to go next
14 Select Case GetWords(sentence)(0)
15 Case "$GPRMC" ' A "Recommended Minimum" sentence was found!
- ››开发Android 日历教程
- ››开发学院总结 Win 8实用技巧大全
- ››开发学院原创教程:把win8的IE10放桌面上方法(非...
- ››开发者眼中的Windows Phone和Android
- ››开发学院教你用SQL 语句最快速清空MySQL 数据表的...
- ››WM 无法连接到win 7及webservice的异类原因
- ››开发一个自己的HTML在线编辑器(一)
- ››开发一个自己的HTML在线编辑器(二)
- ››开发者在App Store上赚的钱比在Android Market上多...
- ››开发者应深入学习的10个Android开源应用项目
- ››WM/WP上最完美的背光控制软件
- ››WM性能优化的一些经验
更多精彩
赞助商链接