standing
lent, and
ial scale
ance the
inge and
ouble in
ormance
et based
) display
project,
lata. The
d by the
st future
sage etc.
mendous
in Web-
jased on
model of
ind non-
process.
an point
om GIS
ty (VR).
t allow
ions and
JR offers
ta. Users
planned
In most
viewing.
result in
are not
| analysis
language
:cess and
his paper
Various
3D/VR-
“rst, we
| section.
> Virtual
International Archives of the Photogrammetry, Remote Sensing and Spatial Information Sciences, Vol XXXV, Part B-YF. Istanbul 2004
2. WEB 3D
An important factor in a 3D GIS is remote access to the data.
Recent developments on the Web, i.e. VRML make possible
visualization and interaction with 3D models. The exploration
of the 3D worlds in the VR browsers ensures a certain level of
virtual reality techniques. Existing VRML, HTML and other
Web standards and software modules allow the development of
GUI with limited effort, relying on some operations provided
already by browsers. Therefore VRML and HTML will be
employed as a front-end engine to the 3D GIS model. This
project was started in order to visualize the 3D city model of
Stuttgart and find a way to connect the objects in the 3D scene
with their attributes in the land registry dataset. The motivation
was to give the user the ability to interact with the 3D scene not
only by moving around, but also to have access to the attributes
information by clicking on the objects. The given 3D dataset
only consists of geometry information so that an algorithm had
to be invented, which connects the geometry with the attributes.
In the test application the conversion from the given ASCII
format to VRML and the connection between the VRML
objects and the attribute data is done in one step.
This part is considered to be the Web3D part. Although the test
application is a desktop application, it is possible to realize the
concept on a website as well. The VRML viewer can be add in
web pages and the application part could be realized as a Java
Applet, which interacts with the viewer.
2.1 Tools
The chosen developing environment is Visual C++ 6.0 and for
VRML visualization, the Cortona Viewer by Parallel Graphics.
Parallel Graphics supports developers by the Cortona SDK
(User guide), which allows you to add the Cortona VRML
Viewer into your C++ projects as an ActiveX component. There
are also some event handler classes to handle mouse events, and
other interface functions so you can completely interact with the
viewer. To access the given land registry information in shape
format the C-library “shapelib” is used (Warmerdam, 2002),
which can access the geometry in the shp-file as well as the
attributes in the dbf-file.
2.2 Description of the 3D objects
The dataset delivered by the city administration Stuttgart,
consists of several files in ASCII format storing the geometry of
the buildings. These buildings are created of several parts. The
3-dimensional geometry of the roof is taken out of aerial stereo
photos by semi-automatic analysis. The floor is created by
intersection of the 2-dimensional outline of the building taken
from the land registry and the digital terrain model. This outline
should have been connected with the attributes but this
connection is not supported in the ASCII files, maybe because
the focus was only on visualization matters. To create the walls
of the building, the 3D floor outline is connected with the roof
geometry. A representative point is set inside the geometry,
which is used for connection between 3D objects and the
attributes in the shape-file.
2.3 Visualization
The 3D geometry dataset consists of several ASCII files, which
are consisting of point tables. Besides the x, y, z-coordinates
each point has got the attributes houseindex, wallindex,
typeofarea (roof, wall, floor). With the help of these attributes it
is possible to create an IndexedFaceSet-Node (IFS). The used
fields are shown in Figure 1. This VRML-Node seems to be the
best solution to describe the building geometry, because it can
describe complex objects, which consist of several areas, very
easily.
IndexedFaceSet(
exposedField SFNode color NULL
exposedField SFNode coord NULL
field | MFInt32 coordIndex []
field | MFInt32 colorIndex []
}
Figure 1. Part of VRML Specification '97
The used fields allow avoiding saving redundant points, which
makes the VRML-File smaller than the corresponding ASCII-
File. In the coord -field the points of the geometry are saved by
the x, y, z coordinates, and in the coordIndex-field all points
describing an area are listed by their index in the coord-field. So
it is possible to check if a new point is already in the coord-
field, if it is the point doesn't have to be saved again, only the
index of the previously saved point has to be used.
The algorithm to convert the ASCII information into VRML
syntax only has to go through the ASCII table and read the
coordinates and the attributes to decide when to create a new
building (IFS-Node), a new area or when to change the color of
the created area to color roof and walls differently.
To be able to identify the objects, what is essential for the
connection, you have to give each IFS-Node a unique identifier.
In VRML it is possible to give a Node a name called DEF-
Name. In the ASCII file the index for the buildings starts always
with one, so if this index is used and the 3D scene consists of
more than one ASCII file there is no unique identifier for the
buildings. Therefore a combination of filename and index is
used to form a kind of primary key for each building, which is
also used for the connection later on.
2.4 Connection to attribute data
The connection is done by a geometrical test. Each building of
the ASCII file has got a representative point inside its geometry.
The location of this point in the 2D land registry is checked and
if the point lies inside of a land registry building outline, the
dataset connected to this outline is considered to be connected
to the 3D building. This connection is saved in a text file (see
Table.1), to avoid doing this test each time a model is loaded.
DEF- DBF-
Name | Index Representative3D
Table 1. Connection Table
In this table (“connection table”) the DEF-Name of the 3D
object and the corresponding dbf index of the land registry
dataset are saved. The representative coordinates are saved in :
addition for query or analyzing matters.