summaryrefslogtreecommitdiff
path: root/src/plugins/geoservices/esri
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/geoservices/esri')
-rw-r--r--src/plugins/geoservices/esri/esri.qrc2
-rw-r--r--src/plugins/geoservices/esri/geomapsource.cpp2
-rw-r--r--src/plugins/geoservices/esri/geotiledmappingmanagerengine_esri.cpp20
-rw-r--r--src/plugins/geoservices/esri/geotilefetcher_esri.cpp2
-rw-r--r--src/plugins/geoservices/esri/geotilefetcher_esri.h2
5 files changed, 21 insertions, 7 deletions
diff --git a/src/plugins/geoservices/esri/esri.qrc b/src/plugins/geoservices/esri/esri.qrc
index 43b0857f..d085b09f 100644
--- a/src/plugins/geoservices/esri/esri.qrc
+++ b/src/plugins/geoservices/esri/esri.qrc
@@ -1,5 +1,5 @@
<RCC>
- <qresource prefix="/">
+ <qresource prefix="/esri">
<file>maps.json</file>
</qresource>
</RCC>
diff --git a/src/plugins/geoservices/esri/geomapsource.cpp b/src/plugins/geoservices/esri/geomapsource.cpp
index 32fe1899..19f284e6 100644
--- a/src/plugins/geoservices/esri/geomapsource.cpp
+++ b/src/plugins/geoservices/esri/geomapsource.cpp
@@ -68,7 +68,7 @@ static const MapStyleData mapStyles[] =
GeoMapSource::GeoMapSource(QGeoMapType::MapStyle style, const QString &name,
const QString &description, bool mobile, bool night, int mapId,
const QString &url, const QString &copyright) :
- QGeoMapType(style, name, description, mobile, night, mapId),
+ QGeoMapType(style, name, description, mobile, night, mapId, "esri"),
m_url(url), m_copyright(copyright)
{
}
diff --git a/src/plugins/geoservices/esri/geotiledmappingmanagerengine_esri.cpp b/src/plugins/geoservices/esri/geotiledmappingmanagerengine_esri.cpp
index a0f00615..23783d7e 100644
--- a/src/plugins/geoservices/esri/geotiledmappingmanagerengine_esri.cpp
+++ b/src/plugins/geoservices/esri/geotiledmappingmanagerengine_esri.cpp
@@ -101,6 +101,7 @@ GeoTiledMappingManagerEngineEsri::GeoTiledMappingManagerEngineEsri(const QVarian
cameraCaps.setMaximumTilt(80);
cameraCaps.setMinimumFieldOfView(20.0);
cameraCaps.setMaximumFieldOfView(120.0);
+ cameraCaps.setOverzoomEnabled(true);
setCameraCapabilities(cameraCaps);
setTileSize(QSize(256, 256));
@@ -117,7 +118,8 @@ GeoTiledMappingManagerEngineEsri::GeoTiledMappingManagerEngineEsri(const QVarian
mapSource->description(),
mapSource->mobile(),
mapSource->night(),
- mapSource->mapId());
+ mapSource->mapId(),
+ "esri");
}
setSupportedMapTypes(mapTypes);
@@ -199,6 +201,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 +224,9 @@ GeoTiledMappingManagerEngineEsri::~GeoTiledMappingManagerEngineEsri()
QGeoMap *GeoTiledMappingManagerEngineEsri::createMap()
{
- return new GeoTiledMapEsri(this);
+ QGeoTiledMap *map = new GeoTiledMapEsri(this);
+ map->setPrefetchStyle(m_prefetchStyle);
+ return map;
}
// ${z} = Zoom
@@ -226,7 +240,7 @@ bool GeoTiledMappingManagerEngineEsri::initializeMapSources(QGeoServiceProvider:
QString *errorString)
{
initResources();
- QFile mapsFile(":/maps.json");
+ QFile mapsFile(":/esri/maps.json");
if (!mapsFile.open(QIODevice::ReadOnly)) {
*error = QGeoServiceProvider::NotSupportedError;
diff --git a/src/plugins/geoservices/esri/geotilefetcher_esri.cpp b/src/plugins/geoservices/esri/geotilefetcher_esri.cpp
index 62484bbb..8ceba374 100644
--- a/src/plugins/geoservices/esri/geotilefetcher_esri.cpp
+++ b/src/plugins/geoservices/esri/geotilefetcher_esri.cpp
@@ -48,7 +48,7 @@
QT_BEGIN_NAMESPACE
-GeoTileFetcherEsri::GeoTileFetcherEsri(QObject *parent) :
+GeoTileFetcherEsri::GeoTileFetcherEsri(QGeoTiledMappingManagerEngine *parent) :
QGeoTileFetcher(parent), m_networkManager(new QNetworkAccessManager(this)),
m_userAgent(QByteArrayLiteral("Qt Location based application"))
{
diff --git a/src/plugins/geoservices/esri/geotilefetcher_esri.h b/src/plugins/geoservices/esri/geotilefetcher_esri.h
index 43dcfdfa..be948af1 100644
--- a/src/plugins/geoservices/esri/geotilefetcher_esri.h
+++ b/src/plugins/geoservices/esri/geotilefetcher_esri.h
@@ -52,7 +52,7 @@ class GeoTileFetcherEsri : public QGeoTileFetcher
Q_OBJECT
public:
- explicit GeoTileFetcherEsri(QObject *parent = Q_NULLPTR);
+ explicit GeoTileFetcherEsri(QGeoTiledMappingManagerEngine *parent);
inline const QByteArray &userAgent() const;
inline void setUserAgent(const QByteArray &userAgent);