Creative Commons License
This work is licensed under a Creative Commons Attribution-Share Alike 4.0 License.
Large area cityGML visualization currently deals with its conversion to another model such as VRML, X3D or KML data format which can be visualized using various visualization tools like Google Earth, VTP, Cesium, NASAs World Wind, etc. But these conversion to VRML or X3D, leads to a loss of the geographical information, geometries, which restricts the aspect of geospatial analysis, in addition to adding an extra preprocessing step. One of the tool that supports 3D visualization of cityGML data is Aristoteles developed by the Institute for Cartography and Geoinformation. But it lacks features like move around camera controls, projecting the coordinates from the cityGML CRS, and underneath terrain rendering. On the other hand virtual globes like NASAs world wind or cesium globe, are powerful enough to harness the power of the systems GPU to render large amount of geometries and DEM data to generate terrains, give scene controls, etc, but doesn't give support for visualization of cityGML data in its current form. Thus there is a need to integrate the virtual globe technology and the visualization functionality of tools like Aristoteles, so as to render buildings on top of terrain and give a more realistic view of the environment. In this paper we present an opensource application build on NASAs WorldWind technology, for the visualization of cityGML levelofdetail2 building data. The application enables support for importing multiple cityGML files as layers, which have the building class and have the GroundSurface, Wallsurface, Roofsurface and Solids features. The first step includes extraction of geometry data for each of the features mentioned in a data model defined by us. This is achieved by using the citygml4j library's visitor functions, which iterates over each of the elements in the gml file with the passed feature class. In a similar manner the CRS of the features is also extracted. These geometries are in the local coordinates system, and needs to be transformed to the WGS84 coordinate system. For this conversion we use GDAL-OGR library, which takes the EPSG code from extracted CRS. To support multiple cityGML files a list of data models are created and are passed for rendering. In the rendering stage, a layer is created for each cityGML file. This layer will store all the features of the buildings. For each feature a set of basic shape-attributes are set, like its texture, color, opacity, etc. These shape-attributes, along with the transformed coordinates , are passed to the WorldWind polygon rendering function, which uses the underlying openGL array buffers to render these features. One of the limitations we find in this method is when the number of features and their sizes increases, for which we plan to add vector tile support soon for rendering such large cityGML files. Depending on the camera location and its height, only those buildings in the current and surrounding tiles will be rendered, rather than the entire dataset, leading to a reduced computaitonal load for the GPU, and an increase in the rendering speed, thus achieving better overall performance.
Tiwari, Vishal and Rajan, KS
"3D Visualization of City GML Building Data on World Wind,"
Free and Open Source Software for Geospatial (FOSS4G) Conference Proceedings: Vol. 15
, Article 26.
Available at: https://scholarworks.umass.edu/foss4g/vol15/iss1/26