18#ifndef QGSPOINTCLOUDDATAPROVIDER_H
19#define QGSPOINTCLOUDDATAPROVIDER_H
58 ReadLayerMetadata = 1 << 0,
59 WriteLayerMetadata = 1 << 1,
60 CreateRenderer = 1 << 2,
61 ContainSubIndexes = 1 << 3,
64 Q_DECLARE_FLAGS( Capabilities, Capability )
79 QgsDataProvider::ReadFlags flags = QgsDataProvider::ReadFlags() );
109 QVector<QMap<QString, QVariant>> res = sipCpp->identify( a0, *a1, *a2, a3 );
110 sipRes = PyList_New( res.size() );
111 for (
int i = 0; i < res.size(); ++i )
113 PyObject *dict = PyDict_New();
114 for ( QString key : res[i].keys() )
116 PyObject *keyObj = sipConvertFromNewType(
new QString( key ), sipType_QString, Py_None );
117 PyObject *valObj = sipConvertFromNewType(
new QVariant( res[i][key] ), sipType_QVariant, Py_None );
118 PyDict_SetItem( dict, keyObj, valObj );
120 PyList_SET_ITEM( sipRes, i, dict );
129 virtual QgsPointCloudDataProvider::Capabilities capabilities()
const;
176 virtual QVector<QgsPointCloudSubIndex>
subIndexes()
SIP_SKIP {
return QVector<QgsPointCloudSubIndex>(); }
191 bool hasValidIndex()
const;
217 virtual QVariantMap originalMetadata()
const;
239 virtual
bool hasStatisticsMetadata() const;
269 const QVariant res = sipCpp->metadataStatistic( *a0, a1 );
270 if ( !res.isValid() )
272 PyErr_SetString( PyExc_ValueError, QStringLiteral(
"Statistic is not available" ).toUtf8().constData() );
277 QVariant *v =
new QVariant( res );
278 sipRes = sipConvertFromNewType( v, sipType_QVariant, Py_None );
292 virtual QVariantList metadataClasses(
const QString &attribute )
const;
323 const QVariant res = sipCpp->metadataClassStatistic( *a0, *a1, a2 );
324 if ( !res.isValid() )
326 PyErr_SetString( PyExc_ValueError, QStringLiteral(
"Statistic is not available" ).toUtf8().constData() );
331 QVariant *v =
new QVariant( res );
332 sipRes = sipConvertFromNewType( v, sipType_QVariant, Py_None );
347 bool setSubsetString(
const QString &subset,
bool updateFeatureCount =
false )
override;
355 static QMap< int, QString > lasClassificationCodes();
363 static QMap< int, QString > translatedLasClassificationCodes();
370 static QMap< int, QString > dataFormatIds();
377 static QMap< int, QString > translatedDataFormatIds();
Represents a indexed point cloud node in octree.
Abstract base class for spatial data provider implementations.
virtual QString subsetString() const
Returns the subset definition string (typically sql) currently in use by the layer and used by the pr...
virtual bool setSubsetString(const QString &subset, bool updateFeatureCount=true)
Set the subset string used to create a subset of features in the layer.
QgsRange which stores a range of double values.
A geometry is the spatial representation of a feature.
Collection of point cloud attributes.
Base class for providing data for QgsPointCloudLayer.
Capability
Capabilities that providers may implement.
~QgsPointCloudDataProvider() override
virtual QgsPointCloudAttributeCollection attributes() const =0
Returns the attributes available from this data provider.
bool supportsSubsetString() const override
Returns true if the provider supports setting of subset strings.
virtual QVector< QgsPointCloudSubIndex > subIndexes()
Returns a list of sub indexes available if the provider supports multiple indexes,...
virtual void generateIndex()=0
Triggers generation of the point cloud index.
virtual void loadSubIndex(int n)
Triggers loading of the point cloud index for the n th sub index.
virtual void loadIndex()=0
Triggers loading of the point cloud index.
virtual qint64 pointCount() const =0
Returns the total number of points available in the dataset.
QString mSubsetString
String used to define a subset of the layer.
void indexGenerationStateChanged(QgsPointCloudDataProvider::PointCloudIndexGenerationState state)
Emitted when point cloud generation state is changed.
PointCloudIndexGenerationState
Point cloud index state.
virtual QgsPointCloudIndex * index() const
Returns the point cloud index associated with the provider.
virtual PointCloudIndexGenerationState indexingState()=0
Gets the current index generation state.
Represents a indexed point clouds data in octree.
Abstract base class for 2d point cloud renderers.
Class used to store statistics of a point cloud dataset.
Statistic
Enumeration of flags that specify statistics to be calculated.
Setting options for creating vector data providers.