GSoC/GCI Archive
Google Code-in 2013 KDE

Add a progress slider to KML Tour playback

completed by: Mikhail Ivchenko

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!

Note: This task should use this review request as a base.

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. This task extends the existing playback buttons by a progress slider (QSlider) which shows the playback progress and can be changed by the user. When changed, the tour playback should advance appropriately.

  • Read https://developers.google.com/kml/documentation/touring#tourtimelines and make sure you understand how the playback is supposed to work
  • Think of a good data structure for TourPlayback which allows an easy
    • given a value in the range (0..1) or any other range you like to determine the corresponding tour primitive. 0 corresponds to the start of the first tour primitive, 1 to the end of the last tour primitive. Besides determining the right tour primitive, you also need to determine how much the corresponding primitive has been advanced already
    • Given the current time, determine the playback progress in the range (0..1) or any other range you like (same range as above)
  • Add a QSlider to the existing playback buttons. Use the range <-> playback progress bijection to react to slider changes by the user. Emit a playbackProgress( double ) signal in regular intervals (several times a second) to advance the slider.

Helpful links: