Crate rstar

Source
Expand description

An n-dimensional r*-tree implementation for use as a spatial index.

This crate implements a flexible, n-dimensional r-tree implementation with the r* (r star) insertion strategy.

§R-Tree

An r-tree is a data structure containing spatial data, optimized for nearest neighbor search. Spatial data refers to an object that has the notion of a position and extent: for example points, lines and rectangles in any dimension.

§Further documentation

The crate’s main data structure and documentation is the RTree struct.

§Primitives

The pre-defined primitives like lines and rectangles contained in the primitives module may be of interest for a quick start.

§Geo

For use with the wider Georust ecosystem, the primitives in the geo crate can also be used.

§(De)Serialization

Enable the serde feature for serde support.

§Mint compatibility with other crates

Enable the mint feature for mint support. See the documentation on the [mint] module for an expample of an integration with the nalgebra crate.

Modules§

iterators
Iterator types
primitives
Contains primitives ready for insertion into an r-tree.

Structs§

AABB
An n-dimensional axis aligned bounding box (AABB).
DefaultParams
The default parameters used when creating an r-tree without specific parameters.
ParentNode
Represents an internal parent node.
RTree
An n-dimensional r-tree data structure.

Enums§

RStarInsertionStrategy
Inserts points according to the r-star heuristic.
RTreeNode
An internal tree node.

Traits§

Envelope
An envelope type that encompasses some child nodes.
InsertionStrategy
Defines how points are inserted into an r-tree.
Point
Defines a point type that is compatible with rstar.
PointDistance
Defines objects which can calculate their minimal distance to a point.
RTreeNum
Defines a number type that is compatible with rstar.
RTreeObject
An object that can be inserted into an r-tree.
RTreeParams
Defines static parameters for an r-tree.
SelectionFunction
Advanced trait to iterate through an r-tree. Usually it should not be required to be implemented.