Qt
Internal/Contributor docs for the Qt SDK. <b>Note:</b> These are NOT official API docs; those are found <a href='https://doc.qt.io/'>here</a>.
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
150 QList<TileProvider *> m_providerList;
156};
157
159
160#endif // QTILEPROVIDEROSM_H
\inmodule QtCore\reentrant
Definition qdatetime.h:283
QGeoTileProviderOsm(QNetworkAccessManager *nm, const QGeoMapType &mapType, const QList< TileProvider * > &providers, const QGeoCameraCapabilities &cameraCapabilities)
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
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:103
\macro QT_RESTRICTED_CAST_FROM_ASCII
Definition qstring.h:129
\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