PositionSource QML Type
PositionSource 型は、デバイスの現在位置を提供します。詳細...
| Import Statement: | import QtPositioning |
プロパティ
- active : bool
- name : string
- parameters : list<PluginParameter>
(since QtPositioning 5.14) - position : Position
- preferredPositioningMethods : enumeration
- sourceError : enumeration
- supportedPositioningMethods : enumeration
- updateInterval : int
- valid : bool
方法
- var backendProperty(string name)
(since Qt Positioning 5.14) - bool setBackendProperty(string name, var value)
(since Qt Positioning 5.14) - void start()
- void stop()
- void update(int timeout)
詳細説明
PositionSource 型は、ユーザーデバイスの現在位置に関する情報を提供する。位置は、Position 型として利用可能です。この型には、経度、緯度、速度、精度の詳細など、GPS やその他の類似システムで一般的に利用できる標準的なパラメータがすべて含まれています。
異なるプラットフォームやデバイスで異なる位置ソースが利用可能であるため、これらは基本タイプ(Satellite、NonSatellite、AllPositioningMethods)によって分類されます。現在のプラットフォームで利用可能なメソッドは、supportedPositioningMethods プロパティで列挙できます。
どのメソッドがアプリケーションに適しているかを示すには、preferredPositioningMethods プロパティを設定します。希望するメソッドが利用できない場合、代わりにプラットフォームのデフォルトの位置情報ソースが選択されます。デフォルトのソースが利用できない場合(ランタイム・プラットフォームにインストールされていないか、無効になっているため)、valid プロパティは false に設定される。
その後、updateInterval プロパティを使用して、アプリケーションが位置更新を受信する頻度を指定できます。start ()、stop ()、update ()メソッドを使用して、PositionSource の動作を制御できます。また、active プロパティを設定すると、start ()またはstop ()を呼び出すのと同じことになります。
PositionSource がアクティブな場合、position プロパティをバインディングで使用するか(他のアイテムのプロパティの値として)、onPositionChanged シグナルハンドラの実装を提供することで、位置の更新を取得できます。
使用例
次の例では、単純な PositionSource を使用して、1 秒ごとに更新を受け取り、経度と緯度をコンソールに出力しています。
PositionSource { id: src updateInterval: 1000 active: true onPositionChanged: { var coord = src.position.coordinate; console.log("Coordinate:", coord.longitude, coord.latitude); } }
動作状態の制御
前述したように、PositionSourceは動作状態を制御する2つの方法を提供します:
注意: これらの方法を混在させないことが非常に重要です。バインド可能なactive プロパティが PositionSource オブジェクトを制御するために使用され、後でstart() やstop() がコードの他の部分から呼び出された場合、バインドが破壊され、例えば、UI 要素がどの基本オブジェクトにも接続されなくなる可能性があります。
次の悪いコードの例では、active プロパティが CheckBox 状態にバインドされており、onClicked シグナル・ハンドラでstop() を呼び出すと、そのバインドが壊れます。
Window { width: 640 height: 480 visible: true PositionSource { id: posSource name: "geoclue2" active: cb.checked } Column { anchors.centerIn: parent spacing: 20 CheckBox { id: cb } Button { id: btn text: "Stop" onClicked: { posSource.stop() } } } }
Stop]ボタンがクリックされると、stop ()が実行され、active プロパティのバインディングが解除されます。この時点で、CheckBox UI 要素は PositionSource オブジェクトを制御していません。
この場合の簡単な修正は、onClicked ハンドラから CheckBox の状態を更新することです。CheckBoxのチェックが外れるとすぐに、active プロパティが通知され、それに応じてPositionSourceオブジェクトの状態が更新されます。UIも一貫した状態になります。
Button { id: btn text: "Stop" onClicked: { cb.checked = false } }
QtPositioning::Position,QGeoPositionInfoSource,PluginParameter,Qt Bindable Propertiesも参照してください 。
プロパティのドキュメント
active : bool
このプロパティは、位置ソースがアクティブであるかどうかを示す。このプロパティを false に設定すると、stop を呼び出すことと同じになり、このプロパティを true に設定すると、start を呼び出すことと同じになります。
start 、stop 、updateも参照してください 。
name : string
このプロパティは、現在位置情報を提供しているプラグインの一意の内部名を保持する。
このプロパティを設定すると、PositionSource が特定の位置情報プロバイダを使用するようになります。name プロパティが変更された時点でPositionSource がアクティブであれば、それは非アクティブになる。指定されたポジショニング・プロバイダがロードできない場合、ポジション・ソースは無効になります。
name プロパティを変更すると、updateInterval 、supportedPositioningMethods 、preferredPositioningMethods プロパティも変更される可能性があります。
parameters : list<PluginParameter> [default, since QtPositioning 5.14]
このプロパティは、プラグイン・パラメータのリストを保持します。
このプロパティは QtPositioning 5.14 で導入されました。
position : Position
このプロパティは、最後の既知の位置データを保持する。このプロパティは読み取り専用です。
Position 型にはさまざまな位置メンバ変数があり、その有効性は適切な有効性関数でチェックできる (たとえば、更新が速度や高度のデータを持たないことがある)。
しかし、positionChanged シグナルを受信した場合は常に、少なくとも position::coordinate::latitude, position::coordinate::longitude, position::timestamp は有効であると見なすことができる。
preferredPositioningMethods : enumeration
このプロパティは、現在のソースの優先位置決め方法を保持する。
| 定数 | 説明 |
|---|---|
PositionSource.NoPositioningMethods | 測位方式は優先されない。 |
PositionSource.SatellitePositioningMethods | GPS のような衛星測位方式を優先する。 |
PositionSource.NonSatellitePositioningMethods | 非衛星測位方式を優先する。 |
PositionSource.AllPositioningMethods | どの測位方法でもよい。 |
sourceError : enumeration
このプロパティは、PositionSource で最後に発生したエラーを保持する。
| 定数 | 説明 |
|---|---|
PositionSource.AccessError | アプリケーションに必要な権限がないため、リモートポジショニングバックエンドへの接続セットアップに失敗しました。 |
PositionSource.ClosedError | ポジショニングバックエンドは接続を閉じました。これは、例えばユーザーがロケーションサービスをオフに切り替えている場合に起こります。位置情報サービスが再度有効になると、すぐに通常の更新が再開されます。 |
PositionSource.NoError | エラーは発生していません。 |
PositionSource.UnknownSourceError | 不明なエラーが発生しました。 |
PositionSource.UpdateTimeoutError | 指定されたタイムアウト内に現在位置を取得できなかったか、このPositionSource 、今後の定期更新を提供できないと判断されました。 |
supportedPositioningMethods : enumeration
このプロパティは、現在のソースのサポートされている位置決め方法を保持する。
| 定数 | 説明 |
|---|---|
PositionSource.NoPositioningMethods | 測位方法をサポートしていない(ソースがない)。 |
PositionSource.SatellitePositioningMethods | GPS などの衛星測位方式がサポートされています。 |
PositionSource.NonSatellitePositioningMethods | 非衛星測位方式をサポートしている。 |
PositionSource.AllPositioningMethods | 衛星測位と非衛星測位の両方がサポートされている。 |
updateInterval : int
このプロパティは、希望する更新間隔(ミリ秒)を保持する。
QGeoPositionInfoSource::updateInterval()も参照してください 。
valid : bool
このプロパティは、PositionSource オブジェクトがデータを提供する有効なバックエンド・プラグインを取得した場合に真になります。falseの場合、PositionSource の他のメソッドは何の効果もありません。
アプリケーションはこのプロパティをチェックして、ランタイムプラットフォームでポジショニングが利用可能かどうかを判断し、それに応じて対応する必要があります。
メソッドのドキュメント
[since Qt Positioning 5.14] var backendProperty(string name)
name というバックエンド固有のプロパティが存在する場合、その値を返す。そうでない場合は、初期化されていないPositionSource で呼び出された場合も含めて、返り値は無効です。対応するバックエンド固有のプロパティの一覧と説明はQt Positioning plugins#Default plugins にあります。
このメソッドはQt Positioning 5.14 で導入されました。
setBackendProperty およびQGeoPositionInfoSource::setBackendPropertyも参照 。
[since Qt Positioning 5.14] bool setBackendProperty(string name, var value)
name というバックエンド固有のプロパティをvalue に設定します。成功すれば true を返し、そうでなければ false を返します(初期化されていないPositionSource で呼び出された場合を含む)。サポートされているバックエンド固有のプロパティは、Qt Positioning plugins#Defaultプラグイン にリストアップされ、説明されています。
このメソッドはQt Positioning 5.14 で導入されました。
backendProperty およびQGeoPositionInfoSource::setBackendPropertyも参照してください 。
void start()
ロケーションソースからの更新を要求する。設定されている場合はupdateInterval を使用し、設定されていない場合はデフォルトの間隔を使用します。利用可能なソースがない場合、このメソッドは機能しません。
注釈 このメソッドを呼び出すと、active プロパティのバインディングが解除されます。
stop()、update()、activeも参照のこと 。
void stop()
ロケーション・ソースからの更新を停止する。利用可能なソースがない場合、またはソースがアクティブでない場合、このメソッドは何の効果もありません。
注釈 このメソッドを呼び出すと、active プロパティのバインディングが解除されます。
start()、update()、activeも参照のこと 。
void update(int timeout)
ロケーション・ソースからの単一の更新を要求する便利なメソッド。利用可能なソースがない場合、このメソッドは何の効果もありません。
位置情報ソースがアクティブでない場合、更新を受信するのにかかる時間、または要求がタイムアウトするまで、その位置情報ソースはアクティブになります。要求タイムアウト期間はソース固有です。
timeout はミリ秒単位で指定する。timeout がゼロ (デフォルト値) の場合、ソースに適した妥当なタイムアウト期間がデフォルトになります。
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.