Windows mobile 在WinMobile Phone中访问GPS功能

Windows mobile 在WinMobile Phone中访问GPS功能,windows-mobile,gps,Windows Mobile,Gps,假设您有一部Windows Mobile 6.0手机,它还带有GPS接收器。WinMobile SDK是否支持访问GPS功能 如果没有,使用GPS编程的选项(API)是什么,即编写将使用GPS功能的应用程序。我主要对WindowsMobile6.x感兴趣,但也请包括一般回复 我一定会投票选出最有帮助的答案 提前谢谢 如果您计划在.NET Compact Framework中开发,Windows Mobile Developer示例中有一个相当广泛的GPS示例。这基本上利用了围绕gpsapi.dl

假设您有一部Windows Mobile 6.0手机,它还带有GPS接收器。WinMobile SDK是否支持访问GPS功能

如果没有,使用GPS编程的选项(API)是什么,即编写将使用GPS功能的应用程序。我主要对WindowsMobile6.x感兴趣,但也请包括一般回复

我一定会投票选出最有帮助的答案


提前谢谢

如果您计划在.NET Compact Framework中开发,Windows Mobile Developer示例中有一个相当广泛的GPS示例。这基本上利用了围绕gpsapi.dll的包装,但它显示了工作原理。 我已经在C:\Program Files\Windows Mobile 6 SDK中安装了WM6工具包,然后GPS样本在C:\Program Files\Windows Mobile 6 SDK\Samples\PocketPC\CS\GPS中

祝你好运

有两种选择:

  • 有一个中间的GPS驱动程序,它在MSDN上有一个
  • 您可以连接到串行端口(当然可以在UI中配置)并自己解析NMEA字符串

  • 选项(1)可能是可取的

    克里斯·克拉夫特(Chris Craft)在其《30天的.NET Windows Mobile应用程序》系列中提供了大量此类应用程序的源代码

    • 第1周-包括GPS罗盘
    • 第3周-包括GPS速度表和GPS高度表
    • 第4周-包括GPS时钟
    遗憾的是,这个博客系列似乎已经消亡,但谢天谢地,代码仍保留在Codeplex上:

    和一个端口到C和一些讨论周围的一些原始的职位可以找到

    在他的博客上还有一些关于使用中间GPS驱动程序的说明


    编辑以添加:

    GPS.NET最近已成为开放源代码,现在可在CodePlex上获得:


    试着看看上面的一些解决方案。有很多关于Windows Mobile和GPS的非常好的文章。

    以及用于测试使用中间驱动程序的代码的文章(请参阅其他答案),不要忘记SDK中的FakeGPS实用程序,您可以使用它将存储在文件中的NMEA流通过此中间驱动程序传输,这样您就可以轻松地在该位置数据上测试GPS软件,而无需实际接收GPS信号并开始移动。

    在我看来,读取串行端口要容易得多(在我的例子中是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并使用其接收的事件数据。无论何时数据来自GPS,都会发生此事件,您可以在其主体中处理它

    数据的格式是一个长字符串,分为$GPGGA、$GPGSA等部分。重要的是$GPGGA。每个特定的信息都用逗号分隔。在VB.net中,您只需使用:myArray=myData.Split(“,”c)解析这个字符串

    PS:“,”c表示逗号是字符,而不是字符串(VB.NET)

    正如您所看到的,只需编写几行代码是不必要的。MS的示例是不必要的困难,不适合初学者

    PS2:请注意,您不向GPS发送任何命令。它会自动定期向您的程序发送数据。您只需打开端口,从缓冲区读取所有数据,使用Chr()将其转换为字符串并对其进行解析。这没什么大不了的。

    Wigley/Moth/Foot()的《移动开发手册》包括.NET Compact Framework更高版本示例代码的变体,该版本改进了互操作支持。