Add support for the gx:SoundCue KML tag
completed by: Illya Kovalevskyy
mentors: Torsten Rahn, Dennis Nienhüser
Marble is a virtual globe and world atlas — your Swiss army knife for maps. Find your way and explore the world!
We are working on integrating support for KML Tours into Marble. The user interface will be a panel (like Routing, Map View, ...) where a tour can be loaded from a .kml file, edited, played and also recorded to a movie file. In this task you'll add support for reading and writing gx:SoundCue 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
- Overwrite tests/Tour.kml by tests/TourWait.kml and remove tests/TourWait.kml from tests/TestGeoDataWriter.cpp. Recompile, tests/TestGeoDataWriter should still succeed
- Extend tests/Tour.kml and add a gx:SoundCue tag (see KML reference). Recompile Marble, execute tests/TestGeoDataWriter. It should not succeed anymore
- Add a tag handler, a tag writer and a GeoDataSoundCue 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 GeoDataSoundCue.*
- src/lib/marble/geodata/handlers/kml/KmlTourControlTagHandler.* can be used as a base for the gx:SoundCue tag handler
- extend src/lib/marble/geodata/writers/kml/KmlPlaylistTagWriter.cpp to implement the tag writer. Add a KmlPlaylistTagWriter::writeSoundCue 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#gxsoundcue
- 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/