Qt Location GeoServices
Die „ Qt Location “ stellt den Großteil ihrer Funktionen über GeoService-Plugins bereit. 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 Funktionen und die Version des Plugins. Nachfolgend finden Sie ein Beispiel für eine JSON-Datei, die vom OpenStreetMap-Plugin verwendet wird:
{
"Keys": ["osm"],
"Provider": "osm",
"Version": 100,
"Experimental": false,
"Features": [
"OnlineMappingFeature",
"OnlineGeocodingFeature",
"ReverseGeocodingFeature",
"OnlineRoutingFeature",
"OnlinePlacesFeature"
]
}Die Einträge haben 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 denselben Namen haben. In solchen Fällen wird die Versionszeichenfolge verwendet, um die Plugins weiter zu unterscheiden. |
| Experimentell | Kennzeichnet das Dienst-Plugin als experimentell. API-Entwickler können solche Plugins bei der Instanziierung von ` QGeoServiceProvider::QGeoServiceProvider()` 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. Jede Funktion ist eine Zeichenkette, die die entsprechenden Funktionen in ` QGeoServiceProvider` darstellt. Weitere Details finden Sie unter ` QGeoServiceProvider::routingFeatures()`, ` QGeoServiceProvider::geocodingFeatures()` und ` QGeoServiceProvider::placesFeatures()`. |
Implementierung von Plugins
Ein Plugin-Entwickler muss eine Unterklasse von `QGeoServiceProviderFactory` sowie von so vielen `ManagerEngine`-Klassen erstellen, für die er Implementierungen bereitstellen möchte.
Die Erstellung einer Unterklasse von `QGeoServiceProviderFactory` erfordert lediglich 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 Hilfsmethoden für Implementierer von QGeoServiceProvider-Plugins, die Unterstützung für Geokodierungsvorgänge bereitstellen möchten | |
Schnittstelle und Hilfsmethoden für Entwickler von QGeoServiceProvider-Plugins, die Zugriff auf geografische Routing-Informationen bereitstellen möchten | |
Schnittstelle für Entwickler von QGeoServiceProvider-Plugins, die Zugriff auf Ortsfunktionen bereitstellen möchten |
© 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.