Marble/Placemark: Difference between revisions

From KDE Community Wiki
No edit summary
Line 1: Line 1:
== Overview of Placemarks in Marble ==
== Overview of Placemarks in Marble ==


The {{class|PlaceMarkManager|kdeedu|4.x}} is handled by the {{class|MarbleModel|kdeedu|4.x}} and provides registration of Placemarks from KML data files for Marble (it should handle placemarks for all data files in the future).
The {{class|GeoDataPlacemark|kdeedu|4.x}} 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 {{class|GeoDataGeometry|kdeedu|4.x}}.


It depends on the {{class|FileManager|kdeedu|4.x}} which performs the actual file reading and then signals that files have been added/removed.
=== Registration and use in MarbleModel ===
The {{class|MarbleModel|kdeedu|4.x}} provides registration of Placemarks within a {{class|GeoDataTreeModel|kdeedu|4.x}}. The tree model stores multiple {{class|GeoDataDocument|kdeedu|4.x}} corresponding to the data they hold.


The PlaceMarkManager keeps some information related to the data that it presents. It provides a {{class|MarblePlacemarkModel|kdeedu|4.x}} which presents the list of all placemarks of all files
It is used currently by 3 frameworks:


- The {{class|FileManager|kdeedu|4.x}} performs file reading and then signals that files have been added/removed. It registers its document in the tree model.


The {{class|MarbleRunnerManager|kdeedu|4.x}} 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 {{class|MarbleAbstractRunner|kdeedu|4.x}}.
- The {{class|MarbleRunnerManager|kdeedu|4.x}} 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 {{class|MarbleAbstractRunner|kdeedu|4.x}}. The MarbleRunnerManager then provides the resulting Placemarks in the tree model.


The MarbleRunnerManager holds the resulting Placemarks until another query is input.
- The {{class|PositionProvider|kdeedu|4.x}} 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.
 
=== Display in the map ===
The Point placemarks are displayed thanks to the {{class|PlacemarkLayout|kdeedu|4.x}} which does layouting of the labels, and filtering of the important placemarks to render, based on a popularity ranking.
 
The Geometry placemarks are displayed thanks to the {{class|GeometryLayer|kdeedu|4.x}} which contains a {{class|GeoGraphicsScene|kdeedu|4.x}}.

Revision as of 19:19, 26 December 2011

Overview of Placemarks in Marble

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.

Registration and use in MarbleModel

The MarbleModel provides registration of Placemarks within a GeoDataTreeModel. The tree model stores multiple GeoDataDocument corresponding to the data they hold.

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.

Display in the map

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.

The Geometry placemarks are displayed thanks to the GeometryLayer which contains a GeoGraphicsScene.