GSoC/GCI Archive
Google Code-in 2012 KDE

Marble: KML ScreenOverlay Rendering

completed by: Mohammed Nafees

mentors: Torsten Rahn, Dennis Nienhüser

When opening a .kml file containing one or more ScreenOverlay items, the overlays should be rendered by Marble.

  • Create a new class GeoScreenGraphicsItem and place it in src/lib/geodata/graphicsitem/. Existing classes like src/lib/geodata/graphicsitem/GeoImageGraphicsItem.h can be a good reference for the implementation. Note that the screen overlay has no geocordinates attached to it, so it will not inherit from GeoGraphicsItem, but possibly from ScreenGraphicsItem
  • Extend GeometryLayerPrivate::createGraphicsItemFromOverlay to create a GeoScreenGraphicsItem when a screen overlay is found
  • Test the rendering (the paint method of GeoScreenGraphicsItem) to handle the various parameters of the screen overlay. The following ones should be supported:
    • Check whether code can be shared with or reused from the existing hotspot implementation
    • screenXY should be respected with all three possible unit parameters
    • size should be respected including the special values -1 and 0
    • Fallback painting using the specified color if the icon is not available
  • Optionally you can support the following parameters in the rendering:
    • overlayXY
    • rotation
  • Support for remote images will be implemented in a different task and should not be handled here. Please work with local images only.