Qt Location ジオサービス

Qt Location は、その機能の大部分を GeoService プラグインを通して提供します。このドキュメントでは、新しい GeoService プラグインの開発方法の概要を説明します。

プラグインの説明

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

{
    "Keys": ["osm"],
    "Provider": "osm",
    "Version": 100,
    "Experimental": false,
    "Features": [
        "OnlineMappingFeature",
        "OnlineGeocodingFeature",
        "ReverseGeocodingFeature",
        "OnlineRoutingFeature",
        "OnlinePlacesFeature"
    ]
}

エントリーの意味は以下の通り:

キー説明
キープラグインの一意の名前/キー。各 GeoService プラグインには固有の名前が必要です。
プロバイダーサービスのプロバイダー名.複数のプラグインが同じ名前を持つ場合があります。その場合、プラグインをさらに区別するために Version 文字列が使用されます。
実験的サービスプラグインを実験的なものとしてマークします。API 開発者は、QGeoServiceProvider::QGeoServiceProvider() をインスタンス化する際に、このようなプラグインを無視することができます。
バージョンプラグインのバージョン。複数のプラグインが同じプロバイダ名を持つ場合、最もバージョンの高いプラグインが使用されます。
機能プラグイン/サービスが提供する機能のリスト。各機能は、QGeoServiceProvider の対応する機能の文字列表現です。詳細はQGeoServiceProvider::routingFeatures(),QGeoServiceProvider::geocodingFeatures(),QGeoServiceProvider::placesFeatures() を参照。

プラグインの実装

プラグインの実装者は、QGeoServiceProviderFactory と、実装を提供したい数だけ ManagerEngine クラスをサブクラス化する必要があります。

QGeoServiceProviderFactory をサブクラス化することは、以下のメソッドの 1 つをオーバーライ ドすることを含むだけです:

プラグインがエンジンを提供しない場合、関連する関数はnullptr を返す必要があります。

QGeoCodingManagerEngine

ジオコーディング操作のサポートを提供したい QGeoServiceProvider プラグインの実装者に対するインターフェイスと便利なメソッド

QGeoRoutingManagerEngine

地理ルーティング情報へのアクセスを提供したい QGeoServiceProvider プラグインの実装 者向けのインタフェースと便利なメソッド

QPlaceManagerEngine

場所機能へのアクセスを提供したい QGeoServiceProvider プラグインの実装者向けインターフェイス

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