Ubuntu Touch:获取 GPS 位置

Ubuntu Touch:获取 GPS 位置

我想开发一个显示当前 GPS 坐标的 ubuntu touch 应用。使用 go 获取 GPS 位置的最佳方法是什么?我找不到相关文档。

谢谢。

答案1

Ubuntu Touch 上使用的 GPS API 是标准的QtLocation API。您可以从 C++ 或 QML 中使用它。

答案2

有一种非常简单的方法可以使用ubuntu 位置服务守护进程,不断向数据总线

进入

sudo dbus-monitor --system "type='method_call',member='UpdatePosition',interface='com.ubuntu.location.Service.Session'"

在命令行上。

Go 中的代码可能如下所示:

package main

import (
    "fmt"
    "os"

    "github.com/godbus/dbus/v5"
)


func main() {
    conn, err := dbus.ConnectSystemBus()
    if err != nil {
        fmt.Fprintln(os.Stderr, "Failed to connect to session bus:", err)
        os.Exit(1)
    }
    defer conn.Close()

    var rules = []string{
        "type='method_call',member='UpdatePosition',interface='com.ubuntu.location.Service.Session'",
    }
    var flag uint = 0

    call := conn.BusObject().Call("org.freedesktop.DBus.Monitoring.BecomeMonitor", 0, rules, flag)
    if call.Err != nil {
        fmt.Fprintln(os.Stderr, "Failed to become monitor:", call.Err)
        os.Exit(1)
    }

    c := make(chan *dbus.Message, 10)
    conn.Eavesdrop(c)
    fmt.Println("Monitoring notifications")
    for v := range c {
        fmt.Println(v)
    }
}

相关内容