このページでは

Qt Positioning プラグイン

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

デフォルトのプラグイン

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

androidAndroidの位置情報サブシステムをラップします。Androidでのみ利用可能です。
corelocationiOSおよびmacOSの位置情報サブシステムをラップします。corelocationをサポートするAppleプラットフォームでのみ利用可能です。
geoclue2GeoClue v2D-Bus サービスへのインターフェースを提供するGeoClue v2バックエンド。
gypsyGypsyデーモンへのインターフェースを提供するGypsyバックエンド。
winrtWinRTの位置情報サブシステムをラップします。WinRTおよびWindows 10でのみ利用可能です。
nmeaGPS受信機からのNMEAストリームを解析し、位置情報の更新を提供するNMEAバックエンドです。このプラグインは、シリアルポート、ソケット、またはファイルをデータソースとして使用できます。
positionpoll位置情報の更新をポーリングすることで、エリア監視機能のみを提供するバックエンドです。

プラグインの説明

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

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

各エントリの意味は以下の通りです:

キー説明
キープラグインの一意の名前/キー。各Positionプラグインには一意の名前が必要です。
プロバイダーサービスのプロバイダー名。複数のプラグインで同じ名前を使用できる場合があります。その場合は、バージョン文字列を使用してプラグインをさらに区別します。
位置プラグインがQGeoPositionInfoSource を実装している場合は、true に設定してください。
サテライトプラグインがQGeoSatelliteInfoSource を実装している場合は、true に設定します。
MonitorプラグインがQGeoAreaMonitorSource を実装している場合は、true に設定してください。
優先順位プラグインの優先度。複数のプラグインでプロバイダ名が同じ場合、優先度が最も高いプラグインが使用されます。

プラグインの実装

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

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