Map Provider Plugin erstellen (QT5.4)
-
Hi,
ich bin neu hier, deshalb noch etwas grün hinter den Ohren und hoffe ihr könnt mir helfen. Ich habe meine erste QT-Quick-Anwendung erfolgreich mit einem ApplicationWindow und einer Map mithilfe von QML (QT 5.4) erstellt. Als Plugin nutze ich zurzeit das OpenStreetMaps (OSM)-Plugin. Genau hier fängt mein Problem an.Ich möchte nicht direkt über das OSM-Plugin auf die OSM-Server zugreifen, sondern möchte mein eigenes Plugin schreiben. Dabei möchte ich in meinem Plugin auf einen lokalen Server verweisen und von dort die jeweiligen Map-Tiles abrufen. Der Server wiederum soll im ersten Schritt auf die OSM-Server zugreifen und von dort die Tiles laden und an die Anwendung weiterleiten. Ich weiß nur nicht so recht, wie ich das Plugin schreiben soll. Die QT-Dokumentation ist ja gigantisch und ich glaube ich sehe den Wald vor lauter Bäumen nicht mehr. Ich habe zu meinem Problem zwei Repositories gefunden. Das erste Repository nutzt wohl noch die alte Möglichkeit um ein Plugin zu exportieren (mit Q_EXPORT_PLUGIN2) und ist dementsprechend auch schon etwas älter. Beim zweiten Repository sieht das ganze schon besser aus, da es das letzte Mal vor sechs Monaten aktualisiert wurde. Hier wurde wohl schon QT5 verwendet. Der Entwickler des zweiten Repos hat sich wohl hier, hier und hieran orientiert. Dabei hat er von QGeoServiceProviderFactory und den anderen vier Klassen QGeoCodingManagerEngine, QPlaceManagerEngine, QGeoRoutingManagerEngine & QGeoTiledMappingManagerEngine geerbt. Zu letzterer finde ich nur keine Dokumentation bei QT5.4 (nur bei Qt Mobile 1.2) und auch wenn ich das Projekt klone und im QT Creator importiere kann der Compiler die QGeoTiledMappingManagerEngine nicht finden. Beim ersten Repo wurde ebenfalls von dieser Klasse geerbt. Das ist glaube ich genau das, was ich benötige. Hat sich da etwas geändert? Und geht das mit QT 5.4 eigentlich noch so?
Es wäre toll, wenn ihr mir helfen könntet und ggfs. eine Art ToDo-Liste erstellt. Ein Repo ist natürlich auch sehr hilfreich ;-)
-
QtLocation und QtPositioning sind erst ab Qt 5.5 als TechPreview verfügbar.
Willst du nur Kartenmaterial mit dem Plugin zur Verfügung stellen? Oder auch Routing, Places, etc?Stimmt QtLocation Modul gibt es sehr viele Klassen die einem schnell den Überblick verlieren lassen, aber wenn man mal den Überblick hat ist es eigentlich recht einfach.
Am einfachsten nimmst du dir den source-code vom "Original" plugin her.