4#ifndef QTILEPROVIDEROSM_H
5#define QTILEPROVIDEROSM_H
7#include <QtLocation/private/qgeomaptype_p.h>
8#include <QtLocation/private/qgeocameracapabilities_p.h>
10#include <QtCore/QList>
11#include <QtNetwork/QNetworkAccessManager>
12#include <QtNetwork/QNetworkReply>
13#include <QtCore/QPointer>
16#include <QtCore/QJsonDocument>
17#include <QtCore/QJsonObject>
22class TileProvider:
public QObject
33 TileProvider(
const QUrl &urlRedirector,
bool highDpi =
false);
35 TileProvider(
const QString &urlTemplate,
36 const QString &format,
37 const QString ©RightMap,
38 const QString ©RightData,
40 int minimumZoomLevel = 0,
41 int maximumZoomLevel = 19);
44 void setNetworkManager(QNetworkAccessManager *nm);
46 void resolveProvider();
47 void handleError(QNetworkReply::NetworkError error);
50 inline bool isValid()
const;
51 inline bool isInvalid()
const;
52 inline bool isResolved()
const;
53 inline Status status()
const;
55 inline QString mapCopyRight()
const;
56 inline QString dataCopyRight()
const;
57 inline QString styleCopyRight()
const;
58 inline QString format()
const;
59 inline int minimumZoomLevel()
const;
60 inline int maximumZoomLevel()
const;
61 inline const QDateTime ×tamp()
const;
62 inline bool isHighDpi()
const;
63 inline bool isHTTPS()
const;
64 QUrl tileAddress(
int x,
int y,
int z)
const;
67 void setStyleCopyRight(
const QString ©right);
68 void setTimestamp(
const QDateTime ×tamp);
72 QNetworkAccessManager *m_nm;
73 QString m_urlTemplate;
75 QString m_copyRightMap;
76 QString m_copyRightData;
77 QString m_copyRightStyle;
80 int m_minimumZoomLevel;
81 int m_maximumZoomLevel;
82 QDateTime m_timestamp;
89 void resolutionFinished(TileProvider *provider);
90 void resolutionError(TileProvider *provider);
93 void onNetworkReplyFinished();
94 void onNetworkReplyError(QNetworkReply::NetworkError error);
96friend class QGeoTileProviderOsm;
104 friend class QGeoMapReplyOsm;
112 const QList<TileProvider *> &providers,
113 const QGeoCameraCapabilities &cameraCapabilities);
void onProviderResolutionError(const QGeoTileProviderOsm *provider, QNetworkReply::NetworkError error)
QList< QDateTime > m_maxMapIdTimestamps
QSharedPointer< QGeoTileTexture > getFromOfflineStorage(const QGeoTileSpec &spec)
QList< QGeoTileProviderOsm * > m_providers
QString tileSpecToFilename(const QGeoTileSpec &spec, const QString &format, const QString &directory) const override
void dropTiles(int mapId)
QGeoTileSpec filenameToTileSpec(const QString &filename) const override
QString tileSpecToFilename(const QGeoTileSpec &spec, const QString &format, int providerId) const
void loadTiles(int mapId)
QSharedPointer< QGeoTileTexture > get(const QGeoTileSpec &spec) override
void clearObsoleteTiles(const QGeoTileProviderOsm *p)
QGeoTileProviderOsm(QNetworkAccessManager *nm, const QGeoMapType &mapType, const QList< TileProvider * > &providers, const QGeoCameraCapabilities &cameraCapabilities)
QNetworkAccessManager * m_nm
void disableRedirection()
void resolutionRequired()
QString dataCopyRight() const
const QGeoMapType & mapType() const
QString mapCopyRight() const
QGeoCameraCapabilities m_cameraCapabilities
QGeoCameraCapabilities cameraCapabilities() const
QDateTime timestamp() const
void onResolutionError(TileProvider *provider)
void updateCameraCapabilities()
int maximumZoomLevel() const
QList< TileProvider * > m_providerList
void addProvider(TileProvider *provider)
QString styleCopyRight() const
void resolutionError(const QGeoTileProviderOsm *provider)
TileProvider * m_provider
int minimumZoomLevel() const
QUrl tileAddress(int x, int y, int z) const