diff options
author | Paolo Angelelli <paolo.angelelli@qt.io> | 2017-03-21 17:35:05 +0100 |
---|---|---|
committer | Paolo Angelelli <paolo.angelelli@qt.io> | 2017-03-27 11:22:32 +0000 |
commit | 74b456578063f184838774c54c89a96d7ab90a5b (patch) | |
tree | 9a57a65f51d1a2f71f4f31bd8c895223408c74e0 /src/plugins | |
parent | 2e79bbca6465d404a821510c7a6b897fd284ca99 (diff) | |
download | qtlocation-74b456578063f184838774c54c89a96d7ab90a5b.tar.gz |
Add parameter to control prefetching in tile-based geoservice plugins
Change-Id: I18fc1788f7af0efe76f97257ffe739eb1a96e6cc
Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
Diffstat (limited to 'src/plugins')
4 files changed, 52 insertions, 3 deletions
diff --git a/src/plugins/geoservices/esri/geotiledmappingmanagerengine_esri.cpp b/src/plugins/geoservices/esri/geotiledmappingmanagerengine_esri.cpp index a0f00615..3b06d237 100644 --- a/src/plugins/geoservices/esri/geotiledmappingmanagerengine_esri.cpp +++ b/src/plugins/geoservices/esri/geotiledmappingmanagerengine_esri.cpp @@ -199,6 +199,16 @@ GeoTiledMappingManagerEngineEsri::GeoTiledMappingManagerEngineEsri(const QVarian tileCache->setExtraTextureUsage(cacheSize); } + /* PREFETCHING */ + if (parameters.contains(QStringLiteral("esri.mapping.prefetching_style"))) { + const QString prefetchingMode = parameters.value(QStringLiteral("esri.mapping.prefetching_style")).toString(); + if (prefetchingMode == QStringLiteral("TwoNeighbourLayers")) + m_prefetchStyle = QGeoTiledMap::PrefetchTwoNeighbourLayers; + else if (prefetchingMode == QStringLiteral("OneNeighbourLayer")) + m_prefetchStyle = QGeoTiledMap::PrefetchNeighbourLayer; + else if (prefetchingMode == QStringLiteral("NoPrefetching")) + m_prefetchStyle = QGeoTiledMap::NoPrefetching; + } setTileCache(tileCache); *error = QGeoServiceProvider::NoError; @@ -212,7 +222,9 @@ GeoTiledMappingManagerEngineEsri::~GeoTiledMappingManagerEngineEsri() QGeoMap *GeoTiledMappingManagerEngineEsri::createMap() { - return new GeoTiledMapEsri(this); + QGeoTiledMap *map = new GeoTiledMapEsri(this); + map->setPrefetchStyle(m_prefetchStyle); + return map; } // ${z} = Zoom diff --git a/src/plugins/geoservices/mapbox/qgeotiledmappingmanagerenginemapbox.cpp b/src/plugins/geoservices/mapbox/qgeotiledmappingmanagerenginemapbox.cpp index 4b62aece..090ba310 100644 --- a/src/plugins/geoservices/mapbox/qgeotiledmappingmanagerenginemapbox.cpp +++ b/src/plugins/geoservices/mapbox/qgeotiledmappingmanagerenginemapbox.cpp @@ -221,6 +221,16 @@ QGeoTiledMappingManagerEngineMapbox::QGeoTiledMappingManagerEngineMapbox(const Q tileCache->setExtraTextureUsage(cacheSize); } + /* PREFETCHING */ + if (parameters.contains(QStringLiteral("mapbox.mapping.prefetching_style"))) { + const QString prefetchingMode = parameters.value(QStringLiteral("mapbox.mapping.prefetching_style")).toString(); + if (prefetchingMode == QStringLiteral("TwoNeighbourLayers")) + m_prefetchStyle = QGeoTiledMap::PrefetchTwoNeighbourLayers; + else if (prefetchingMode == QStringLiteral("OneNeighbourLayer")) + m_prefetchStyle = QGeoTiledMap::PrefetchNeighbourLayer; + else if (prefetchingMode == QStringLiteral("NoPrefetching")) + m_prefetchStyle = QGeoTiledMap::NoPrefetching; + } setTileCache(tileCache); @@ -234,7 +244,9 @@ QGeoTiledMappingManagerEngineMapbox::~QGeoTiledMappingManagerEngineMapbox() QGeoMap *QGeoTiledMappingManagerEngineMapbox::createMap() { - return new QGeoTiledMap(this, 0); + QGeoTiledMap *map = new QGeoTiledMap(this, 0); + map->setPrefetchStyle(m_prefetchStyle); + return map; } QT_END_NAMESPACE diff --git a/src/plugins/geoservices/nokia/qgeotiledmappingmanagerengine_nokia.cpp b/src/plugins/geoservices/nokia/qgeotiledmappingmanagerengine_nokia.cpp index ab6cd7ea..ca83dc30 100644 --- a/src/plugins/geoservices/nokia/qgeotiledmappingmanagerengine_nokia.cpp +++ b/src/plugins/geoservices/nokia/qgeotiledmappingmanagerengine_nokia.cpp @@ -185,6 +185,17 @@ QGeoTiledMappingManagerEngineNokia::QGeoTiledMappingManagerEngineNokia( tileCache->setExtraTextureUsage(cacheSize); } + /* PREFETCHING */ + if (parameters.contains(QStringLiteral("here.mapping.prefetching_style"))) { + const QString prefetchingMode = parameters.value(QStringLiteral("here.mapping.prefetching_style")).toString(); + if (prefetchingMode == QStringLiteral("TwoNeighbourLayers")) + m_prefetchStyle = QGeoTiledMap::PrefetchTwoNeighbourLayers; + else if (prefetchingMode == QStringLiteral("OneNeighbourLayer")) + m_prefetchStyle = QGeoTiledMap::PrefetchNeighbourLayer; + else if (prefetchingMode == QStringLiteral("NoPrefetching")) + m_prefetchStyle = QGeoTiledMap::NoPrefetching; + } + setTileCache(tileCache); populateMapSchemes(); loadMapVersion(); @@ -431,7 +442,9 @@ QString QGeoTiledMappingManagerEngineNokia::evaluateCopyrightsText(const QGeoMap QGeoMap *QGeoTiledMappingManagerEngineNokia::createMap() { - return new QGeoTiledMapNokia(this); + QGeoTiledMap *map = new QGeoTiledMapNokia(this); + map->setPrefetchStyle(m_prefetchStyle); + return map; } QT_END_NAMESPACE diff --git a/src/plugins/geoservices/osm/qgeotiledmappingmanagerengineosm.cpp b/src/plugins/geoservices/osm/qgeotiledmappingmanagerengineosm.cpp index 0e1fb356..a0fb1a59 100644 --- a/src/plugins/geoservices/osm/qgeotiledmappingmanagerengineosm.cpp +++ b/src/plugins/geoservices/osm/qgeotiledmappingmanagerengineosm.cpp @@ -311,6 +311,17 @@ QGeoTiledMappingManagerEngineOsm::QGeoTiledMappingManagerEngineOsm(const QVarian } setTileFetcher(tileFetcher); + /* PREFETCHING */ + if (parameters.contains(QStringLiteral("osm.mapping.prefetching_style"))) { + const QString prefetchingMode = parameters.value(QStringLiteral("osm.mapping.prefetching_style")).toString(); + if (prefetchingMode == QStringLiteral("TwoNeighbourLayers")) + m_prefetchStyle = QGeoTiledMap::PrefetchTwoNeighbourLayers; + else if (prefetchingMode == QStringLiteral("OneNeighbourLayer")) + m_prefetchStyle = QGeoTiledMap::PrefetchNeighbourLayer; + else if (prefetchingMode == QStringLiteral("NoPrefetching")) + m_prefetchStyle = QGeoTiledMap::NoPrefetching; + } + *error = QGeoServiceProvider::NoError; errorString->clear(); } @@ -324,6 +335,7 @@ QGeoMap *QGeoTiledMappingManagerEngineOsm::createMap() QGeoTiledMap *map = new QGeoTiledMapOsm(this); connect(qobject_cast<QGeoFileTileCacheOsm *>(tileCache()), &QGeoFileTileCacheOsm::mapDataUpdated , map, &QGeoTiledMap::clearScene); + map->setPrefetchStyle(m_prefetchStyle); return map; } |