QGIS API Documentation  3.13.0-Master (13337b20cd)
Public Member Functions | Friends | List of all members
QgsSpatialIndexKDBush Class Reference

A very fast static spatial index for 2D points based on a flat KD-tree. More...

#include <qgsspatialindexkdbush.h>

Public Member Functions

 QgsSpatialIndexKDBush (QgsFeatureIterator &fi, QgsFeedback *feedback=nullptr)
 Constructor - creates KDBush index and bulk loads it with features from the iterator. More...
 
 QgsSpatialIndexKDBush (const QgsFeatureSource &source, QgsFeedback *feedback=nullptr)
 Constructor - creates KDBush index and bulk loads it with features from the source. More...
 
 QgsSpatialIndexKDBush (const QgsSpatialIndexKDBush &other)
 Copy constructor. More...
 
 ~QgsSpatialIndexKDBush ()
 
QList< QgsSpatialIndexKDBushDataintersects (const QgsRectangle &rectangle) const
 Returns the list of features which fall within the specified rectangle. More...
 
void intersects (const QgsRectangle &rectangle, const std::function< void(QgsSpatialIndexKDBushData)> &visitor) const
 Calls a visitor function for all features which fall within the specified rectangle. More...
 
QgsSpatialIndexKDBushoperator= (const QgsSpatialIndexKDBush &other)
 Assignment operator. More...
 
qgssize size () const
 Returns the size of the index, i.e. More...
 
QList< QgsSpatialIndexKDBushDatawithin (const QgsPointXY &point, double radius) const
 Returns the list of features which are within the given search radius of point. More...
 
void within (const QgsPointXY &point, double radius, const std::function< void(QgsSpatialIndexKDBushData)> &visitor)
 Calls a visitor function for all features which are within the given search radius of point. More...
 

Friends

class TestQgsSpatialIndexKdBush
 

Detailed Description

A very fast static spatial index for 2D points based on a flat KD-tree.

Compared to QgsSpatialIndex, this index:

QgsSpatialIndexKDBush objects are implicitly shared and can be inexpensively copied.

See also
QgsSpatialIndex, which is an general, mutable index for geometry bounding boxes.
Since
QGIS 3.4

Definition at line 53 of file qgsspatialindexkdbush.h.

Constructor & Destructor Documentation

◆ QgsSpatialIndexKDBush() [1/3]

QgsSpatialIndexKDBush::QgsSpatialIndexKDBush ( QgsFeatureIterator fi,
QgsFeedback feedback = nullptr 
)
explicit

Constructor - creates KDBush index and bulk loads it with features from the iterator.

The optional feedback object can be used to allow cancellation 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.

Any non-single point features encountered during iteration will be ignored and not included in the index.

Definition at line 24 of file qgsspatialindexkdbush.cpp.

◆ QgsSpatialIndexKDBush() [2/3]

QgsSpatialIndexKDBush::QgsSpatialIndexKDBush ( const QgsFeatureSource source,
QgsFeedback feedback = nullptr 
)
explicit

Constructor - creates KDBush index and bulk loads it with features from the source.

The optional feedback object can be used to allow cancellation 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.

Any non-single point features encountered during iteration will be ignored and not included in the index.

Definition at line 30 of file qgsspatialindexkdbush.cpp.

◆ QgsSpatialIndexKDBush() [3/3]

QgsSpatialIndexKDBush::QgsSpatialIndexKDBush ( const QgsSpatialIndexKDBush other)

Copy constructor.

Definition at line 35 of file qgsspatialindexkdbush.cpp.

◆ ~QgsSpatialIndexKDBush()

QgsSpatialIndexKDBush::~QgsSpatialIndexKDBush ( )

Definition at line 53 of file qgsspatialindexkdbush.cpp.

Member Function Documentation

◆ intersects() [1/2]

QList< QgsSpatialIndexKDBushData > QgsSpatialIndexKDBush::intersects ( const QgsRectangle rectangle) const

Returns the list of features which fall within the specified rectangle.

Definition at line 76 of file qgsspatialindexkdbush.cpp.

◆ intersects() [2/2]

void QgsSpatialIndexKDBush::intersects ( const QgsRectangle rectangle,
const std::function< void(QgsSpatialIndexKDBushData)> &  visitor 
) const

Calls a visitor function for all features which fall within the specified rectangle.

Note
Not available in Python bindings

Definition at line 86 of file qgsspatialindexkdbush.cpp.

◆ operator=()

QgsSpatialIndexKDBush & QgsSpatialIndexKDBush::operator= ( const QgsSpatialIndexKDBush other)

Assignment operator.

Definition at line 41 of file qgsspatialindexkdbush.cpp.

◆ size()

qgssize QgsSpatialIndexKDBush::size ( ) const

Returns the size of the index, i.e.

the number of points contained within the index.

Definition at line 71 of file qgsspatialindexkdbush.cpp.

◆ within() [1/2]

QList< QgsSpatialIndexKDBushData > QgsSpatialIndexKDBush::within ( const QgsPointXY point,
double  radius 
) const

Returns the list of features which are within the given search radius of point.

Definition at line 59 of file qgsspatialindexkdbush.cpp.

◆ within() [2/2]

void QgsSpatialIndexKDBush::within ( const QgsPointXY point,
double  radius,
const std::function< void(QgsSpatialIndexKDBushData)> &  visitor 
)

Calls a visitor function for all features which are within the given search radius of point.

Note
Not available in Python bindings

Definition at line 66 of file qgsspatialindexkdbush.cpp.

Friends And Related Function Documentation

◆ TestQgsSpatialIndexKdBush

friend class TestQgsSpatialIndexKdBush
friend

Definition at line 123 of file qgsspatialindexkdbush.h.


The documentation for this class was generated from the following files: