16 #ifndef QGSSPATIALINDEX_H 
   17 #define QGSSPATIALINDEX_H 
   25   class IStorageManager;
 
   30   namespace StorageManager
 
   41 #include "qgis_core.h" 
   44 #include <QSharedDataPointer> 
   48 class QgsSpatialIndexData;
 
   77       FlagStoreFeatureGeometries = 1 << 0, 
 
   79     Q_DECLARE_FLAGS( Flags, Flag )
 
   84     QgsSpatialIndex( QgsSpatialIndex::Flags flags = QgsSpatialIndex::Flags() );
 
  152     bool addFeature( 
QgsFeature &feature, QgsFeatureSink::Flags flags = QgsFeatureSink::Flags() ) 
override;
 
  180     bool deleteFeature( 
const QgsFeature &feature );
 
  192     QList<QgsFeatureId> intersects( 
const QgsRectangle &rectangle ) 
const;
 
  210     QList<QgsFeatureId> nearestNeighbor( 
const QgsPointXY &point, 
int neighbors = 1, 
double maxDistance = 0 ) 
const;
 
  230     QList<QgsFeatureId> nearestNeighbor( 
const QgsGeometry &geometry, 
int neighbors = 1, 
double maxDistance = 0 ) 
const;
 
  256     std::unique_ptr< QgsGeometry > g = std::make_unique< QgsGeometry >( sipCpp->geometry( a0 ) );
 
  259       PyErr_SetString( PyExc_KeyError, QStringLiteral( 
"No geometry with feature id %1 exists in the index." ).arg( a0 ).toUtf8().constData() );
 
  264       sipRes = sipConvertFromType( g.release(), sipType_QgsGeometry, Py_None );
 
  297     friend class QgsFeatureIteratorDataStream; 
 
  301     QSharedDataPointer<QgsSpatialIndexData> d;
 
Wrapper for iterator of features from vector data provider or vector layer.
An interface for objects which accept features via addFeature(s) methods.
virtual bool addFeature(QgsFeature &feature, QgsFeatureSink::Flags flags=QgsFeatureSink::Flags())
Adds a single feature to the sink.
Flag
Flags controlling how features are added to a sink.
virtual bool addFeatures(QgsFeatureList &features, QgsFeatureSink::Flags flags=QgsFeatureSink::Flags())=0
Adds a list of features to the sink.
An interface for objects which provide features via a getFeatures method.
The feature class encapsulates a single feature including its unique ID, geometry and a list of field...
Base class for feedback objects to be used for cancellation of something running in a worker thread.
A geometry is the spatial representation of a feature.
A class to represent a 2D point.
A rectangle specified with double values.
A spatial index for QgsFeature objects.
QgsSpatialIndex(const QgsFeatureIterator &fi, const std::function< bool(const QgsFeature &) > &callback, QgsSpatialIndex::Flags flags=QgsSpatialIndex::Flags())
Constructor - creates R-tree and bulk loads it with features from the iterator.
#define SIP_TYPEHINT(type)
#define SIP_PYALTERNATIVETYPE(type)
QList< QgsFeature > QgsFeatureList
qint64 QgsFeatureId
64 bit feature ids negative numbers are used for uncommitted/newly added features
Q_DECLARE_OPERATORS_FOR_FLAGS(QgsField::ConfigurationFlags) CORE_EXPORT QDataStream &operator<<(QDataStream &out
Writes the field to stream out. QGIS version compatibility is not guaranteed.