diff options
Diffstat (limited to 'src/plugins/geoservices/esri')
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 ©right) : - 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); |