java - 如何从 GPSD 检索数据并在 Android 客户端中使用它们
问题描述
我必须制作将在 Google 地图中显示汽车位置的 Android 客户端。车辆上安装了覆盆子。我见过一些将 GPSD 数据显示为 NMEA 形式的应用程序,但这对我来说还不够。
我对来自 GPSD 守护程序的缓冲数据进行了一些回顾。Oracle 支持 java ME 将数据共享到客户端,但有人知道是否存在任何替代方案吗?
你能告诉我检索这些数据并在 google Maps Api 中使用它们的最佳方法是什么(或从 Android Daemon 获取数据的最佳协议)?谢谢你的帮助 :)
解决方案
一种解决方案是在您的 Android 应用程序中实现 GPSD 客户端。为此,您可以使用例如这个 JAVA lib。 https://github.com/ivkos/gpsd4j
然后您只需要知道安装在 Raspberry Pi 上的 GPSD 服务器的 IP 地址并配置您的客户端即可。
下面的示例显示了如何实例化 GPSD 客户端和检索 Gps 数据
GpsdClientOptions options = new GpsdClientOptions()
.setReconnectOnDisconnect(true)
.setConnectTimeout(3000) // ms
.setIdleTimeout(30) // seconds
.setReconnectAttempts(5)
.setReconnectInterval(3000); // ms
GpsdClient client = new GpsdClient("192.168.43.213", 2947, options);
// Adds a message handler that handles incoming TPV messages
client.addHandler(TPVReport.class, tpv -> {
Double lat = tpv.getLatitude();
Double lon = tpv.getLongitude();
Double altitude = tpv.getAltitude();
Double speed =tpv.getSpeed();
logger.info("Latitude= "+lat+" Longitude="+lon+" Altitude="+altitude+" Speed="+speed);
});
client.start();
client.watch();
希望它会有所帮助。
推荐阅读
- blazor - 有什么方法可以禁止组件使用“ShouldRender”进行渲染,但允许其子组件在他们认为合适的时候重新渲染?
- r - 用 R 对 A 行的 A 元素和 A 矩阵的 A 列进行排序
- css - 使用 css-grid 创建矩阵
- django - 带有微服务的 Django Lambda,在 Lambda 函数中打破 Django 项目
- c# - 为什么我的多线程代码没有更快?
- window - 任何逻辑关闭
- javascript - 难以让 if...else 语句在函数内部工作
- c - VTIME 和 VMIN 似乎没有改变 posix read() 调用的阻塞行为
- python - 没有 setup.py 的 Sphinx 构建
- node.js - 如何渲染发送数据的 XML 页面 NODEJS