有没有人有任何经验编程地从连接到移动PC的GPS获取纬度/经度?我正在开发一个团队,目前正在寻找硬件选项 - 作为程序员,他最终必须与所选的任何东西一起生活,我想知道有没有人有过编写与GPS接口的.Net程序的经验?任何关于硬件和/或编程的推荐都将不胜感激。按照我的设想,我的应用程序需要向GPS询问当前的经纬度,也许每10到20秒钟一次。从.Net Winform应用程序访问GPS数据
回答
我以前写过这样的应用程序。
正如亨克所说,你在一个COM端口上监听。构建一个读取com流的组件,例如1024缓冲区。那将足以包含至少1个完整的NMEA句子。从那里开始,阅读输入内容,直到找到句子的开头并对其进行解析。如果由于某种原因您没有完整的句子,请阅读另一个缓冲区,追加并继续/再次尝试。
虽然NMEA是纯ASCII,但我仍然建议将TextReader附加到Serialport的流并使用ReadLine()。 – 2009-11-17 22:42:07
如果您愿意依赖于Windows 7,则会有一个Location API为您处理NMEA解码。
如果Gps集成在您的Windows CE PC或Windows Mobile手机中,您可以简单地使用GPS中间驱动程序来获取信息。 由于您处于.net环境中,因此可以为此本机API创建.Net包装器。
public class GpsHardware
{
private const string gpsLibraryName = "gpsapi.dll";
private const string coreLibraryName = "coredll.dll";
[DllImport(GpsHardware.coreLibraryName, SetLastError = false)]
[return: MarshalAs(UnmanagedType.Bool)]
private static extern bool EventModify(IntPtr hEvent, uint function);
[DllImport(GpsHardware.gpsLibraryName, SetLastError = true, CharSet = CharSet.Unicode)]
private static extern IntPtr GPSOpenDevice(IntPtr hNewLocationData, IntPtr hDeviceStateChange, string szDeviceName, uint dwFlags);
[DllImport(GpsHardware.gpsLibraryName, SetLastError = true)]
private static extern uint GPSCloseDevice(IntPtr hGPSDevice);
[DllImport(GpsHardware.gpsLibraryName, SetLastError = true)]
private static extern uint GPSGetPosition(IntPtr hGPSDevice, IntPtr pGPSPosition, uint dwMaximumAge, uint dwFlags);
[DllImport(GpsHardware.gpsLibraryName, SetLastError = true)]
private static extern uint GPSGetDeviceState(IntPtr pGPSDevice);
...
}
当然,你将不得不处理编组和所有伟大的互操作的事情:)
或者您可以在SDK \\ Samples fiolder中使用Interop包装器。 – 2009-11-18 23:06:40
- 1. 通过NDK应用程序访问GPS
- 2. 从.NET应用程序Android数据库访问
- 3. 从应用程序访问IndoorAtlas数据
- 4. 从托管WinForm应用程序访问WPF控件
- 5. .Net - 从多种设备访问GPS数据
- 6. 在.net中winform应用程序
- 7. Protovis和.net winform应用程序
- 8. 访问runtastic应用程序数据
- 9. Android应用程序数据访问?
- 10. DLL访问应用程序的数据
- 11. 访问应用程序数据
- 12. .NET应用程序试图访问crl.verisign.net
- 13. 访问.net应用程序GUI
- 14. 从网站访问手机GPS数据
- 15. 应用程序x1无法访问应用程序x2数据
- 16. 从C#.Net中的多个数据源读取Winform应用程序
- 17. 访问应用程序数据空间
- 18. Winform应用程序/ ASP.NET应用程序与SAP数据库的连接
- 19. 从Windows访问基于Web的MySQL数据库/服务器.net应用程序
- 20. C#.NET中的解决问题Winform应用程序
- 21. 使用C#访问GPS数据?
- 22. 如何从Jquery Mobile应用程序访问远程数据库?
- 23. 如何从iPhone应用程序访问远程MySql数据库
- 24. 从Windows 8应用程序访问远程MySQL数据库
- 25. 从iPhone应用程序远程访问SQL数据库
- 26. 从另一个应用程序访问一个应用程序的数据库
- 27. 如何编程访问可用的数据类型在.NET应用程序
- 28. 在Web应用程序中访问Android设备的GPS
- 29. 从共享(UNC路径)运行.Net 4.0 Winform应用程序
- 30. 用于.Net/C#的GPS驱动程序,用于从任何支持NMEA的GPS单元获取GPS数据
你是说这将是连接到一台笔记本电脑(而不是移动设备与GPS)一个GPS – HitLikeAHammer 2009-11-17 22:39:38
那是正确的。平板电脑是确切的。 – Jeff 2009-11-23 14:30:59
感谢所有的反馈意见。我会给所有回覆赞成的人。稍后当我开始编码时,我会回来给我最喜欢的选择回答。再次感谢。 – Jeff 2009-11-23 15:34:06