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
color can be designed individually by changing different style
attributes. Labels can be defined in any language and special
characters according to UTF8 are supported. A sample scene of
swiss mountain peaks labeled with POIs is shown in figure Sa.
3.2.2 3d Models
Cities, Buildings and other geometries can be loaded into the
globe as a Geometry Object (ogGeometry). The definition of a
geometry object has to be stored in a JSON File (JavaScript
Object Notation) according to a defined file description. These
JSON Files can then be loaded asynchronously into the globe.
OpenWebGlobe currently supports colored and textured 3d
models. Converter scripts from wavefront obj or collada format
are available. Figure 5b shows some textured 3d models within
the globe.
3.2.3 Billboards
Since the release of HTMLS a so called canvas element is
available. It is possible to draw or write into such a canvas
element by simple JavaScript functions. These painted canvas
elements can then be loaded into the globe and displayed as
billboards by using the ogBillboard object. This allows to
display complex, dyamic graphics like graphs or charts within
the globe.
3.2.4 Point Clouds
As an alternative representation for building or city models,
point clouds (Nebiker et al., 2010) can be visualized within the
OpenWebGlobe. The point cloud data has to be stored in a
proprietary JSON format or simply as ASCII xyz-file. Large
pointclouds have to be thinned out to decrease the amount of
data. For this purpose a function is available in the
OpenWebGlobe processing tools. An example of point cloud
visualization is shown in Figure 5c. Point cloud data is
statically loaded from files into the scene but it is foreseen to
implement a view dependent point cloud streaming mechanism
(Laine & Karras, 2010).
Figure 5 a (top left), b (top right), c (bottom). Custom
geospatial contents visualized in OpenWebGlobe.
A minimal OpenWebGlobe application is shown in figure 6.
The function “ogCreateContextFromCanvas” sets up the
WebGL context. The second function “ogCreateGlobe” directly
creates a WGS84 scene containing a camera and a world object.
This is a convenience function: there are also functions
available to create scene objects, camera objects and world
objects manually. With “ogAddImageLayer” an image layer
can be added and with “ogAddElevationLayer”, an elevation
layer is added to the scene.
<script type="text/javascript"src="openwebglobe.js">
</script>
<script type="text/javascript">
function main()
{
var ctx = ogCreateContextFromCanvas ("canvas", true);
var globe = ogCreateGlobe (ctx);
var imgOpenStreetMap =
{
url : ["http://a.tile.openstreetmap.org",
"http://b.tile.openstreetmap.org",
"http://c.tile.openstreetmap.org"],
service : "osm"
bi
ogAddImageLayer (globe, imgOpenStreetMap) ;
}
</script>
«body onload-"main()"»
<div style="text-align: center">
<canvas id="canvas"></canvas></div></body>
Listing 1. A minimal OpenWebGlobe application in HTMLS /
JavaScript
Figure 6. The resulting interactive virtual globe with osm map
tiles coded in listing 1
3.3 Data Pre-processing for OpenWebGlobe
The OpenWebGlobe data processing algorithms (Christen &
Nebiker, 2011a) have been developed with focusing on
scalability to very large data volumes — for all supported data
types, including imagery, map and terrain data — and have been
optimized for parallelism. We adapted the algorithms to support
as many cores as possible and came up with a set of
OpenWebGlobe processing commands. All commands run on
normal computers (regular laptops and work stations) and on
HPC systems, including cloud computing services. We use the
Message Passing Interface (MPI) to communicate and distribute
the workload on HPC cluster and OpenMP for multiprocessing.
Our development and test platform runs on the Microsoft
Windows HPC Server 2008 R2. However, our code is cross
platform and runs on Linux, too. Commercial clouds, for
example Amazon Elastic Compute Cloud (Amazon EC2) are
also supported by the OpenWebGlobe data processing code.
188