W W W. R E F R A C T I O N S. N E T Chris Hodgson –Spatial object models using PostGIS, Hibernate, and the JTS Topology Suite

Embed Size (px)

DESCRIPTION

W W W. R E F R A C T I O N S. N E T BC Digital Roads Atlas Project (DRA) ‏ Maintained by Refractions for the Ministry of Agriculture and Lands Attribute-rich GPS-sourced roads Forestry roads from photogrammetry 3 million segments 50+ attributes (somewhat sparse) ‏

Citation preview

W W W. R E F R A C T I O N S. N E T Chris Hodgson Spatial object models using PostGIS, Hibernate, and the JTS Topology Suite W W W. R E F R A C T I O N S. N E TOverview BC Digital Road Atlas Project PostgreSQL & PostGIS JTS Topology Suite Hibernate Putting It All Together Lessons Learned W W W. R E F R A C T I O N S. N E T BC Digital Roads Atlas Project (DRA) Maintained by Refractions for the Ministry of Agriculture and Lands Attribute-rich GPS-sourced roads Forestry roads from photogrammetry 3 million segments 50+ attributes (somewhat sparse) W W W. R E F R A C T I O N S. N E T DRA Operations Monthly GPS updates (~10,000 segs) Quarterly photogrammetric updates Monthly or quarterly deliveries to: Emergency Services & 911 dispatch Federal & Provincial government agencies Resource sector industries W W W. R E F R A C T I O N S. N E T DRA1 -> DRA2 DRA1 - GPS roads from a single source Stored in PostGIS database Updates and deliveries managed with FME DRA2 multiple sources of data requiring more sophisticate update process involving conflation Updates managed by a Java Process W W W. R E F R A C T I O N S. N E T DRA2 Data Model W W W. R E F R A C T I O N S. N E T PostgreSQL & PostGIS PostgreSQL - open source database Featureful and standards compliant Highly customizable PostGIS - Spatially Enables PostgreSQL Equivalent to Oracle Spatial or ArcSDE Standards compliant OGC Simple Features Specification for SQL W W W. R E F R A C T I O N S. N E T JTS Topology Suite Open Source Java code library Geometry objects (point/line/polygon) Methods to manipulate, compare, combine, and analyze geometries Buffer, Intersects, Union, etc. Standards compliant OGC Simple Features Specification Robust, consistent, and fast W W W. R E F R A C T I O N S. N E THibernate Object/Relational Mapping Tool Persists Java objects in a database Maps between objects and tables High performance, industry standard Powerful querying, caching lazy/eager fetching of multiple results W W W. R E F R A C T I O N S. N E T Life Without Hibernate Direct JDBC Queries/Updates When to commit changes? How to handle large query results? How to optimize retrieval of varied objects in a single query? How to make sure you don't have multiple objects representing the same database row? W W W. R E F R A C T I O N S. N E T Custom Hibernate UserType Custom UserTypes allow you to convert between database types and Java classes PostGIS Geometry type in DB to JTS Geometry type in Java PostgreSQL PostGIS Geometry (Column Data) Java JTS Geometry (Object) Hibernate JtsGeometryType (UserType) W W W. R E F R A C T I O N S. N E T Reverse Engineering w/Hibernate- Tools W W W. R E F R A C T I O N S. N E T Reverse Engineering w/Hibernate- Tools W W W. R E F R A C T I O N S. N E T Reverse Engineering w/Hibernate- Tools W W W. R E F R A C T I O N S. N E T Putting it all Together PostgreSQL PostGIS Java JTS Hibernate DRA Update W W W. R E F R A C T I O N S. N E T The Resulting System Update Process Code HibernatePostgreSQL/ PostGIS Queries for Segment Returns Segment Caches Segme nt Update s Segme nt Discar ds Segme nt Commits Updated Segment Flushe s Cache W W W. R E F R A C T I O N S. N E T Lessons Learned Caching/Flushing Cached Objects vs. Spatial Queries Hibernate has feature designed for a multi-user, multi-threaded transactional environment (Java Enterprise Edition) W W W. R E F R A C T I O N S. N E TQuestions? Chris Hodgson Come visit me at the Refractions Research booth in the Exhibition hall!