The International Archives of the Photogrammetry, Remote Sensing and Spatial Information Sciences. Vol. XXXVII. Part B4. Beijing 2008
103
Objects’ features and relations have been set using a geometric
and topological model suited to the theory known as Boundary
Representation (Foley, 1995).
Real objects are represented using 0, 1, 2, 3 dimensional
primitives (e.g. node, edge, face, toposolid)' each primitive of a
higher order is made of primitives belonging to the previous
order.
Geometric primitives of 0, 1,2 dimension (e.g. point, curve,
surface) correspond to topological primitives of the same order.
Solids are bounded at least with 4 surfaces connected to each
other; surfaces must be flat and oriented in order to mark the
inner and the outer side of each plane.
Each surface is bounded with an ordered set of edges (outer
ring); empty areas are bounded with further inner rings. Each
edge must be a straight line, bounded with oriented nodes. Only
nodes are defined through x, y, z coordinates.
-H ■ 1
‘ tort node '
6 . enttnmte ,
/
ftëinîPfiïpvnï' "■ ài
Figure 1. The spatial model
In the development of a spatial model it is necessary to detect a
‘main’ class, whose properties are transferred to the others;
Giant Root can restrict properties of geometric and topological
classes.
groups of geometric objects with similar features; thematic
layers act in a similar way, since they collect geographical
objects linked with same-level relationships {_Construction,
Artefact, Transportation, etc.).
GIANT_Feature is a ‘type’ class to represent geographical
objects in the model.
The purpose is to manage composite geometric objects as if
they were geographical objects within the thematic structure of
the model (buildings, rivers, roads, etc.)
Geographical objects inherit the features of their thematic class
and the features of the corresponding geometric class, defined
in GML specifications (CompositePoint, CompositeCurve,
CompositeSurface, CompositeSolid) (Figure 2).
GlANTJheme
GWNT_Surf»ceCompcnent
ft.*
GtAWTjSurveC&mponent I GIANT^PansComponen!
Figure 2. Relations between geometric and thematic classes
‘Construction’ is the class of ‘ _Building’ and ‘_Artefact'; the
objects of this class are objects of the GIANT model, whose
properties are defined according to the GIANT Root class.
The fBuilding’ class includes urban objects classified as
buildings; his attributes are inherited from the class ‘'Building'
and from ‘BuildingPart'.
The main class is a subclass of JTopoPrimitive and of
_GeometricPrimitive, due to the constraint assigned to the
model that imposes the two classes are coincident. Such
structure can manage data and processes both topological and
geometric (Figure 1).
In the proposed model objects can be primitives or primitives
collections, but not complex objects.
The model uses the 'Xlink' concept from GML3 specifications.
It allows to define the spatial attribute of an object only once: if
an attribute is part of a higher order object, or of objects
belonging to different thematic classes, it can be linked.
A ‘gmT.id’ identifier has been attributed to each primitive; such
identifier can be recalled using the 'href attribute. Such
constraint removes redundancies and makes the database
simpler.
The model’s thematic layers {GIANTJTheme) act as the
‘composite’ geometric classes {CompositeCurve,
CompositeSurface, CompositeSolid). Geometric classes collect
A building can be divided in several parts {Building Part)
having their own identity.
A block represents an element of town planning scheme, but
several parts (buildings) usually constitute a block (Figure 3).
Building units inside each construction are defined through the
class ‘orizzontaipartitioning', which is an attribute of the
abstract class ‘_Building'.
The abstract class ‘ Building' allows the representation of 3D
geometric elements that constitute buildings’ bound. The model
uses the ‘bounded' geometric attribute, that is a
‘ _BoundedbyType'.
< ;. —— ■ ■ - ~>
<xs:complexType name="_BuildingType" abstract="true">
<xs:complexContent>
<xs:extension base="_ConstructionType">
<xs:sequence>
<xs:element name="bounded"
type="_BoundedbyType" minOccurs="07>
</xs:sequence>