Geophile is a C++ library which implements fast spatial searches. It
can be used for spatial objects in any number of dimensions; for
static or dynamic data sets; no matter where the data is stored - in
virtual memory, in a file, in a relational database system, or in an
object-oriented database system. This allows developers to work with
one simple API for implementing fast spatial searches, no matter where
the data is stored, no matter what kind of objects are involved.
It is not feasible to achieve this generality by simply assembling a large collection of specialized data structures. Instead, Geophile is written in terms of two abstractions: an index abstraction and a spatial object abstraction.
Geophile uses these two abstractions to provide a completely general
spatial index. This diagram shows these abstractions with two
implementations of each.