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