Spatial objects can be divided into point feature, line feature,
surface feature and complex feature. Four corresponding classes
in CH are declared as subclasses of the class SPATIAL
OBJECT. At the same time, they are supercalsses of all features
in GIS (see Figure 2). Generally, the feature classes are defined
by the user. Except SPATIAL OBJECT, NODE-POINT, LINE,
SURFACE, and COMPLEX, the classes ARC,
ANNOTATION, PARTITION, PROJECT and type
LOCATION are system-defined. The class PARTITION and the
class PROJECT contain some matedata attributes and spatial
operations like spatial index, attribute merge in different
partitions etc..
System-defined classes have system-defined geometric
attributes and some operations, which are inherited by the
user-defined subclasses.
Objects are identified by an object identifier (OID). An objec
identifier is generated by the system and represented by the
system-defined attribute OID which the user can refer to. The
object identifier is not reused even when the object is deleted.
Geographic information systems using object identifier have the
advantage that only the topology of modified objects need to be
rebuilt when spatial data are edited. While a GIS based on
records must re-build topology for all objects in a coverage
when an arc or a polygon is modified.
The system-defined classes containing attributes and methods,
are an extended subset of C++, which form an engine for spatial
database management. Actually they are functions and
attributes of Application Programming Interface (API) based on
C++. The user can define new classes, and add new attributes
and operations for user-defined classes. If he declares that the
new class is a subclass of system-defined classes, all attributes
and operations from its superclasses, including superclass of
superclass, for example class SPATIAL OBJECT, are
inherited. The engine provides sufficient system-defined classes
with their attributes and operations to make possible a wide
variety of applications in GIS.
In GeoDB, spatial topological relations and complex objects
are represented by object identifiers. Nested relations make it
possible to represent complex objects through clustering. There
are seven geometric classes in Figure 3, which are COMPLEX,
SURFACE, LINE, NODE-POINT, ANNOTATION, ARC, and
one LOCATION type. Each spatial object has an identifier,
which contains class identifier, so the inspection of an object
identifier of an object can determine the class to which the
object belongs without looking up the content of the object.
While the type LOCATION contains only coordinates not
identifier. In this model, classes COMPLEX, SURFACE, LINE,
ARC, and NODE-POINT are feature classes which have
302
attributes. Class ANNOTATION is a secondary class and each
annotation is related to its object.
In object-oriented logical data model, an object class can be
constructed into a table, in which we can explicitly declare its
relations with other classes. Unlike relational data model, a
table can not represent an entity type and the relations. The
object manipulation functions support associative access of
object and direct access of complex object without explicit
joints.
The GeoDB provides some main functions of commercial
database management system like page buffer, object buffer,
data security, integrity control, multiple user access and
concurrency management, object index, spatial index, and etc.
The system architecture is shown in figure 6.
The data management subsystem provides nested relations and
supports variable-length records so that it can efficiently store
objects, which have several kinds of non-formal structures such
as variable-length attributes, set of object identifiers and multi-
value attributes. A tuple represents an object. When
information that an object contains can not fix its length, a
variable-length tuple need be set to store the variable-length
data. The data management subsystem provides two data types,
fixed-length and variable-length fields.
The data management subsystem in GeoDB can store both
spatial data and non-spatial data. It has the same storage
management functions as commercial DBMS. However, in
order to interface with some other general DBMS like Oracle,
Sybase, Ingres, Paradox and etc., a gateway in GeoDB will be
developed as a general-purpose extended relational database
system to support the object-oriented spatial data model and
provide the operations on top of RDBMS. (We can adopt the
ODBC as API of the gateway). It replaces the data management
in GeoDB for data storage. The object management, object
buffer, object index, spatial index, object manipulation, schema
definition, and spatial topological relations building and
maintainenance are still accomplished by the object-oriented
spatial data management engine.
5. OBJECT-ORIENTED GEOGRAPHIC INFORMATION
SYSTEM
An object-oriented geographic information system based upon
the object-oriented spatial database management engine
(GeoDB) has been developed by the Research Center for
Geographic Information System at Wuhan Technical University
of Surveying and Mapping in China. The system is named
GeoStar. It is developed with C++ and includes the modules
shown in Figure 4.
International Archives of Photogrammetry and Remote Sensing. Vol. XXXI, Part B4. Vienna 1996
The m
on tab
to noc
input :
The t
radion
geome
conver
mosaic
classif
The th
query.