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 つをオーバーライ ドすることを含むだけです:
- QGeoServiceProviderFactory::createGeocodingManagerEngine()
- QGeoServiceProviderFactory::createRoutingManagerEngine()
- QGeoServiceProviderFactory::createPlaceManagerEngine()
プラグインがエンジンを提供しない場合、関連する関数はnullptr
を返す必要があります。
ジオコーディング操作のサポートを提供したい QGeoServiceProvider プラグインの実装者に対するインターフェイスと便利なメソッド | |
地理ルーティング情報へのアクセスを提供したい QGeoServiceProvider プラグインの実装 者向けのインタフェースと便利なメソッド | |
場所機能へのアクセスを提供したい QGeoServiceProvider プラグインの実装者に対するインターフェイス |
© 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.