summaryrefslogtreecommitdiff
path: root/src/plugins
diff options
context:
space:
mode:
authorPaolo Angelelli <paolo.angelelli@qt.io>2017-03-21 17:35:05 +0100
committerPaolo Angelelli <paolo.angelelli@qt.io>2017-03-27 11:22:32 +0000
commit74b456578063f184838774c54c89a96d7ab90a5b (patch)
tree9a57a65f51d1a2f71f4f31bd8c895223408c74e0 /src/plugins
parent2e79bbca6465d404a821510c7a6b897fd284ca99 (diff)
downloadqtlocation-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')
-rw-r--r--src/plugins/geoservices/esri/geotiledmappingmanagerengine_esri.cpp14
-rw-r--r--src/plugins/geoservices/mapbox/qgeotiledmappingmanagerenginemapbox.cpp14
-rw-r--r--src/plugins/geoservices/nokia/qgeotiledmappingmanagerengine_nokia.cpp15
-rw-r--r--src/plugins/geoservices/osm/qgeotiledmappingmanagerengineosm.cpp12
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;
}