SlideShare ist ein Scribd-Unternehmen logo
1 von 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

Weitere ähnliche Inhalte

Ähnlich wie 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
 

Ähnlich wie 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
 

Mehr von 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
 

Mehr von 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
 

Kürzlich hochgeladen

Kürzlich hochgeladen (20)

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
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
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...
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
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?
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
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
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
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
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
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
  • 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