GSoC/GCI Archive
Google Code-in 2013 KDE

Add support for the gx:Wait KML element

completed by: Mikhail Ivchenko

mentors: Torsten Rahn, René Küttner, Andrei Dorian Duma, Utku Aydın, Dennis Nienhüser

Marble is a virtual globe and world atlas — your Swiss army knife for maps. Find your way and explore the world! 

In this task you'll add support for reading and writing gx:Wait tags in .kml files.

  • Install the development version (git master) of Marble. See
  • Compile Marble. When configuring cmake use the BUILD_MARBLE_TESTS option
  • Change to the build folder and execute tests/TestGeoDataWriter. The test should succeed
  • Create a simple .kml file with a Document that contains a gx:Tour with a gx:Playlist which contains some primitives with at least one gx:Wait element. Add the .kml file to tests/data and include it in tests/TestGeoDataWriter.cpp
  • Recompile Marble, execute tests/TestGeoDataWriter. It should not succeed anymore
  • Add a tag handler, a tag writer and a GeoDataWait class to support reading and writing the tags. Once finished tests/TestGeoDataWriter should succeed
    • src/lib/marble/geodata/data/GeoDataTourControl.* can be used as a base for GeoDataWait.*
    • src/lib/marble/geodata/handlers/kml/KmlTourControlTagHandler.* can be used as a base for the gx:Wait tag handler
    • extend src/lib/marble/geodata/writers/kml/KmlPlaylistTagWriter.cpp to implement the tag writer. Add a KmlPlaylistTagWriter::writeWait similar to KmlPlaylistTagWriter::writeTourControl and integrate it in writeTourPrimitive()
  • Please submit your work to You can create an account at if you don't have one yet.

Helpful links: