Loading…

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

Like this presentation? Why not share!

State of the Geodata

on

  • 520 views

Presentation made at Marble Sprint 2010

Presentation made at Marble Sprint 2010

Statistics

Views

Total Views
520
Views on SlideShare
520
Embed Views
0

Actions

Likes
0
Downloads
3
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as OpenOffice

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

State of the Geodata State of the Geodata Presentation Transcript

  • State of the GeoData T Gridel 06-07.11.2010 | Marble Sprint
  • Agenda
    • Design Goals
    • Tour of the Classes
    • Serialisation
    • Model/View
    • Uses
    • Todo
  • 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
  • Class Hierarchy
  • Features
    • Common Properties
      • Name
      • Description
      • Visibility
      • Style...
    • Placemarks add:
      • Geometry
      • Coordinates
    • Containers add:
      • List of Features
  • Geometries
    • Live through a Placemark
    • Rendered with GeometryLayer
      • Recursive parsing of GeoDatadocument
      • Rendering with GeoPainter
  • Styles
    • Limited equivalent of Qt styling
    • Needs marble extensions?
  • Serialisation
    • GeoDataParser API
    • GeoDataParser parser( GeoData_UNKNOWN );
    • QFile file( filename );
    • file.open( QIODevice::ReadOnly );
    • GeoDocument* document = parser.releaseDocument();
    • GeoDataParser Internals
      • GeoTagHandler and GeoStackItem
    • GeoTagHandler::QualifiedName qName( name().toString(), namespaceUri().toString() );
    • GeoStackItem stackItem( qName, 0 );
    • if ( const GeoTagHandler* handler = GeoTagHandler::recognizes( qName )) {
      • stackItem.assignNode( handler->parse( *this ));
    • }
  • 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
  • Uses (I): FileManager
    • Write parsing code
    • Serialise into a GeoDataDocument
    • Append to list of files
    • Show in a List
    • Enjoy ;)
  • Uses (II): PositionProvider
    • Write Position Providers
    • Enable Position Tracking
    • Store positions in a geometry
    • Display with GeometryLayer
    • Enjoy ;)
  • Uses (III): Routing
    • Write Routing query backend
    • Store result in a GeoDataDocument
    • Wrap into Routing Layer
    • Enjoy ;)
  • 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
  • Thanks! techbase.kde.org/Projects/Marble/GeoData