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を返すか、デフォルトの実装を利用する必要があります。

©2024 The Qt Company Ltd. 本書に含まれるドキュメントの著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。