was
the
tern
urce
Nser
rom
the
patial
used
order
nable
meter
rence
1S84.
International Archives of the Photogrammetry, Remote Sensing and Spatial Information Sciences, Volume XXXIX-B4, 2012
XXII ISPRS Congress, 25 August — 01 September 2012, Melbourne, Australia
However, it is possible to change to a different reference
system, e.g. for extraterrestrial visualizations.
In OpenWebGlobe, for compatibility reasons, the spherical
Mercator projection is used to map image and elevation data.
This projection is mainly used to minimize distortions in
processed images and elevation data (Snyder, 1987).
The maximum latitude is chosen so that the resulting map fits
into a square. For the spherical Mercator projection this
maximum latitude is approximately 85.05 degrees. The square
is used because the tiles are laid out in a quadtree. The quad-
tree data structure has been used by many popular web mapping
services like Google Maps, Bing Maps and OpenStreetMap. For
OpenWebGlobe the same tile structure can be used and
therefore be compatible with other tools for image data
processing.
3.2 The OpenWebGlobe Viewer
The OpenWebGlobe Viewer architecture is based on a
scenegraph like model and it uses an object oriented approach.
Among the basic objects (see Figure 2) is the context object
(ogContext) which is the combination of a render window and a
graphics engine. It corresponds to the WebGL context but in an
abstract form. The scene object (ogScene) describes the type of
virtual globe visualization. A virtual globe is usually
represented as a 3d ellipsoid (WGS84), but it is also planned to
create flat earth representations — especially for local scenes —
or to create a 2d visualization which is usually a 2d map-type
application. In the scene there is a camera object (ogCamera)
which controls what is visible. There can be several cameras in
à scene, but only one is active at a given time. The camera has a
navigation controller which allows navigation through the scene
— for example with the mouse and keyboard as input. There is a
default navigation controller available, but a custom navigation
can also be implemented.
oglontest
ete Viewport
Y P s + Projection
Renderer i » oglamera --
> Position
* ogNevigstionController
* WebGt ^" QOnentation
wv OogWord :
*" . ogimagelayer
weiss]
> ogElevationtayer
“+ ogPoilayer
,; OpBillbcardLayer
{dynamic content] ;
U0gt201 310g
^-« egGeometyLayer |
s1:2/q0-Ot
^w. egVoxellayer
Figure 2. Basic Objects of the OpenWebGlobe SDK
The world object (ogWorld) contains the globe in the format
Specified in the scene before (ellipsoid, flat, 2d). The world
consists of different layers which can be added or removed
during runtime. The most important layers are the image layer
(oglmageLayer) consisting of previously tiled orthophotos or
maps and the elevation layer (ogElevationLayer) consisting of
previously processed (tiled triangulated geometry) elevation
data (DEM). Both layers allow streaming of nearly unlimited
data. In addition, combinations of different image layers are
possible as shown in Figure 3. Here a high resolution image
layer from Switzerland is combined with tiled data from the
OpenStreetMap traffic layer.
Figure 3. Example for combination of different image layers;
image layer (25cm/pixel) and osm traffic layer combined and
displayed with an elevation layer (25m grid).
Furthermore the POI layer (ogPOILayer) contains points of
interest (POI), the geometry layer contains 3d objects and the
voxel layer preprocessed (tiled) 3d point cloud data. All layers
are streamable over the internet or from a local webserver.
As shown in Figure 4, there is also a number of more advanced
objects for 3d geometry, POI description, and binary or multi-
language text data described in the next sections.
Be ogMatertol
+ oglifthosrd
T£: c ogfext
Figure 4. Advanced Objects of the OpenWebGlobe SDK
3.2.1 Points of Interest (POIs)
For labeling some interesting points like mountain peaks, hotels
or gas stations POI objects (ogPOI) are typically used. The
graphical representation of a POI object within the globe
consists of a symbol and a label. POIs are arranged in a layer
object (ogPOILayer). Predefined functions for hiding, dragging
or picking POI objects are implemented. The POI size, font or
187