SlideShare une entreprise Scribd logo
1  sur  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

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 2013John Dalsgaard
 
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 2013John 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
 
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 slideVittoriano Muttillo
 
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 WorkflowsSafe Software
 
[scala.by] Launching new application fast
[scala.by] Launching new application fast[scala.by] Launching new application fast
[scala.by] Launching new application fastDenis Karpenko
 
Data Analytics with DBMS
Data Analytics with DBMSData Analytics with DBMS
Data Analytics with DBMSGLC Networks
 
Drupal Deployment and Essential Development Tools
Drupal Deployment and Essential Development ToolsDrupal Deployment and Essential Development Tools
Drupal Deployment and Essential Development ToolsGerald Villorente
 
Catalog on the fly satellite images
Catalog on the fly satellite imagesCatalog on the fly satellite images
Catalog on the fly satellite imagesLuiz Motta
 
3D Geo-standaarden workshop
3D Geo-standaarden workshop3D Geo-standaarden workshop
3D Geo-standaarden workshopLéon Berlo
 
BlaBlaCar Elastic Search Feedback
BlaBlaCar Elastic Search FeedbackBlaBlaCar Elastic Search Feedback
BlaBlaCar Elastic Search Feedbacksinfomicien
 
Gluster overview & future directions vault 2015
Gluster overview & future directions vault 2015Gluster overview & future directions vault 2015
Gluster overview & future directions vault 2015Vijay Bellur
 
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 DataSafe Software
 
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: ggplotHoffman Lab
 
Loganalysis using Open source tools
Loganalysis using Open source toolsLoganalysis using Open source tools
Loganalysis using Open source toolsGurvinder Singh
 
Gluster.community.day.2013
Gluster.community.day.2013Gluster.community.day.2013
Gluster.community.day.2013Udo Seidel
 
Becoming A Drupal Master Builder
Becoming A Drupal Master BuilderBecoming A Drupal Master Builder
Becoming A Drupal Master BuilderPhilip Norton
 

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.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 Virtual Globe
 
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 KartenMarble Virtual Globe
 
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
 
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.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
 
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
 
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
 
Marble Virtual Globe for Developers - Factsheet
Marble Virtual Globe for Developers - FactsheetMarble Virtual Globe for Developers - Factsheet
Marble Virtual Globe for Developers - FactsheetMarble Virtual Globe
 
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
 
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
 
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
 
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)Marble Virtual Globe
 
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 globeMarble Virtual Globe
 
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 StyleMarble Virtual Globe
 
Finding direction marble goes mobile
Finding direction marble goes mobileFinding direction marble goes mobile
Finding direction marble goes mobileMarble 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

TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfOrbitshub
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyKhushali Kathiriya
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelDeepika Singh
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...apidays
 
Introduction to use of FHIR Documents in ABDM
Introduction to use of FHIR Documents in ABDMIntroduction to use of FHIR Documents in ABDM
Introduction to use of FHIR Documents in ABDMKumar Satyam
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...apidays
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusZilliz
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDropbox
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKSpring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKJago de Vreede
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityWSO2
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdfSandro Moreira
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Zilliz
 

Dernier (20)

TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
Introduction to use of FHIR Documents in ABDM
Introduction to use of FHIR Documents in ABDMIntroduction to use of FHIR Documents in ABDM
Introduction to use of FHIR Documents in ABDM
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKSpring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 

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