Qt 6.x
The Qt SDK
Loading...
Searching...
No Matches
qgeotileproviderosm.h
Go to the documentation of this file.
1// Copyright (C) 2016 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
3
4#ifndef QTILEPROVIDEROSM_H
5#define QTILEPROVIDEROSM_H
6
7#include <QtLocation/private/qgeomaptype_p.h>
8#include <QtLocation/private/qgeocameracapabilities_p.h>
9#include <QtCore/QUrl>
10#include <QtCore/QList>
11#include <QtNetwork/QNetworkAccessManager>
12#include <QtNetwork/QNetworkReply>
13#include <QtCore/QPointer>
14#include <QTimer>
15#include <algorithm>
16#include <QtCore/QJsonDocument>
17#include <QtCore/QJsonObject>
18#include <QDateTime>
19
21
22class TileProvider: public QObject
23{
25public:
26 enum Status {Idle,
30
32 // "Online" constructor. Needs resolution to fetch the parameters
33 TileProvider(const QUrl &urlRedirector, bool highDpi = false);
34 // Offline constructor. Doesn't need URLRedirector and networkmanager
35 TileProvider(const QString &urlTemplate,
36 const QString &format,
37 const QString &copyRightMap,
38 const QString &copyRightData,
39 bool highDpi = false,
40 int minimumZoomLevel = 0,
41 int maximumZoomLevel = 19);
42
45
46 void resolveProvider();
48 void setupProvider();
49
50 inline bool isValid() const;
51 inline bool isInvalid() const;
52 inline bool isResolved() const;
53 inline Status status() const;
54
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 &timestamp() const;
62 inline bool isHighDpi() const;
63 inline bool isHTTPS() const;
64 QUrl tileAddress(int x, int y, int z) const;
65
66 // Optional properties, not needed to construct a provider
67 void setStyleCopyRight(const QString &copyright);
68 void setTimestamp(const QDateTime &timestamp);
69
71 QUrl m_urlRedirector; // The URL from where to fetch the URL template in case of a provider to resolve.
84
85 int paramsLUT[3]; //Lookup table to handle possibly shuffled x,y,z
86 QString paramsSep[2]; // what goes in between %x, %y and %z
87
91
92public Q_SLOTS:
95
97};
98
100{
102
103 friend class QGeoTileFetcherOsm;
104 friend class QGeoMapReplyOsm;
106public:
110
112 const QList<TileProvider *> &providers,
115
116 QUrl tileAddress(int x, int y, int z) const;
117 QString mapCopyRight() const;
118 QString dataCopyRight() const;
119 QString styleCopyRight() const;
120 QString format() const;
121 int minimumZoomLevel() const;
122 int maximumZoomLevel() const;
123 bool isHighDpi() const;
124 const QGeoMapType &mapType() const;
125 bool isValid() const;
126 bool isResolved() const;
127 QDateTime timestamp() const;
129
134
135public Q_SLOTS:
136 void resolveProvider();
137 void disableRedirection();
138
139protected Q_SLOTS:
140 void onResolutionFinished(TileProvider *provider);
141 void onResolutionError(TileProvider *provider);
143
144protected:
145 void addProvider(TileProvider *provider);
146
147/* Data members */
148
156};
157
159
160#endif // QTILEPROVIDEROSM_H
\inmodule QtCore\reentrant
Definition qdatetime.h:257
QNetworkAccessManager * m_nm
void onResolutionFinished(TileProvider *provider)
QString dataCopyRight() const
const QGeoMapType & mapType() const
QGeoCameraCapabilities m_cameraCapabilities
QGeoCameraCapabilities cameraCapabilities() const
QDateTime timestamp() const
void onResolutionError(TileProvider *provider)
QList< TileProvider * > m_providerList
void addProvider(TileProvider *provider)
void resolutionFinished(const QGeoTileProviderOsm *provider)
QString styleCopyRight() const
void resolutionError(const QGeoTileProviderOsm *provider)
QUrl tileAddress(int x, int y, int z) const
Definition qlist.h:74
The QNetworkAccessManager class allows the application to send network requests and receive replies.
NetworkError
Indicates all possible error conditions found during the processing of the request.
\inmodule QtCore
Definition qobject.h:90
\macro QT_RESTRICTED_CAST_FROM_ASCII
Definition qstring.h:127
\inmodule QtCore
Definition qurl.h:94
int minimumZoomLevel() const
void handleError(QNetworkReply::NetworkError error)
void onNetworkReplyError(QNetworkReply::NetworkError error)
int maximumZoomLevel() const
QString styleCopyRight() const
QString dataCopyRight() const
void resolutionFinished(TileProvider *provider)
bool isResolved() const
Status status() const
void setStyleCopyRight(const QString &copyright)
void setNetworkManager(QNetworkAccessManager *nm)
QString mapCopyRight() const
QUrl tileAddress(int x, int y, int z) const
QNetworkAccessManager * m_nm
QString format() const
const QDateTime & timestamp() const
void resolutionError(TileProvider *provider)
void setTimestamp(const QDateTime &timestamp)
Combined button and popup list for selecting options.
DBusConnection const char DBusError * error
GLuint GLfloat GLfloat GLfloat GLfloat GLfloat z
GLint GLint GLint GLint GLint x
[0]
GLint GLsizei GLsizei GLenum format
GLint y
#define Q_OBJECT
#define Q_SLOTS
#define Q_SIGNALS