推出您自己的 NMEA 解析器还是使用开源 GPS 解析器?
我做了很多位置感知计算,通常会结合 GPS。 我有自己的小型简单 NMEA 解析器,它不执行任何特殊操作 - 只是将 GPS 特定句子转换为可用的数字、标志等。
然而,GPSD 和 Gypsy 等项目正在进行大量积极的开发。 如果 GPS 是一件简单的事情,那么这些项目早就完成了,只是进入了维护模式。
- 他们知道/做了什么我不知道的事情,因此我的代码没有考虑到?
I do a lot of location aware computing, often incorporating GPS. I have my own little simple NMEA parser that doesn't do anything special - just transforms the GPS specific sentences into usable numbers, flags, and so forth.
However, there is a lot of active development done on projects such as GPSD and Gypsy. If GPS were a simple matter, the projects would have finished long ago and simply gone into maintenance mode.
- What do they know/do that I don't know about, and therefore my code doesn't account for?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
来自 GPSD 负责人的优秀文章:
- Adam
From an excellent article by the GPSD lead:
-Adam
我曾与NMEA合作过,我的经验是:
NMEA格式设计得不好。
可以直接访问 GPS 接收器的专业应用程序应避免 NMEA。 他们应该考虑 GPS 设备的特定二进制格式。
除了Adam Davis上面提到的主题之外:
这就导致了如何知道定位何时完成的问题。 要么检查新时间戳是否到达,然后您就知道该位置已完成,但就实时行为而言,您将失去一秒钟。 或者您了解您的接收者,并且知道哪一个是修复的最后一句话。 或者你做一些“人工智能”来分析前十秒的顺序,然后你就知道哪个是最后一个。
您可以查看 SIRF 和 UBLOX 协议规范,看看他们有哪些大章节来描述他们如何解释 NMEA 协议。
如果有人知道用 java 或 Objective-C 编写的非常好的 NMEA 解析器/编写器,它是开源的并且不受 GPL 许可,请告诉我。
I have worked with NMEA, my experience is:
The NMEA format is not well designed.
Professional applications, that have direct access to the GPS receiver, should avoid NMEA. They should consider the specific binary format of the GPS device.
In addition to the topics mentioned by Adam Davis above:
That leads to the problem to know when a position fix is complete. Either you check that a new time stamp arrived, then you know that the position is complete, but then you will loose one second, in terms of real time behavior. Or you know your receiver, and know which is the last sentence of a fix. Or you do some "artificial intelligence" to analyze the order in the first ten seconds, and then you know which is the last.
You can look in the SIRF and UBLOX protocol specification, and see what huge chapters they have, to describe how they interprete the NMEA protocol.
If somebody knows a really good NMEA parser / writer written in java or Objective-C, that is open source and not under the GPL license, please let me know.