|
Project Information
Members
Featured
Downloads
Wiki pages
Links
|
Last version: libcitygml v.0.1.4 & citygml2vrml v.0.1.3 Want to join the libcitygml developer team? Contact us! News07.22.11 - Some fixes were published on the SVN! libcitygml v.0.1.5 is coming soon. 08.11.10 - libcitygml v.0.1.4 (check the SVN!) adds support for SRS & coordinates transformations. 07.30.10 - New in libcitygml v.0.1.3: Support for CityGML Bridge ADE and CityGML Tunnel ADE(aka Subsurface Structure ADE). 06.14.10 - Add support for LibXml2 instead of Xerces-c (both are now supported, easy to add support for an other SAX parsing library). Parsing parameters are now passed through a structure. AboutCityGML (City Geography Markup Language) is an XML-based schema for the modelling and exchange of georeferenced 3D city and landscape models that is quickly being adopted on an international level. libcitygml is a small and easy to use open source C++ library for parsing CityGML files in such a way that data can be easily exploited by 3D rendering applications (geometry data are tesselated and optimized for rendering during parsing). For instance, it can be used to develop readers of CityGML files in many 3D based applications (OpenGL, OpenSceneGraph, ...) Most metadata are not lost, they are available through a per-node hashmap. libcitygml is developed by the 3D team of BRGM (the French leading public institution involved in the Earth Science field for the sustainable management of natural resources and surface and subsurface risks) for the research project DeepCity3D. The following screenshots were done using the CityGML reader implemented for OpenSceneGraph. The models used are freely available on the official CityGML site. The following screenshots are the conversion to VRML97 of the examples of CityGML Tunnel and Bridge ADEs: Supported featureslibcitygml is not a strict implementation of the CityGML standard and is not based on a particular schema. However is has been tested successfully with CityGML version 0.3 to 1.0 files, all LOD (from 0 to 4) and supports most of the model features including:
Materials & textures are also well supported. Not-yet-supported features
DownloadSources & precompiled versions of the library are available in the Downloads tab. libcitygml' latest sources are available through the googlecode SVN server. citygml2vrml is a simple program exploiting libcitygml which converts a CityGML file to a VRML97 representation. The source code is available on the SVN. You can also download citygml2vrml binary for Windows. Dependencies
DatasetsYou can find some CityGML datasets on the official CityGML site. UsageDuring SAX-parsing the file or the stream, libcitygml constructs a memory model of the scene (this model is simpler than DOM or XML data binding). The model is then prepared and optimized to be used by 3D applications. Finally, the object hiearchy is available through the main citygml::CityModel object return by the parsing method citygml::load(). The file citygml.h of libcitygml describes the city objects supported by the library. Please see the header files and the 2 examples files (citygmltest.cpp, console dump, and ReaderWriterCityGML.cpp, the OpenSceneGraph reader) for more details on how to use the library. libcitygml is rather fast. For instance, the 40MB sample file Stadt-Ettenheim-LoD3_edited.gml is parsed, optimized and tesselated in 12 seconds on an intel Core2 Quad CPU Q8400 @ 2GHz. |









