HTML Injection Attacks: Impact and Mitigation Strategies
State of the Geodata
1. State of the GeoDataState of the GeoData
T GridelT Gridel
06-07.11.2010 | Marble Sprint06-07.11.2010 | Marble Sprint
2. T Gridel edu.kde.org/marble/ 2
Agenda
● Design Goals
● Tour of the Classes
● Serialisation
● Model/View
● Uses
● Todo
3. T Gridel edu.kde.org/marble/ 3
GeoData Classes
● Modelled after KML spec
http://code.google.com/intl/de/apis/kml/documentation/kmlreference.html
● Copy-on-write features (shared data)
● Data in Private D-Pointer
● Copy Ctor copies Private D-Pointer
● Setters trigger a deep copy of the Private
● Tree features
● Document
– Folder
● Feature
First topic – Current topic – Third Topic
5. T Gridel edu.kde.org/marble/ 5
Features
● Common Properties
● Name
● Description
● Visibility
● Style...
● Placemarks add:
● Geometry
● Coordinates
● Containers add:
● List of Features
6. T Gridel edu.kde.org/marble/ 6
Geometries
● Live through a Placemark
● Rendered with GeometryLayer
● Recursive parsing of GeoDatadocument
● Rendering with GeoPainter
9. T Gridel edu.kde.org/marble/ 9
Model/View
● GeoDataTreeModel
● Encapsulates a GeoDataDocument
● Provides the Tree model for interested views
● Proxies for filtered Lists (todo)
● Limited use outside generic views
– Model/View is signals/slots for update notification
– View inherits widget, we need Layers or custom
observers (PlacemarkLayout...)
– Model::data() and ModelIndex suffer leaking
interface syndrome
10. T Gridel edu.kde.org/marble/ 10
Uses (I): FileManager
● Write parsing code
● Serialise into a GeoDataDocument
● Append to list of files
● Show in a List
● Enjoy ;)
11. T Gridel edu.kde.org/marble/ 11
Uses (II): PositionProvider
● Write Position Providers
● Enable Position Tracking
● Store positions in a geometry
● Display with GeometryLayer
● Enjoy ;)
12. T Gridel edu.kde.org/marble/ 12
Uses (III): Routing
● Write Routing query backend
● Store result in a GeoDataDocument
● Wrap into Routing Layer
● Enjoy ;)
13. T Gridel edu.kde.org/marble/ 13
Todo
● Use for Vector maps (Pnt files) and clean
VectorMap and GeoPolygon
● Full Potential of GeoPainter
● Use a ProxyModel to clean the PlacemarkModel
● Cure the Model diarrhea
● UI for files/placemarks/visibility
● Improve GeometryLayer performance
● 2D culling filter
● Federate file loading (route restore/casual file)
● Use GeoData in your pet Use Case