beli3ver Asked: 2019-08-13 05:42:34 +0800 CST2019-08-13 05:42:34 +0800 CST 2019-08-13 05:42:34 +0800 CST Ubuntu Touch:获取 GPS 位置 772 我想开发一个显示当前 gps 坐标的 ubuntu 触摸应用程序。使用 go 获取 GPS 位置的最佳方法是什么?我找不到任何文档。 谢谢你。 ubuntu-touch gps golang 2 个回答 Voted Best Answer dobey 2019-08-13T06:07:49+08:002019-08-13T06:07:49+08:00 Ubuntu Touch 上使用的 GPS 的 API 是标准的QtLocation API。您可以从 C++ 或 QML 使用它。 Barp Fotenbär 2021-03-31T23:57:45+08:002021-03-31T23:57:45+08:00 有一种非常简单的方法可以使用ubuntu-location-serviced守护进程获取 GPS 位置,不断向DBUS发送通知。 进入 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) } }
Ubuntu Touch 上使用的 GPS 的 API 是标准的QtLocation API。您可以从 C++ 或 QML 使用它。
有一种非常简单的方法可以使用ubuntu-location-serviced守护进程获取 GPS 位置,不断向DBUS发送通知。
进入
在命令行上。
Go 中的代码可能如下所示: