Geophile's Architecture
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.