15#ifndef QGSARCGISRESTQUERY_H
16#define QGSARCGISRESTQUERY_H
57 static QVariantMap getServiceInfo(
58 const QString &baseurl,
59 const QString &authcfg,
63 const QString &urlPrefix = QString(),
64 bool forceRefresh =
false
70 static QVariantMap getLayerInfo(
71 const QString &layerurl,
const QString &authcfg, QString &errorTitle, QString &errorText,
const QgsHttpHeaders &requestHeaders =
QgsHttpHeaders(),
const QString &urlPrefix = QString()
77 static QVariantMap getObjectIds(
78 const QString &layerurl,
79 const QString &authcfg,
83 const QString &urlPrefix = QString(),
85 const QString &whereClause = QString()
95 const QString &layerurl,
const QString &whereClause,
const QString &authcfg,
const QgsHttpHeaders &requestHeaders =
QgsHttpHeaders(),
const QString &urlPrefix = QString()
119 static QVariantMap getObjects(
120 const QString &layerurl,
121 const QString &authcfg,
122 const QList<quint32> &objectIds,
125 const QStringList &fetchAttributes,
132 const QString &urlPrefix = QString()
138 static QList<quint32> getObjectIdsByExtent(
139 const QString &layerurl,
143 const QString &authcfg,
146 const QString &whereClause = QString(),
147 const QString &urlPrefix = QString()
153 static QByteArray queryService(
155 const QString &authcfg,
160 QString *contentType =
nullptr,
161 const QString &urlPrefix = QString(),
162 bool forceRefresh =
false
167 static QVariantMap queryServiceJSON(
169 const QString &authcfg,
174 const QString &urlPrefix = QString(),
175 bool forceRefresh =
false
181 static void visitFolderItems(
const std::function<
void(
const QString &folderName,
const QString &url )> &visitor,
const QVariantMap &serviceData,
const QString &baseUrl );
186 static void visitServiceItems(
187 const std::function<
void(
const QString &serviceName,
const QString &url,
Qgis::ArcGisRestServiceType serviceType )> &visitor,
const QVariantMap &serviceData,
const QString &baseUrl
228 const QVariantMap &serviceData,
229 const QString &parentUrl,
230 const QString &parentSupportedFormats,
237 static QUrl
parseUrl(
const QUrl &url,
bool *isTestEndpoint =
nullptr );
240 static void adjustBaseUrl( QString &baseUrl,
const QString &name );
246class CORE_EXPORT QgsArcGisAsyncQuery :
public QObject
250 QgsArcGisAsyncQuery( QObject *parent =
nullptr );
251 ~QgsArcGisAsyncQuery()
override;
253 void start(
const QUrl &url,
const QString &authCfg, QByteArray *result,
bool allowCache =
false,
const QgsHttpHeaders &headers =
QgsHttpHeaders(),
const QString &urlPrefix = QString() );
256 void failed( QString errorTitle, QString errorName );
261 QPointer<QNetworkReply> mReply;
262 QByteArray *mResult =
nullptr;
265class CORE_EXPORT QgsArcGisAsyncParallelQuery :
public QObject
269 QgsArcGisAsyncParallelQuery(
const QString &authcfg,
const QgsHttpHeaders &requestHeaders, QObject *parent =
nullptr );
270 void start(
const QVector<QUrl> &urls, QVector<QByteArray> *results,
bool allowCache =
false );
273 void finished( QStringList errors );
278 QVector<QByteArray> *mResults =
nullptr;
279 int mPendingRequests = 0;
282 QgsHttpHeaders mRequestHeaders;
ArcGisRestServiceType
Available ArcGIS REST service types.
GeometryType
The geometry types are used to group Qgis::WkbType in a coarse way.
Utility functions for querying ArcGIS REST services.
friend class TestQgsArcGisRestUtils
static QUrl parseUrl(const QUrl &url, bool *isTestEndpoint=nullptr)
Parses and processes a url.
ServiceTypeFilter
Service types.
static void addLayerItems(const std::function< void(const LayerItemDetails &details)> &visitor, const QVariantMap &serviceData, const QString &parentUrl, const QString &parentSupportedFormats, const ServiceTypeFilter filter=ServiceTypeFilter::AllTypes)
Calls the specified visitor function on all layer items found within the given service data.
Represents a coordinate reference system (CRS).
Base class for feedback objects to be used for cancellation of something running in a worker thread.
A rectangle specified with double values.
Encapsulates details relating to a layer item.
ServiceTypeFilter serviceType
Service type.
bool isMapServerWithQueryCapability
true if layer is a map server with the query capability
QString description
Description.
QString format
Map server image format.
QgsCoordinateReferenceSystem crs
Coordinate reference system.
bool isMapServerSpecialAllLayersOption
true if layer is the special map server "all layers" layer
bool isParentLayer
true if layer item represents a parent layer
QString parentLayerId
Parent layer ID.
Qgis::GeometryType geometryType
Geometry type.