web-dev-qa-db-ja.com

Ubuntu Touchの位置情報にアクセスする方法

Ubuntu Touchの地理位置情報にアクセスするためのドキュメント、特にQt5に一般的にアクセスするためのドキュメントを見つけるのは奇妙に困難です。 Qt Mobility APIはQt4でこれを提供し、それらは Qt5の個別のライブラリに分割 のようです。これらのライブラリは明らかに Qt 5ディストリビューションから削除され、現在はオプションのアドオンモジュールと見なされています 。現在は「アドオン」となっているため、Qt Webサイトはドキュメントを公開していないようです。それらにはUbuntuパッケージがありますが、SDKをインストールしても実際には組み込まれません。そのため、電話で使用できるかどうかは不明です。

正しいパッケージは qtdeclarative5-qtlocation-pluginのようです Install qtdeclarative5-qtlocation-pluginimport QtLocation 5.0を使用してQmlでアクセスできます

単に緯度と経度を取得しようとすることは、無益さの中で行われてきました。古いQt4ドキュメントを見て、私は試しました:

import QtQuick 2.0
import QtLocation 5.0


PositionSource {
    id: src
    updateInterval: 1000
    active: true

    onPositionChanged: {
        var coord = src.position.coordinate;
        console.log("Coordinate:", coord.longitude, coord.latitude);
        }
}

悲しいことに、 これはsegfaultsです...

だから私の質問は、簡単に言うと、QmlでUbuntu Touchの位置情報にアクセスするにはどうすればよいですか?

3
andrewsomething

デバイスでGPSが有効になっていないため、うまくいかなかったと思います。次のコードサンプルは、私のラップトップでsegfaultingせずに機能しました。デバイスでは、AGPSがまだ着陸していないため、GPSロックを取得するのに約1〜2分かかります。

import QtQuick 2.2
import Ubuntu.Components 1.1.
import QtPositioning 5.2

MainView {
    id: mainView

    applicationName: "me.nik90.gpsapp"
    useDeprecatedToolbar: false

    width: units.gu(100)
    height: units.gu(75)

    Page {
        id: page

        title: "GPS"

        PositionSource {
            id: src

            updateInterval: 1000
            active: true

            onPositionChanged: {
                var coord = src.position.coordinate;
                console.log("Coordinate: " + coord.longitude + ":" + coord.latitude);
            }
        }

        Label {
            text: "Coordinate: " + src.coord.longtitude + ":" + src.coord.latitude;
        }
   }
}
1
nik90