The purpose of this library is to provide:
An extensible framework that will support robust spatial indexing methods.
Support for sophisticated spatial queries. Range, point location, nearest neighbor and k-nearest neighbor as well as parametric queries (defined by spatial constraints) should be easy to deploy and run.
Easy to use interfaces for inserting, deleting and updating information.
Wide variety of customization capabilities. Basic index and storage characteristics like the page size, node capacity, minimum fan-out, splitting algorithm, etc. should be easy to customize.
Index persistence. Internal memory and external memory structures should be supported. Clustered and non-clustered indices should be easy to be persisted.
libspatialindex provides spatial indexing utilities, with support for sophisticated spatial queries and interfaces for updating information and customizing the storage management of indices. The library is written in C++, with a C API.