SlideShare une entreprise Scribd logo
State of the GeoDataState of the GeoData
T GridelT Gridel
06-07.11.2010 | Marble Sprint06-07.11.2010 | Marble Sprint
T Gridel edu.kde.org/marble/ 2
Agenda
● Design Goals
● Tour of the Classes
● Serialisation
● Model/View
● Uses
● Todo
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
T Gridel edu.kde.org/marble/ 4
Class Hierarchy
T Gridel edu.kde.org/marble/ 5
Features
● Common Properties
● Name
● Description
● Visibility
● Style...
● Placemarks add:
● Geometry
● Coordinates
● Containers add:
● List of Features
T Gridel edu.kde.org/marble/ 6
Geometries
● Live through a Placemark
● Rendered with GeometryLayer
● Recursive parsing of GeoDatadocument
● Rendering with GeoPainter
T Gridel edu.kde.org/marble/ 7
Styles
● Limited equivalent of Qt styling
● Needs marble extensions?
T Gridel edu.kde.org/marble/ 8
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 ));
}
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
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 ;)
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 ;)
T Gridel edu.kde.org/marble/ 12
Uses (III): Routing
● Write Routing query backend
● Store result in a GeoDataDocument
● Wrap into Routing Layer
● Enjoy ;)
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
T Gridel edu.kde.org/marble/ 14
Thanks!
techbase.kde.org/Projects/Marble/GeoData

Contenu connexe

Similaire à State of the Geodata

MVC and IBM XPages - from #DanNotes in Korsør (DK) 28 November 2013
MVC and IBM XPages - from #DanNotes in Korsør (DK) 28 November 2013MVC and IBM XPages - from #DanNotes in Korsør (DK) 28 November 2013
MVC and IBM XPages - from #DanNotes in Korsør (DK) 28 November 2013
John Dalsgaard
 
Drupal & Drink Montpellier "Drupal presentation layer components"
Drupal & Drink Montpellier "Drupal presentation layer components"Drupal & Drink Montpellier "Drupal presentation layer components"
Drupal & Drink Montpellier "Drupal presentation layer components"
Alexandre Todorov
 
3D Geo-standaarden workshop
3D Geo-standaarden workshop3D Geo-standaarden workshop
3D Geo-standaarden workshop
Léon Berlo
 

Similaire à State of the Geodata (20)

MVC and IBM XPages - from #DanNotes in Korsør (DK) 28 November 2013
MVC and IBM XPages - from #DanNotes in Korsør (DK) 28 November 2013MVC and IBM XPages - from #DanNotes in Korsør (DK) 28 November 2013
MVC and IBM XPages - from #DanNotes in Korsør (DK) 28 November 2013
 
Sgml and xml
Sgml and xmlSgml and xml
Sgml and xml
 
MVC and IBM XPages - from #DanNotes in Korsør (DK) 28 November 2013
MVC and IBM XPages - from #DanNotes in Korsør (DK) 28 November 2013MVC and IBM XPages - from #DanNotes in Korsør (DK) 28 November 2013
MVC and IBM XPages - from #DanNotes in Korsør (DK) 28 November 2013
 
Drupal & Drink Montpellier "Drupal presentation layer components"
Drupal & Drink Montpellier "Drupal presentation layer components"Drupal & Drink Montpellier "Drupal presentation layer components"
Drupal & Drink Montpellier "Drupal presentation layer components"
 
Advances in gml for geospatial applications slide
Advances in gml for geospatial applications slideAdvances in gml for geospatial applications slide
Advances in gml for geospatial applications slide
 
5 Ways to Improve Your LiDAR Workflows
5 Ways to Improve Your LiDAR Workflows5 Ways to Improve Your LiDAR Workflows
5 Ways to Improve Your LiDAR Workflows
 
[scala.by] Launching new application fast
[scala.by] Launching new application fast[scala.by] Launching new application fast
[scala.by] Launching new application fast
 
Data Analytics with DBMS
Data Analytics with DBMSData Analytics with DBMS
Data Analytics with DBMS
 
Drupal Deployment and Essential Development Tools
Drupal Deployment and Essential Development ToolsDrupal Deployment and Essential Development Tools
Drupal Deployment and Essential Development Tools
 
Catalog on the fly satellite images
Catalog on the fly satellite imagesCatalog on the fly satellite images
Catalog on the fly satellite images
 
Migrations
MigrationsMigrations
Migrations
 
3D Geo-standaarden workshop
3D Geo-standaarden workshop3D Geo-standaarden workshop
3D Geo-standaarden workshop
 
BlaBlaCar Elastic Search Feedback
BlaBlaCar Elastic Search FeedbackBlaBlaCar Elastic Search Feedback
BlaBlaCar Elastic Search Feedback
 
Gluster overview & future directions vault 2015
Gluster overview & future directions vault 2015Gluster overview & future directions vault 2015
Gluster overview & future directions vault 2015
 
5 Ways to Optimize Your LiDAR Data
5 Ways to Optimize Your LiDAR Data5 Ways to Optimize Your LiDAR Data
5 Ways to Optimize Your LiDAR Data
 
An implementation of the grammar of graphics: ggplot
An implementation of the grammar of graphics: ggplotAn implementation of the grammar of graphics: ggplot
An implementation of the grammar of graphics: ggplot
 
Loganalysis using Open source tools
Loganalysis using Open source toolsLoganalysis using Open source tools
Loganalysis using Open source tools
 
Gluster.community.day.2013
Gluster.community.day.2013Gluster.community.day.2013
Gluster.community.day.2013
 
Staadpresentation1 159
Staadpresentation1 159Staadpresentation1 159
Staadpresentation1 159
 
Becoming A Drupal Master Builder
Becoming A Drupal Master BuilderBecoming A Drupal Master Builder
Becoming A Drupal Master Builder
 

Plus de Marble Virtual Globe

Marble Virtual Globe 1.4 Factsheet (German)
Marble Virtual Globe 1.4 Factsheet (German)Marble Virtual Globe 1.4 Factsheet (German)
Marble Virtual Globe 1.4 Factsheet (German)
Marble Virtual Globe
 
Marble Virtual Globe 1.3 Factsheet (German)
Marble Virtual Globe 1.3 Factsheet (German)Marble Virtual Globe 1.3 Factsheet (German)
Marble Virtual Globe 1.3 Factsheet (German)
Marble Virtual Globe
 
Finding direction marble goes mobile
Finding direction marble goes mobileFinding direction marble goes mobile
Finding direction marble goes mobile
Marble Virtual Globe
 

Plus de Marble Virtual Globe (20)

Marble Virtual Globe 1.6 Factsheet (English)
Marble Virtual Globe 1.6 Factsheet (English)Marble Virtual Globe 1.6 Factsheet (English)
Marble Virtual Globe 1.6 Factsheet (English)
 
Marble - ein Schweizer Taschenmesser für Karten
Marble - ein Schweizer Taschenmesser für KartenMarble - ein Schweizer Taschenmesser für Karten
Marble - ein Schweizer Taschenmesser für Karten
 
Marble Virtual Globe 1.4 Factsheet (English)
Marble Virtual Globe 1.4 Factsheet (English)Marble Virtual Globe 1.4 Factsheet (English)
Marble Virtual Globe 1.4 Factsheet (English)
 
Marble Virtual Globe 1.4 Factsheet (German)
Marble Virtual Globe 1.4 Factsheet (German)Marble Virtual Globe 1.4 Factsheet (German)
Marble Virtual Globe 1.4 Factsheet (German)
 
Marble Virtual Globe 1.4 Factsheet (Spanish)
Marble Virtual Globe 1.4 Factsheet (Spanish)Marble Virtual Globe 1.4 Factsheet (Spanish)
Marble Virtual Globe 1.4 Factsheet (Spanish)
 
Marble Virtual Globe 1.4 Factsheet (French)
Marble Virtual Globe 1.4 Factsheet (French)Marble Virtual Globe 1.4 Factsheet (French)
Marble Virtual Globe 1.4 Factsheet (French)
 
Marble Virtual Globe 1.3 Factsheet (Hindi)
Marble Virtual Globe 1.3 Factsheet (Hindi)Marble Virtual Globe 1.3 Factsheet (Hindi)
Marble Virtual Globe 1.3 Factsheet (Hindi)
 
Marble Virtual Globe for Developers - Factsheet
Marble Virtual Globe for Developers - FactsheetMarble Virtual Globe for Developers - Factsheet
Marble Virtual Globe for Developers - Factsheet
 
Marble Virtual Globe 1.3 Factsheet (English)
Marble Virtual Globe 1.3 Factsheet (English)Marble Virtual Globe 1.3 Factsheet (English)
Marble Virtual Globe 1.3 Factsheet (English)
 
Marble Virtual Globe 1.3 Factsheet (Spanish)
Marble Virtual Globe 1.3 Factsheet (Spanish)Marble Virtual Globe 1.3 Factsheet (Spanish)
Marble Virtual Globe 1.3 Factsheet (Spanish)
 
Marble Virtual Globe 1.3 Factsheet (German)
Marble Virtual Globe 1.3 Factsheet (German)Marble Virtual Globe 1.3 Factsheet (German)
Marble Virtual Globe 1.3 Factsheet (German)
 
Marble Virtual Globe 1.3 Factsheet (French)
Marble Virtual Globe 1.3 Factsheet (French)Marble Virtual Globe 1.3 Factsheet (French)
Marble Virtual Globe 1.3 Factsheet (French)
 
Intergeo 2011
Intergeo 2011Intergeo 2011
Intergeo 2011
 
Towards Marble 2.0 - the journey around a virtual globe
Towards Marble 2.0 - the journey around a virtual globeTowards Marble 2.0 - the journey around a virtual globe
Towards Marble 2.0 - the journey around a virtual globe
 
Marble Goes MeeGo
Marble Goes MeeGoMarble Goes MeeGo
Marble Goes MeeGo
 
Developing Qt Applications on MeeGo Touch with Style
Developing Qt Applications on MeeGo Touch with StyleDeveloping Qt Applications on MeeGo Touch with Style
Developing Qt Applications on MeeGo Touch with Style
 
Finding direction marble goes mobile
Finding direction marble goes mobileFinding direction marble goes mobile
Finding direction marble goes mobile
 
Marble talk at akademy 2009
Marble talk at akademy 2009Marble talk at akademy 2009
Marble talk at akademy 2009
 
Marble talk at akademy 2008
Marble talk  at akademy 2008Marble talk  at akademy 2008
Marble talk at akademy 2008
 
Marble on mac
Marble on macMarble on mac
Marble on mac
 

Dernier

Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo DiehlFuture Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Peter Udo Diehl
 

Dernier (20)

The architecture of Generative AI for enterprises.pdf
The architecture of Generative AI for enterprises.pdfThe architecture of Generative AI for enterprises.pdf
The architecture of Generative AI for enterprises.pdf
 
Powerful Start- the Key to Project Success, Barbara Laskowska
Powerful Start- the Key to Project Success, Barbara LaskowskaPowerful Start- the Key to Project Success, Barbara Laskowska
Powerful Start- the Key to Project Success, Barbara Laskowska
 
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya HalderCustom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
 
WSO2CONMay2024OpenSourceConferenceDebrief.pptx
WSO2CONMay2024OpenSourceConferenceDebrief.pptxWSO2CONMay2024OpenSourceConferenceDebrief.pptx
WSO2CONMay2024OpenSourceConferenceDebrief.pptx
 
IESVE for Early Stage Design and Planning
IESVE for Early Stage Design and PlanningIESVE for Early Stage Design and Planning
IESVE for Early Stage Design and Planning
 
Speed Wins: From Kafka to APIs in Minutes
Speed Wins: From Kafka to APIs in MinutesSpeed Wins: From Kafka to APIs in Minutes
Speed Wins: From Kafka to APIs in Minutes
 
"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
 
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptxIOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
 
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptxUnpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
 
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
 
Strategic AI Integration in Engineering Teams
Strategic AI Integration in Engineering TeamsStrategic AI Integration in Engineering Teams
Strategic AI Integration in Engineering Teams
 
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo DiehlFuture Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
 
In-Depth Performance Testing Guide for IT Professionals
In-Depth Performance Testing Guide for IT ProfessionalsIn-Depth Performance Testing Guide for IT Professionals
In-Depth Performance Testing Guide for IT Professionals
 
Enterprise Security Monitoring, And Log Management.
Enterprise Security Monitoring, And Log Management.Enterprise Security Monitoring, And Log Management.
Enterprise Security Monitoring, And Log Management.
 
A Business-Centric Approach to Design System Strategy
A Business-Centric Approach to Design System StrategyA Business-Centric Approach to Design System Strategy
A Business-Centric Approach to Design System Strategy
 
Free and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
Free and Effective: Making Flows Publicly Accessible, Yumi IbrahimzadeFree and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
Free and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
 
Server-Driven User Interface (SDUI) at Priceline
Server-Driven User Interface (SDUI) at PricelineServer-Driven User Interface (SDUI) at Priceline
Server-Driven User Interface (SDUI) at Priceline
 

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
  • 4. T Gridel edu.kde.org/marble/ 4 Class Hierarchy
  • 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
  • 7. T Gridel edu.kde.org/marble/ 7 Styles ● Limited equivalent of Qt styling ● Needs marble extensions?
  • 8. T Gridel edu.kde.org/marble/ 8 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 )); }
  • 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
  • 14. T Gridel edu.kde.org/marble/ 14 Thanks! techbase.kde.org/Projects/Marble/GeoData