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 http://marble.kde.org/sources.php
- 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 https://git.reviewboard.kde.org/ You can create an account at https://identity.kde.org/ if you don't have one yet.
Helpful links:
- https://developers.google.com/kml/documentation/kmlreference?hl=de#gxwait
- The easiest way to reach Marble developers to help you is to visit the #marble IRC channel in freenode. Watch out for Earthwings
- http://marble.kde.org/