2

我正在为 android 4.4 设备开发一个应用程序。这些没有内置 GPS。我打算使用 USB GPS (globalsat BU353-S4)。

我一直在寻找与 Linux 中可用的 gpsd 库等效的 Android。虽然我可以看到很少的应用程序(你在这里等),但我找不到任何可以在我的应用程序开发中使用的库 API。

所以,我正在考虑使用带有Marine-api库的USB 主机 API来执行此操作。我担心这会变得多么复杂,如果我在重新发明轮子。谁有更好的建议在这里...

4

1 回答 1

3

GPSD 适用于 android 4.0 及更高版本。

http://www.catb.org/gpsd/faq.html

Android 4.0 及更高版本使用 gpsd 解释来自板载 GPS 的数据流

gpsd 处理来自 GPS 设备的 NMEA 数据。

如果由于某种原因它不在您的设备上,您可以下载并安装它。

http://www.catb.org/gpsd/installation.html

但是,您声明您的设备上没有 GPS 功能,您将使用 globalsat BU353-S4。

查看安装驱动程序的手册,GPS 设备显示为 com 端口。假设 linux 驱动程序在您的 android 设备上运行,您将能够向 USB GPS 设备发送命令。

从手册:

USB GPS 是否可以与其他街道地图软件一起使用?

Globalsat USB GPS 接收器提供标准 NMEA 数据,供地图软件使用并转换为坐标,并且可以与当今市场上大多数 NMEA 兼容软件配合使用。

意味着您可以发送标准 NMEA 命令

例如

GGA - 提供 3D 位置和精度数据的基本修复数据。

$GPGGA,123519,4807.038,N,01131.000,E,1,08,0.9,545.4,M,46.9,M,,*47

在哪里:

 GGA          Global Positioning System Fix Data
 123519       Fix taken at 12:35:19 UTC
 4807.038,N   Latitude 48 deg 07.038' N
 01131.000,E  Longitude 11 deg 31.000' E
 1            Fix quality: 0 = invalid
                           1 = GPS fix (SPS)
                           2 = DGPS fix
                           3 = PPS fix
               4 = Real Time Kinematic
               5 = Float RTK
                           6 = estimated (dead reckoning) (2.3 feature)
               7 = Manual input mode
               8 = Simulation mode
 08           Number of satellites being tracked
 0.9          Horizontal dilution of position
 545.4,M      Altitude, Meters, above mean sea level
 46.9,M       Height of geoid (mean sea level) above WGS84
                  ellipsoid
 (empty field) time in seconds since last DGPS update
 (empty field) DGPS station ID number
 *47          the checksum data, always begins with *

如果从 NMEA 开始,可能会感兴趣以下内容:

https://www.sparkfun.com/datasheets/GPS/NMEA%20Reference%20Manual-Rev2.1-Dec07.pdf

于 2016-02-23T20:54:38.667 回答