Qt Positioning プラグイン

Qt Positioning は、その機能の大部分をプラグインを通じて提供する。このドキュメントでは、新しいポジションプラグインを開発する方法を概説します。

デフォルトのプラグイン

いくつかのプラグインはすでに Qt に同梱されています。これらは以下の通りです:

アンドロイドAndroid位置決めサブシステムをラップします。Android でのみ利用可能。
コアロケーションiOSとmacOSの測位サブシステムをラップします。corelocationをサポートするAppleプラットフォームでのみ利用可能。
geoclue2GeoClue v2D-Bus サービスへのインタフェースを提供するGeoClue v2バックエンド。
gypsyGypsy デーモンへのインタフェースを提供するGypsyバックエンド。
winrtWinRT測位サブシステムをラップします。WinRTとWindows10でのみ利用可能。
nmeaGPS受信機からのNMEAストリームを解析し、位置更新を提供するNMEAバックエンドです。このプラグインは、シリアルポート、ソケット、ファイルをソースとして使用できます。
ポジションポール位置更新のポーリングによるエリアモニタリング機能のみを提供するバックエンド。

プラグインの説明

各プラグインはjsonファイルで記述されています。jsonにはプラグインの機能とバージョンが記述されています。以下は、postionpollプラグインが使用するjsonファイルの例です:

{
    "Keys": ["positionpoll"],
    "Provider": "positionpoll",
    "Position": false,
    "Satellite": false,
    "Monitor": true,
    "Priority": 1000,
    "Testable": true
}

各項目の意味は以下の通りです:

キー説明
キープラグインの固有名/キー。各ポジション・プラグインは固有の名前を持つ必要があります。
プロバイダーサービスのプロバイダー名。複数のプラグインが同じ名前を持つ場合があります。その場合、プラグインを区別するためにVersion文字列が使用されます。
位置プラグインがQGeoPositionInfoSource を実装している場合、true に設定します。
SatelliteプラグインがQGeoSatelliteInfoSource を実装している場合は、true に設定します。
モニタープラグインがQGeoAreaMonitorSource を実装している場合、true に設定する。
優先度プラグインの優先順位。複数のプラグインが同じプロバイダ名を持つ場合、優先順位の高いプラグインが使用されます。

プラグインの実装

プラグインの実装者は、QGeoPositionInfoSourceFactory をサブクラス化し、1つ以上の関数をオーバーライドする必要があります。プラグインが特定の機能をサポートしていない場合、関数は0を返すか、デフォルトの実装を利用する必要があります。

© 2025 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.