| |
|
|
Project GeoToolKit (1995 - 2001)
|
My task was to source out geo database techniques of GeoStore into an
external GIS library which can be developed on its own. The result of
this idea is GeoToolKit, a C++ 3D database core based on the OODBMS
ObjectStore. It offers 3D spatial data types and spatial indexes that
can be stored into an ObjectStore database. Furthermore, the toolkit
contains a set of spatial operations, functions and predicates which
are defined over all object classes. Thus, these methods are closed,
i.e. they can operate on any pair of objects of arbitrary type.
The predicates compute boolean values such as "object A contains object B".
Functions, on the other hand, map single objects or object pairs on a
scalar value, like "volume of object" or "shortest distance between
two objects". Finally, spatial operations create new spatial objects
out of existing ones. There are unary operators, such as "boundingbox
of an object", and binary operators, like "intersection of two objects".
The supported 3D data types include 0D-3D simplexes (point, line segment,
triangle and tetrahedron), 1D-3D complexes (curves, triangle meshes and
tetrahedron meshes) as well as analytical objects (line and plane).
For grouping of spatial objects of arbitrary type there is a special
compound object, a spatial group.
In addition to spatial objects also spatial access paths (indexes) are offered by
GeoToolKit. Spatial indexes accelerate the often needed access of
only parts of a spatial complex (such as the selection of a subarea of
a triangle mesh with help of a boundingbox).
|

Architecture (simplified view)

Example 1: Relief as triangle mesh with a boundingbox

Example 2: horizontal cut through the relief, intersection is a red polyline
|
|
|
For further information please go
here
Contributions: Design, architecture, implementation,
documenation, support
|
|
|
|