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:
- Support for remote images will be implemented in a different task and should not be handled here. Please work with local images only.