假设您有一台同时配备GPS接收器的Windows Mobile 6.0手机。 WinMobile SDK是否支持访问GPS功能?
如果没有,使用GPS进行编程的选项(API)是什么,即使用GPS功能编写应用程序。我主要对Windows Mobile 6.x感兴趣,但也请包括通用回复。
我一定会投票给出最有帮助的答案。
提前致谢。
答案 0 :(得分:6)
两个选项:
选项(1)可能是可取的
答案 1 :(得分:5)
Chris Craft在他的系列 30天.NET Windows移动应用程序
中有很多这方面的源代码可悲的是,这个博客系列似乎已经死了,但幸好代码保存在Codeplex上:
可以在/dev/mobile上找到C的端口和一些原始帖子的讨论
在Raffaele Limosani的博客上使用中级GPS驱动程序还有一些注意事项
编辑添加:
GPS.NET最近已成为开源软件,现在可在CodePlex上使用:
答案 2 :(得分:3)
如果您计划在.NET Compact Framework中进行开发,那么Windows Mobile Developer Samples中有一个相当广泛的GPS示例。这基本上是利用gpsapi.dll周围的包裹,但它显示了作品。 我已经在C:\ Program Files \ Windows Mobile 6 SDK中安装了WM6套件,然后GPS示例在C:\ Program Files \ Windows Mobile 6 SDK \ Samples \ PocketPC \ CS \ GPS
祝你好运!答案 3 :(得分:2)
尝试查看CodeProject.com上的一些解决方案。有很多关于Windows Mobile和GPS的非常好的文章。
答案 4 :(得分:1)
为了测试使用中间驱动程序的代码(请参阅其他答案),请不要忘记SDK中的FakeGPS实用程序,您可以使用该实用程序通过此中间驱动程序管理存储在文件中的NMEA流,以便您轻松测试该位置数据上的GPS软件实际上无需接收GPS并开始四处移动。
答案 5 :(得分:0)
从我的观点来看,读取串口(在我的情况下是COM5,波特率4800)和解析收到的数据要容易得多。 (如何解析字符串可以通过谷歌和短语:gps NMEA句子找到)
对我来说,无法理解地址上的例子:
C:\Program Files\Windows Mobile 6 SDK\Samples\PocketPC\CS\GPS
这一切都是如此复杂和不直观。我期待更简单和有用的界面,如:
myGps = new GPS()
myGPS.getPosition
但这可能不可能:(
如何通过RS232进行操作?(我在VB.NET中工作)
在GUI(或以编程方式)创建对象System.IO.Ports.SerialPort并使用其事件DataReceived。每当数据来自GPS时,就会发生这种事件,并且在它的身体中你可以处理它。
数据的格式为loooong字符串,分为$ GPGGA,$ GPGSA等部分。重要的是$ GPGGA。每个特定信息由逗号分隔。比你只解析这个字符串 - 在VB.net中使用:myArray = myData.Split(“,”c)。
PS:“,”“c”表示逗号为Char,而不是String(VB.NET)
正如您所看到的,不需要编写多行代码。 MS的例子是不必要的困难,不适合初学者。
PS2:请注意,您不向GPS发送任何命令。它会自动并定期向您的程序发送数据。你只需打开端口,从缓冲区读取所有数据,使用Chr()将其转换为字符串并解析它。没什么大不了的。