/************************************************************************ * This file has been generated automatically from * * * * src/core/qgsspatialindex.h * * * * Do not edit manually ! Edit header and run scripts/sipify.pl again * ************************************************************************/ class QgsSpatialIndex : QgsFeatureSink { %Docstring A spatial index for QgsFeature objects. QgsSpatialIndex objects are implicitly shared and can be inexpensively copied. .. note:: While the underlying libspatialindex is not thread safe on some platforms, the QgsSpatialIndex class implements its own locks and accordingly, a single QgsSpatialIndex object can safely be used across multiple threads. .. seealso:: :py:class:`QgsSpatialIndexKDBush` .. seealso:: :py:class:`QgsMeshSpatialIndex` %End %TypeHeaderCode #include "qgsspatialindex.h" %End public: enum Flag { FlagStoreFeatureGeometries, }; typedef QFlags Flags; QgsSpatialIndex( QgsSpatialIndex::Flags flags = 0 ); %Docstring Constructor for QgsSpatialIndex. Creates an empty R-tree index. %End explicit QgsSpatialIndex( const QgsFeatureIterator &fi, QgsFeedback *feedback = 0, QgsSpatialIndex::Flags flags = 0 ); %Docstring Constructor - creates R-tree and bulk loads it with features from the iterator. This is much faster approach than creating an empty index and then inserting features one by one. The optional ``feedback`` object can be used to allow cancelation of bulk feature loading. Ownership of ``feedback`` is not transferred, and callers must take care that the lifetime of feedback exceeds that of the spatial index construction. .. versionadded:: 2.8 %End explicit QgsSpatialIndex( const QgsFeatureSource &source, QgsFeedback *feedback = 0, QgsSpatialIndex::Flags flags = 0 ); %Docstring Constructor - creates R-tree and bulk loads it with features from the source. This is much faster approach than creating an empty index and then inserting features one by one. The optional ``feedback`` object can be used to allow cancelation of bulk feature loading. Ownership of ``feedback`` is not transferred, and callers must take care that the lifetime of feedback exceeds that of the spatial index construction. .. versionadded:: 3.0 %End QgsSpatialIndex( const QgsSpatialIndex &other ); %Docstring Copy constructor %End ~QgsSpatialIndex(); bool insertFeature( const QgsFeature &feature ) /Deprecated/; %Docstring Adds a ``feature`` to the index. .. deprecated:: Use addFeature() instead %End virtual bool addFeature( QgsFeature &feature, QgsFeatureSink::Flags flags = 0 ); %Docstring Adds a ``feature`` to the index. The ``flags`` argument is ignored. .. versionadded:: 3.4 %End virtual bool addFeatures( QgsFeatureList &features, QgsFeatureSink::Flags flags = 0 ); %Docstring Adds a list of ``features`` to the index. The ``flags`` argument is ignored. .. seealso:: :py:func:`addFeature` %End bool insertFeature( QgsFeatureId id, const QgsRectangle &bounds ) /Deprecated/; %Docstring Add a feature ``id`` to the index with a specified bounding box. :return: true if feature was successfully added to index. .. deprecated:: Use addFeature() instead %End bool addFeature( QgsFeatureId id, const QgsRectangle &bounds ); %Docstring Add a feature ``id`` to the index with a specified bounding box. :return: true if feature was successfully added to index. .. versionadded:: 3.4 %End bool deleteFeature( const QgsFeature &feature ); %Docstring Removes a ``feature`` from the index. %End QList intersects( const QgsRectangle &rectangle ) const; %Docstring Returns a list of features with a bounding box which intersects the specified ``rectangle``. .. note:: The intersection test is performed based on the feature bounding boxes only, so for non-point geometry features it is necessary to manually test the returned features for exact geometry intersection when required. %End QList nearestNeighbor( const QgsPointXY &point, int neighbors ) const; %Docstring Returns nearest neighbors to a ``point``. The number of neighbours returned is specified by the ``neighbours`` argument. .. note:: The nearest neighbour test is performed based on the feature bounding boxes only, so for non-point geometry features this method is not guaranteed to return the actual closest neighbours. %End SIP_PYOBJECT geometry( QgsFeatureId id ) const /TypeHint="QgsGeometry"/; %Docstring Returns the stored geometry for the indexed feature with matching ``id``. A KeyError will be raised if no geometry with the specified feature id exists in the index. Geometry is only stored if the QgsSpatialIndex was created with the FlagStoreFeatureGeometries flag. .. versionadded:: 3.6 %End %MethodCode std::unique_ptr< QgsGeometry > g = qgis::make_unique< QgsGeometry >( sipCpp->geometry( a0 ) ); if ( g->isNull() ) { PyErr_SetString( PyExc_KeyError, QStringLiteral( "No geometry with feature id %1 exists in the index." ).arg( a0 ).toUtf8().constData() ); sipIsErr = 1; } else { sipRes = sipConvertFromType( g.release(), sipType_QgsGeometry, Py_None ); } %End int refs() const; %Docstring Gets reference count - just for debugging! %End }; QFlags operator|(QgsSpatialIndex::Flag f1, QFlags f2); /************************************************************************ * This file has been generated automatically from * * * * src/core/qgsspatialindex.h * * * * Do not edit manually ! Edit header and run scripts/sipify.pl again * ************************************************************************/