我必须让Android客户端在Google地图中显示汽车位置。车辆上装有树莓。 我已经看到一些应用程序以NMEA形式显示GPSD数据,但这对我来说还不够。
我对从GPSD守护程序缓冲数据进行了一些评论。 Oracle支持Java ME将数据共享到客户端,但是有人知道是否存在其他选择?
您能告诉我什么是检索此数据并将其在google Maps Api中使用的最佳方法(或从Android Daemon获取数据的最佳协议)吗? 感谢您的帮助:)
答案 0 :(得分:0)
一种解决方案是在您的Android应用中实现GPSD客户端。 为此,您可以使用例如该JAVA库。 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();
希望这会有所帮助。