Abstract | Full Paper | PDF | Printer friendly format

Page 3 of 6
| Previous| Next |

3D Terrain visualization for Web GIS

Our solution is a selective visualization method to partially visualize the terrain surface near the viewpoint. Compared with the LOD technology displaying faraway area in low resolution, this method ignores the barely visible faraway area and only visualizes the area within current view culling. Users can also update the viewing area by querying the database through the user interface. The view culling is managed by switching and displaying terrain data in tiles. To do this, a new STILE node with the PROTO mechanism of VRML is designed. The new node contains the information about tileID, resolution, spacing, DEM elevation values, texture, visibility and other geo-information. When the visibility is triggered as true, the node will send out inquiry event, download geometry, texture and other information data from the database and visualize them in the VRML browser. This function is supported by the Java mechanism embedded in VRML. Figure 3 describes the basic structure of a STILE node. The information of a tile is updated in a dynamic way which means that data transmission and visualization occur when users are navigating in the virtual scene. It is implemented by using VRML Script node and EAI (External Authoring Interface). Both of them reference objects and behaviours in VRML and offer the interface to communicate between VRML scene and Java programs containing a connection to database via JDBC (Java Database Connection).


Figure 3: A STILE node interface

For the terrain model generated in Section 3, an 8x4 tiles division is made. The size of a tile is determined by the performance of visualization and interaction after several trials. VRML ProximitySensor is used to trace the position and orientation of current viewpoint. With these values, it is easy to locate the current view tile from which a set of tile IDs under the view culling can be obtained. Figure 4 illustrates an example of updating the viewpoint.


Figure 4: An example of updating the viewpoint

The entire selective visualization algorithm is specified as follows:
    Step 1: Initialize 32 STILE nodes and obtain Java objects that reference the VRML nodes and useful fields.

    Step 2: Get the current position and orientation value by referencing ProximitySensor node. The index number of current tile, denoted as currTileID, can be obtained as well with the help of resolution and spacing fields of STILE node.

    Step 3: Collect the tileID values of the tiles that are set to be visible from 32 tiles by checking the visible_changed eventOuts and put the results to a set named tilesBeforeVis. With currTileID and the corresponding attributes of the extensibility of this tile (Table 1), a set named tilesAfterVis is established to index the tiles that are theoretically within view.

    Step 4: Compare the elements in the set tilesBeforeVis with those in the set tilesAfterVis. If there are any iterative elements, delete them in both sets.

    Step 5: Set the values of set_visible eventIns of the tiles indexed in tilesAfterVis as true and set the values of set_visible eventIns of the tiles indexed in tilesBeforeVis as false.


Page 3 of 6
| Previous| Next |