如何让geoclue获取串口GPS设备的位置并用于PureMaps导航
如何让geoclue获取串口GPS设备的位置并用于PureMaps导航
嗨,我来帮你搞定这个问题!既然你的GPS已经能通过gpsd/cgps -s正常工作,那核心就是让geoclue优先调用gpsd的数据源,而不是默认的IP定位。下面是一步步的操作:
第一步:确保geoclue的gpsd插件已安装
树莓派64位系统一般自带,但保险起见可以执行这条命令确认安装:sudo apt install geoclue-2.0 geoclue-provider-gpsd第二步:配置geoclue优先使用gpsd
编辑gpsd提供者的配置文件:sudo nano /etc/geoclue/conf.d/90-gpsd.conf在文件里添加或修改成以下内容:
[gpsd] Enabled=true System=false Level=GPS简单解释下:
Enabled=true:开启gpsd作为位置提供者System=false:允许普通用户(比如你运行PureMaps的账号)访问这个提供者Level=GPS:标记这个数据源的精度为GPS级别,会自动优先于IP定位(Network级别)
第三步:重启geoclue服务让配置生效
sudo systemctl restart geoclue.service第四步:验证配置是否生效
运行geoclue的测试命令,看看输出的位置是不是来自GPS:geoclue-2.0 demo如果成功,你会看到输出里的经纬度和你实际位置一致,并且能看到
Source: gpsd之类的提示,而不是之前的IP定位城市。第五步:收尾检查(可选但重要)
- 确认你的用户有串口访问权限,把自己加入
dialout组:
执行完后注销再重新登录才能生效。sudo usermod -aG dialout $USER - 检查gpsd服务是否正常监听串口:
确保服务状态是sudo systemctl status gpsdactive (running),并且配置里的设备路径(比如/dev/ttyUSB0或/dev/ttyAMA0)是正确的。
- 确认你的用户有串口访问权限,把自己加入
做完这些后,重启PureMaps,应该就能正常获取GPS位置并进行导航了!
备注:内容来源于stack exchange,提问作者karlo922
相关产品推荐
相关产品推荐

