Qt Location GeoServices
Qt Location stellt den Großteil seiner Funktionalität über GeoService-Plugins zur Verfügung. Dieses Dokument beschreibt, wie man ein neues GeoService-Plugin entwickelt.
Plugin-Beschreibung
Jedes Plugin wird durch eine json-Datei beschrieben. Die json-Datei beschreibt die Fähigkeiten und die Version des Plugins. Unten sehen Sie ein Beispiel für eine json-Datei, die vom OpenStreenMap-Plugin verwendet wird:
{ "Keys": ["osm"], "Provider": "osm", "Version": 100, "Experimental": false, "Features": [ "OnlineMappingFeature", "OnlineGeocodingFeature", "ReverseGeocodingFeature", "OnlineRoutingFeature", "OnlinePlacesFeature" ] }
Die Einträge haben die folgende Bedeutung:
Schlüssel | Beschreibung |
---|---|
Schlüssel | Der eindeutige Name/Schlüssel des Plugins. Jedes GeoService-Plugin muss einen eindeutigen Namen haben. |
Anbieter | Der Name des Anbieters der Dienste. Mehrere Plugins können den gleichen Namen haben. In solchen Fällen wird die Zeichenkette Version zur weiteren Unterscheidung der Plugins verwendet. |
Experimentell | Markiert das Dienst-Plugin als experimentell. API-Entwickler können sich dafür entscheiden, solche Plugins bei der Instanziierung von QGeoServiceProvider::QGeoServiceProvider() zu ignorieren. |
Version | Die Plugin-Version. Wenn mehrere Plugins denselben Anbieternamen haben, wird das Plugin mit der höchsten Version verwendet. |
Funktionen | Liste der vom Plugin/Dienst bereitgestellten Funktionen. Jedes Merkmal ist eine String-Repräsentation der entsprechenden Merkmale in QGeoServiceProvider. Für weitere Einzelheiten siehe QGeoServiceProvider::routingFeatures(), QGeoServiceProvider::geocodingFeatures() und QGeoServiceProvider::placesFeatures(). |
Implementierung von Plugins
Ein Plugin-Implementierer muss QGeoServiceProviderFactory und so viele der ManagerEngine-Klassen unterklassifizieren, wie er Implementierungen bereitstellen möchte.
Das Unterklassifizieren von QGeoServiceProviderFactory beinhaltet nur das Überschreiben einer der folgenden Methoden:
- QGeoServiceProviderFactory::createGeocodingManagerEngine()
- QGeoServiceProviderFactory::createRoutingManagerEngine()
- QGeoServiceProviderFactory::createPlaceManagerEngine()
Wenn ein Plugin keine Engine bereitstellt, sollte die entsprechende Funktion nullptr
zurückgeben.
Schnittstellen- und Komfortmethoden für Implementierer von QGeoServiceProvider-Plugins, die Unterstützung für Geokodierungsoperationen anbieten wollen | |
Schnittstelle und Convenience-Methoden für Implementierer von QGeoServiceProvider-Plugins, die den Zugriff auf geografische Routing-Informationen ermöglichen wollen | |
Schnittstelle für Implementierer von QGeoServiceProvider-Plugins, die Zugang zu Ortsfunktionen bieten wollen |
© 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.