このページでは

Qt Location GeoServices

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

プラグインの説明

各プラグインは JSON ファイルによって記述されます。この JSON ファイルには、プラグインの機能とバージョンが記載されています。以下は、OpenStreetMap プラグインで使用される 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 をサブクラス化する場合、以下のメソッドのいずれかをオーバーライドするだけで済みます:

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

QGeoCodingManagerEngine

ジオコーディング操作のサポートを提供したい QGeoServiceProvider プラグインの実装者向けのインターフェースおよび利便性メソッド

QGeoRoutingManagerEngine

地理的な経路情報へのアクセスを提供したい QGeoServiceProvider プラグインの実装者向けのインターフェースおよび便利メソッド

QPlaceManagerEngine

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

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