You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让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定位城市。

  • 第五步:收尾检查(可选但重要)

    1. 确认你的用户有串口访问权限,把自己加入dialout组:
      sudo usermod -aG dialout $USER
      
      执行完后注销再重新登录才能生效。
    2. 检查gpsd服务是否正常监听串口:
      sudo systemctl status gpsd
      
      确保服务状态是active (running),并且配置里的设备路径(比如/dev/ttyUSB0或/dev/ttyAMA0)是正确的。

做完这些后,重启PureMaps,应该就能正常获取GPS位置并进行导航了!

备注:内容来源于stack exchange,提问作者karlo922

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.20 06:23:09