转自:https://github.com/jim-normand/NAM/wiki/Libcitygml-installation
Building libcityGML
Download from Google code: http://code.google.com/p/libcitygml/ (version 0.1.4 as on 2011/05/12)
svn checkout http://libcitygml.googlecode.com/svn/trunk/ libcitygml-read-only
Configure with cmake then generate makefiles (add x86_64 architecture for compatibility with OSG)
ccmake .
Be careful to set the following configuration variables :
- CMAKE_BUILD_TYPE: Release
- LIBCITYGML_DYNAMIC: ON
Test whether libCityGml is working
bin/citygmltest <path to citygml file>
Creating the OSG plugin
Copy FindCityGML.cmake and FindXerces.cmake from libcitygml/CMakeModules to $(OSG_SRC_DIR)/CMakeModules
cp CMakeModules/FindCityGML.cmake ../OpenSceneGraph-2.9.9/CMakeModules/
cp CMakeModules/FindXerces.cmake ../OpenSceneGraph-2.9.9/CMakeModules/
Copy all files from libcitygml/test/osgplugin/ to $(OSG_SRC_DIR)/src/osgPlugins/citygml
mkdir $(OSG_SRC_DIR)/src/osgPlugins/citygml
cp libcitygml/test/osgplugin/* $(OSG_SRC_DIR)/src/osgPlugins/citygml
Add the following line to $(OSG_SRC_DIR)/src/osgPlugins/CMakeLists.txt
ADD_SUBDIRECTORY(citygml)
go back to main OpenSceneGraph directory, re-run cmake to generate new makefiles (including the one for the libcitygml plugin), then make and sudo make install. Test by loading a citygml file with osgviewer. It should now open.
Caution: with this method, CityGML files are identified by a .citygml extension. Files with .gml extensions will not load.