SlideShare uma empresa Scribd logo
1 de 14
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

Mais conteúdo relacionado

Semelhante a 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
 

Semelhante a 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
 

Mais 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
 

Mais 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
 

Último

CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
giselly40
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Último (20)

GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 

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