QGIS API Documentation 3.99.0-Master (21b3aa880ba)
Loading...
Searching...
No Matches
qgsesrii3sdataprovider.h
Go to the documentation of this file.
1/***************************************************************************
2 qgsesrii3sdataprovider.h
3 --------------------------------------
4 Date : July 2025
5 Copyright : (C) 2025 by Martin Dobias
6 Email : wonder dot sk at gmail dot com
7 ***************************************************************************
8 * *
9 * This program is free software; you can redistribute it and/or modify *
10 * it under the terms of the GNU General Public License as published by *
11 * the Free Software Foundation; either version 2 of the License, or *
12 * (at your option) any later version. *
13 * *
14 ***************************************************************************/
15
16#ifndef QGSESRII3SDATAPROVIDER_H
17#define QGSESRII3SDATAPROVIDER_H
18
19#include "qgis.h"
20#include "qgis_core.h"
21#include "qgsprovidermetadata.h"
23
24#define SIP_NO_FILE
25
26class QgsEsriI3SDataProviderSharedData;
27
29
35class CORE_EXPORT QgsEsriI3SDataProvider final: public QgsTiledSceneDataProvider
36{
37 Q_OBJECT
38 public:
39
41 QgsEsriI3SDataProvider( const QString &uri,
42 const QgsDataProvider::ProviderOptions &providerOptions,
44 QgsEsriI3SDataProvider( const QgsEsriI3SDataProvider &other );
45 QgsEsriI3SDataProvider &operator=( const QgsEsriI3SDataProvider &other ) = delete;
46
47 ~QgsEsriI3SDataProvider() final;
48 Qgis::DataProviderFlags flags() const override;
49 Qgis::TiledSceneProviderCapabilities capabilities() const final;
50 QgsEsriI3SDataProvider *clone() const final;
51 QgsCoordinateReferenceSystem crs() const final;
52 QgsRectangle extent() const final;
53 bool isValid() const final;
54 QString name() const final;
55 QString description() const final;
56 QString htmlMetadata() const final;
57 const QgsCoordinateReferenceSystem sceneCrs() const final;
58 const QgsTiledSceneBoundingVolume &boundingVolume() const final;
59 QgsTiledSceneIndex index() const final;
60 QgsDoubleRange zRange() const final;
61
62 private:
63
64 bool loadFromRestService( const QString &uri, json &layerJson, QString &i3sVersion );
65 bool loadFromSlpk( const QString &uri, json &layerJson, QString &i3sVersion );
66 bool checkI3SVersion( const QString &i3sVersion );
67
68 bool mIsValid = false;
69
70 std::shared_ptr<QgsEsriI3SDataProviderSharedData> mShared;
71
72};
73
79class QgsEsriI3SProviderMetadata : public QgsProviderMetadata
80{
81 Q_OBJECT
82
83 public:
84 QgsEsriI3SProviderMetadata();
85 QIcon icon() const override;
87 QgsEsriI3SDataProvider *createProvider( const QString &uri, const QgsDataProvider::ProviderOptions &options, Qgis::DataProviderReadFlags flags = Qgis::DataProviderReadFlags() ) override;
88 QString filters( Qgis::FileFilterType type ) override;
89 ProviderCapabilities providerCapabilities() const override;
90 QList< Qgis::LayerType > supportedLayerTypes() const override;
91 QList< Qgis::LayerType > validLayerTypesForUri( const QString &uri ) const override;
92 QVariantMap decodeUri( const QString &uri ) const override;
93 QString encodeUri( const QVariantMap &parts ) const override;
94 QList<QgsProviderSublayerDetails> querySublayers( const QString &uri, Qgis::SublayerQueryFlags flags, QgsFeedback *feedback ) const override;
95 int priorityForUri( const QString &uri ) const override;
96};
97
99
100#endif // QGSESRII3SDATAPROVIDER_H
Provides global constants and enumerations for use throughout the application.
Definition qgis.h:56
FileFilterType
Type of file filters.
Definition qgis.h:1354
QFlags< DataProviderReadFlag > DataProviderReadFlags
Flags which control data provider construction.
Definition qgis.h:486
QFlags< SublayerQueryFlag > SublayerQueryFlags
Sublayer query flags.
Definition qgis.h:1399
Represents a coordinate reference system (CRS).
QgsRange which stores a range of double values.
Definition qgsrange.h:233
Base class for feedback objects to be used for cancellation of something running in a worker thread.
Definition qgsfeedback.h:44
Holds data provider key, description, and associated shared library file or function pointer informat...
QFlags< ProviderMetadataCapability > ProviderMetadataCapabilities
A rectangle specified with double values.
Represents a bounding volume for a tiled scene.
Base class for data providers for QgsTiledSceneLayer.
virtual Qgis::TiledSceneProviderCapabilities capabilities() const
Returns flags containing the supported capabilities for the data provider.
QgsTiledSceneDataProvider & operator=(const QgsTiledSceneDataProvider &other)=delete
An index for tiled scene data providers.
Setting options for creating vector data providers.