The GeoDataPlacemark is the class representing a placemark in Marble, with GeoData classes following kml specification. There are basically 2 kinds of Placemarks: Point Placemarks, and Placemarks containing a Geometry class inheriting GeoDataGeometry.
It is used currently by 3 frameworks:
- The FileManager performs file reading and then signals that files have been added/removed. It registers its document in the tree model.
- The MarbleRunnerManager is a framework to query external servers for placemarks. The user types the query in the search line of the ControlBox widget, and then the MarbleRunnerManager triggers asynchronous runners which inherit from MarbleAbstractRunner. The MarbleRunnerManager then provides the resulting Placemarks in the tree model.
- The PositionProvider class has a document to display the current position, as well as the track stored of past positions. That document belongs in the tree model.
The Point placemarks are displayed thanks to the PlacemarkLayout which does layouting of the labels, and filtering of the important placemarks to render, based on a popularity ranking.