Qt Location Open Street Map Plugin

Übersicht

Dieses Geodienste-Plugin ermöglicht Anwendungen den Zugriff auf ortsbezogene Open Street Map-Dienste unter Verwendung der Qt Location API.

Die Daten, Bilder und Karteninformationen werden von ThunderForest, OpenStreetMap und anderen Anbietern bereitgestellt. Die Daten sind unter der Open Database License verfügbar.

Das Open Street Map Geodienste-Plugin kann mit dem Plugin-Schlüssel "osm" geladen werden.

Hinweis: Die Standard-Kartentypen stützen sich auf (teilweise) freie Datenanbieter. Wir versuchen, die Auswahl für Evaluierungs- und Entwicklungszwecke nützlich zu halten, aber es liegt in Ihrer Verantwortung, einen Datenanbieter zu wählen, der Ihren Bedürfnissen in der Produktion entspricht. Es wird dringend empfohlen, die Nutzungsbedingungen der jeweiligen Anbieter sorgfältig zu lesen und einzuhalten. Eine Liste von alternativen Datenanbietern ist im OpenStreetMap-Wiki verfügbar. Die verfügbaren Kartentypen, die von diesem Plugin angeboten werden, können sich ohne Vorankündigung ändern (oder entfernt werden), abhängig von der tatsächlichen Verfügbarkeit eines praktikablen, offen zugänglichen Anbieters für jeden Typ. Dies bedeutet auch, dass Anbieter, die Kacheln über HTTPS bereitstellen, verwendet werden können. Dies wird relevant, wenn das OSM-Plugin auf Plattformen wie Android verwendet wird, für die SSL-Unterstützung nicht standardmäßig in Qt integriert ist. Um diese Änderungen zu verhindern, sollte entweder ein anderes Geodienst-Plugin verwendet werden, oder der Plugin-Parameter osm.mapping.providersrepository.address sollte auf ein benutzerdefiniertes Repository gesetzt werden, um die volle Kontrolle über die Auswahl des Anbieters zu haben, der für jeden Kartentyp verwendet wird. Seit Qt 5.9.6 ist der standardmäßige Nominatim-Endpunkt, der für Geokodierung und Orte verwendet wird, ebenfalls auf HTTPS-only umgestellt worden.

Parameter

Optionale Parameter

In der folgenden Tabelle sind optionale Parameter aufgeführt, die an das Open Street Map Plugin übergeben werden können.

Hinweis: Seit Qt 5.5 muss allen unten aufgeführten Parametern das Präfix osm vorangestellt werden. Bei früheren Versionen war kein Präfix erforderlich.

ParameterBeschreibung
osm.geocoding.hostUrl-String, der gesetzt wird, wenn Netzwerkanfragen an den Geokodierungsserver gestellt werden. Dieser Parameter sollte auf eine gültige Server-URL mit der richtigen OSM-API gesetzt werden. Wird er nicht angegeben, wird die Standard-URL verwendet.

Hinweis: Die API-Dokumentation ist unter Project OSM Nominatim verfügbar.

osm.geocoding.debug_queryWeist das Plugin an, die Abfrage-URL von Nominatim zu Debugging-Zwecken in die Geocode-Antwort einzufügen.
osm.geocoding.include_extended_dataWeist das Plugin an, Nominatim-spezifische Informationen (wie Geometrie und Klasse) in die zurückgegebenen Location-Objekte aufzunehmen, die als extendedAttributes offengelegt werden.
osm.mapping.cache.directoryAbsoluter Pfad zum Verzeichnis für den Cache der Kartenkacheln, das als Cache für die Netzwerkfestplatte verwendet wird.

Standardmäßig befindet sich der Cache im Unterverzeichnis QtLocation/osm des von QStandardPaths::writableLocation() zurückgegebenen Verzeichnisses, das mit QStandardPaths::GenericCacheLocation als Parameter aufgerufen wird. Auf Systemen, die kein Konzept für einen gemeinsamen Cache haben, wird stattdessen der anwendungsspezifische QStandardPaths::CacheLocation verwendet.

osm.mapping.cache.disk.cost_strategyDie Kostenstrategie, die für das Cachen von Kartenkacheln auf der Festplatte verwendet werden soll. Gültige Werte sind bytesize und unitary. Bei bytesize wird der zugehörige Größenparameter(osm.mapping.cache.disk.size) als Bytes interpretiert. Bei Verwendung von unitary werden sie als Anzahl von Kacheln interpretiert. Der Standardwert für diesen Parameter ist bytesize.
osm.mapping.cache.disk.sizeGröße des Festplatten-Caches für Kartenkacheln. Die Standardgröße des Cache ist 50 MiB, wenn bytesize die Kostenstrategie für diesen Cache ist, oder 1000 Kacheln, wenn unitary die Kostenstrategie ist.
osm.mapping.cache.memory.cost_strategyDie Kostenstrategie, die für die Zwischenspeicherung von Kartenkacheln im Speicher verwendet wird. Gültige Werte sind bytesize und unitary. Bei bytesize wird der zugehörige Größenparameter(osm.mapping.cache.memory.size) als Bytes interpretiert. Bei Verwendung von unitary werden sie als Anzahl von Kacheln interpretiert. Der Standardwert für diesen Parameter ist bytesize.
osm.mapping.cache.memory.sizeGröße des Cache-Speichers für Kartenkacheln. Die Standardgröße des Caches beträgt 3 MiB, wenn bytesize die Kostenstrategie für diesen Cache ist, oder 100 Kacheln, wenn unitary die Kostenstrategie ist.
osm.mapping.cache.texture.cost_strategyDie Kostenstrategie, die für die Zwischenspeicherung dekomprimierter Kartenkacheln im Speicher verwendet wird. Gültige Werte sind bytesize und unitary. Bei bytesize wird der zugehörige Größenparameter(osm.mapping.cache.texture.size) als Byte interpretiert. Bei Verwendung von unitary werden sie als Anzahl von Kacheln interpretiert. Der Standardwert für diesen Parameter ist bytesize.
osm.mapping.cache.texture.sizeGröße des Textur-Caches für Kartenkacheln. Die Standardgröße des Caches beträgt 6 MiB, wenn bytesize die Kostenstrategie für diesen Cache ist, oder 30 Kacheln, wenn unitary die Kostenstrategie ist. Beachten Sie, dass der Textur-Cache eine harte Mindestgröße hat, die von der Größe des Kartenfensters abhängt (er muss genug Daten enthalten, um die derzeit auf dem Bildschirm sichtbaren Kacheln anzuzeigen). Dieser Wert ist die Menge des Caches, die zusätzlich zum Minimum verwendet werden soll.
osm.mapping.custom.datacopyrightDer String für das benutzerdefinierte Daten-Copyright wird verwendet, wenn Map::activeMapType über den Parameter urlprefix auf MapType.CustomMap gesetzt wird. Dieses Copyright wird nur verwendet, wenn die CustomMap von oben verwendet wird. Wenn er leer ist, wird kein Daten-Copyright für die CustomMap angezeigt.
osm.mapping.custom.hostDer Url-String eines benutzerdefinierten Kachel-Servers. Dieser Parameter sollte auf eine gültige Server-URL gesetzt werden, die die korrekte OSM-API anbietet. Das Postfix "%z/%x/%y.png" wird an die Url angehängt. Seit 6.5 wird das Postfix nicht mehr hinzugefügt, wenn die URL mit ".png" endet. Wenn der Server einen Apikey benötigt, muss dieser an die URL angehängt werden. Um diesen Server zu verwenden, muss der Parameter Map::activeMapType des Map auf den unterstützten Kartentyp MapType.CustomMap gesetzt werden. Dieser Kartentyp ist nur verfügbar, wenn dieser Plugin-Parameter gesetzt ist, in diesem Fall ist es immer Map::supportedMapTypes[supportedMapTypes.length - 1].

Hinweis: Wenn der Parameter mapping.custom.host auf einen neuen Server gesetzt wird, wird der Kartenkachel-Cache für den alten Custommap-Stil unbrauchbar.

osm.mapping.custom.mapcopyrightDie Zeichenkette für das Urheberrecht der benutzerdefinierten Karte wird verwendet, wenn Map::activeMapType über den Parameter urlprefix auf MapType.CustomMap gesetzt wird. Dieses Copyright wird nur verwendet, wenn die CustomMap von oben verwendet wird. Wenn der String leer ist, wird kein Karten-Copyright für die CustomMap angezeigt.
osm.mapping.highdpi_tilesOb hohe dpi-Kacheln angefordert werden sollen oder nicht. Gültige Werte sind true und false. Der Standardwert ist false. Bitte beachten Sie, dass nicht alle Kartentypen in hoher Auflösung verfügbar sind. Wenn Sie diesen Parameter auf true setzen, kann es sogar sein, dass er keine Auswirkungen hat, wenn kein Kartentyp in hoher Auflösung verfügbar ist. Die Anbieterinformationsdateien für Kacheln mit hoher Auflösung heißen street-hires, satellite-hires, cycle-hires, transit-hires, night-transit-hires, terrain-hires und hiking-hires. Sie werden von demselben Ort abgerufen, der auch für die Dateien mit niedriger Auflösung verwendet wird.
osm.mapping.offline.directoryAbsoluter Pfad zu einem Verzeichnis, das Kartenkacheln enthält, die als Offline-Speicher verwendet werden. Wenn dieses Verzeichnis angegeben wird, arbeitet es mit dem Netzlaufwerk-Cache zusammen, aber die Kacheln werden nicht automatisch eingefügt, entfernt oder aktualisiert. Das Format der Kacheln ist das gleiche, das auch der Netzwerkplatten-Cache verwendet. Es gibt keinen Standardwert, und wenn diese Eigenschaft nicht gesetzt ist, wird kein Verzeichnis indiziert und nur der Netzwerkplatten-Cache verwendet, um die Netzwerknutzung zu reduzieren oder als Offline-Speicher für die aktuell gecachten Kacheln zu fungieren.
osm.mapping.prefetching_styleMit diesem Parameter kann angegeben werden, wie das Kachel-Prefetching von der Engine durchgeführt werden soll. Der Standardwert TwoNeighbourLayers bewirkt, dass die Engine Kacheln für die Ebene oberhalb und die Ebene unterhalb der aktuellen Kachel-Ebene abruft, so dass beim Vergrößern oder Verkleinern der aktuellen Zoom-Stufe sofort Kacheln zur Verfügung stehen. OneNeighbourLayer ruft nur die Ebene ab, die der aktuellen Zoom-Stufe am nächsten ist. Schließlich erlaubt NoPrefetching das Ausschalten des Prefetching, so dass nur sichtbare Kacheln abgerufen werden. Beachten Sie, dass dieser Hinweis je nach aktivem Kartentyp ignoriert werden kann.
osm.mapping.providersrepository.addressDas OpenStreetMap-Plugin holt sich die Informationen des Anbieters aus einem entfernten Repository. Dies geschieht, um zu verhindern, dass standardmäßig fest kodierte Server verwendet werden, die möglicherweise nicht mehr verfügbar sind. Standardmäßig werden diese Informationen von maps-redirect.qt.io abgerufen. Das Setzen dieses Parameters ändert die Adresse des Provider-Repositorys in eine benutzerdefinierte Adresse, die die Dateien street, satellite, cycle, transit, night-transit, terrain und hiking enthalten muss, von denen jede gültige Providerinformationen enthalten muss.
osm.mapping.providersrepository.disabledStandardmäßig ruft das OpenStreetMap-Plugin die Informationen des Anbieters von einem entfernten Repository ab, um einen Verlust des Dienstes aufgrund der Nichtverfügbarkeit von fest kodierten Diensten zu vermeiden. Das Plugin enthält jedoch weiterhin hartkodierte Anbieterdaten für den Fall, dass das Anbieter-Repository nicht mehr erreichbar ist. Wenn dieser Parameter auf true gesetzt wird, verwendet das Plugin nur die hartkodierten URLs und verhindert somit, dass das Plugin Providerdaten aus dem entfernten Repository abruft.
osm.places.debug_querySetzen Sie diesen Parameter auf true, um in jedem Ergebnis ein erweitertes Attribut namens "requestUrl" zu haben, das die für die Abfrage verwendete URL enthält. Standard ist false.
osm.places.hostUrl-String, der gesetzt wird, wenn Netzwerkanfragen an den Places-Server gestellt werden. Dieser Parameter sollte auf eine gültige Server-URL mit der richtigen OSM-API gesetzt werden. Wenn er nicht angegeben wird, wird die Standard-URL verwendet.

Hinweis: Die API-Dokumentation ist unter Project OSM Nominatim verfügbar.

osm.places.page_sizeDie Anzahl der Ergebnisse auf einer Seite. Beachten Sie, dass dieser Wert serverseitig begrenzt werden kann. Das typische Maximum in Standard-Nominatim-Instanzen ist 50.
osm.routing.apiversionString, der die Api-Version des (benutzerdefinierten) OSRM-Servers definiert. Gültige Werte sind v4 und v5, der Standardwert ist v5. Dieser Parameter sollte nur gesetzt werden, wenn osm.routing.host gesetzt ist und es sich um einen OSRM v4-Server handelt.
osm.routing.hostUrl-String, der bei Netzwerkanfragen an den Routing-Server gesetzt wird. Dieser Parameter sollte auf eine gültige Server-URL mit der korrekten OSRM-API gesetzt werden. Wenn er nicht angegeben wird, wird die Standard-URL verwendet.

Hinweis: Die API-Dokumentation und die Quellen sind unter Projekt OSRM verfügbar.

osm.useragentUseragent-String, der bei Netzwerkanfragen gesetzt wird. Dieser Parameter sollte auf einen Wert gesetzt werden, der die Anwendung eindeutig identifiziert. Beachten Sie, dass Anbieter möglicherweise Anwendungen blockieren, die diesen Parameter nicht setzen, und es dem Standard-Plugin-Benutzeragenten überlassen (z. B. Nominatim für die Geokodierung).

Beispiel für die Verwendung von Parametern

Das folgende Beispiel zeigt, wie eine OSM-Plugin-Instanz mit Parametern für einen User-Agent und, falls erforderlich, einer benutzerdefinierten Server-URL sowie den entsprechenden Copyright-Informationen für den Kachelanbieter erstellt wird. Zusätzlich ist es möglich, einen anderen Routing-Server als den öffentlichen osrm-Server zu wählen.

QML

Plugin {
    name: "osm"
    PluginParameter { name: "osm.useragent"; value: "My great Qt OSM application" }
    PluginParameter { name: "osm.mapping.host"; value: "http://osm.tile.server.address/" }
    PluginParameter { name: "osm.mapping.copyright"; value: "All mine" }
    PluginParameter { name: "osm.routing.host"; value: "http://osrm.server.address/viaroute" }
    PluginParameter { name: "osm.geocoding.host"; value: "http://geocoding.server.address" }
}

Andere Plugin-spezifische Informationen

Kachel-Cache

Die Kacheln werden in einem QtLocation/osm Verzeichnis in QStandardPaths::writableLocation (QStandardPaths::GenericCacheLocation) zwischengespeichert. Auf Systemen, die kein Konzept für einen gemeinsamen Cache haben, wird stattdessen der anwendungsspezifische QStandardPaths::CacheLocation verwendet.

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