SlideShare uma empresa Scribd logo
1 de 71
Baixar para ler offline
State of JTS
Presented by:
James, Jody, Rob, (Martin)
Welcome
Martin Davis James Hughes Jody Garnett Rob Emanuele
Vivid Solutions CCRi Boundless Azavea
2
Introducing
JTS Topology Suite
uDig Introduction 3
What is JTS Topology Suite?
4
Java API for working with 2D Geometries
1.9
1.3
JTS Project History
5
2005 2006 2007 2008 2009
2004 2003 2002 2001 2000
1.0
2014 2013 2012 2011 2010
2015 2016 2017 2018 2019
1.15
1.11.21.4
1.5 1.6 1.7 1.8 1.10
1.111.121.13
LT JTS 1.161.14 1.15
JTS is EVERYWHERE
6
JTS
GEOS
GeoMesa
GeoTrellis
GeoWave
Spatial4J
JSTS
Net Topology
Suite
RasterFrames
7
Vector Data (Points)
8
Vector Data (Lines)
9
Vector Data (Polygons)
Source: https://ryouready.wordpress.com/2009/11/16/infomaps-using-r-visualizing-german-unemployment-rates-by-color-on-a-map/
10
Vector Data
11
Contains
12
Contains
Representations:
OGC Simple Features
● Point
● LineString
● LinearRing
● Polygon
● MultiPoint
● MultiLineString
● MultiPolygon
● GeometryCollection
13
JTS Topology Suite
14
Predicates (DE-9IM)
● Equals
● Disjoin
● Intersects
● Touches
● Crosses
● Within
● Contains
● Overlaps
● Covers
● CoveredBy
JTS Topology Suite
15
Overlays
● Intersection
● Union
● Difference
● SymDifference
JTS Topology Suite
JTS Topology Suite
Measurements
● Length
● Area
● Distance
16
JTS Topology Suite
IO:
● WKT
● WKB
● GeoJSON
● KML
● GML2
17
JTS Topology Suite
18
Algorithms
● Convex Hull
● Buffer
● Validation
● Dissolve
● Polygonization
● Simplification
● Triangulation
● Voronoi
● Linear Referencing
● and more...
JTS Topology Suite
19
Applications
● TestBuilder
● TestRunner
JTS 1.14
JTS 1.14 Release
January 2016
• LineDissolver
• edgegraph package
• Visvalingam-Whyatt simplification
Improvements:
● Improved thread-safety
● Fixed Java 7 compatibility
● Added Spatialite WKB
● CoordinateSequence
● many bug fixes and performance
improvements
JTS I/O
• KML Writer
• GeoJsonReader/Writer
• Oracle SDO Performance
21
Visvalingam-Whyatt
vs
Douglas-Peucker
JTS 1.14 with Maven
JTS 1.14
22
<dependency>
<groupId>com.vividsolutions</groupId>
<artifactId>jts-core</artifactId>
<version>1.14.0</version>
</dependency>
Published
Official release on SF
• Install into local repo
On Maven Central
• We do not know
who did this!
JTS 1.15
JTS 1.15 Release
• Focus on codebase
• organization and packaging
• Some functionality improvements
• K Nearest Neighbor search for STR-Tree
• Improve handling of Quadtree queries with null Envelope
• Intersects now supports GeometryCollection
• JTSTestRunnerCmd command-line app
Sourceforge → GitHub
25
• Moving from SVN to GIT
• https://github.com/locationtech/jts
Why choose GitHub?
• High Visibility
• Great tools
• Git tools
• Issue tracking
• Pull Requests
• Continuous Integration
• Website
• Easier for contributions
• Where the action is!
26
GitHub: JTS Project Activity
• Pull Requests
• 76 accepted, 15 open
• Issues
• 39 closed, 49 open
27
Mavenization
• Build chain now uses Maven instead of Ant
• Easier to build and use
• Easy Eclipse IDE configuration
• Unit tests run by Maven build
• including XML tests
• Better release story
• Code artifacts will be hosted on Maven Central
• Apps built as fat-jars (TestBuilder, TestRunner)
• To Do
• Work on packaging a distro with source, scripts, etc...
28
Modular Codebase
• Codebase organized into modules
• jts-core - geometry implementation for use
• jts-tests - extensive testing for correctness and stability
• jts-io - read and write geometry
• jts-example - examples of using the jts api
• jts-lab - experimental playground use at your own risk
• jts-app - test builder application for defining tests
• better clarity of internal dependencies
29
JTS Joins LocationTech
• LocationTech offers
• project infrastructure
• project visibility
• stability, governance
• Immediate benefits
• More team members
• Synergy with other
LocationTech projects
• In-depth legal review for IP
(Intellectual Property) cleanliness
30
• Initial Work
• Project Application
• License Change
• LocationTech Incubation
• Build Infrastructure
• Official Maven Deployment
• Long term hopes
• Additional Contributors
• Funding for JTS 2.0
LocationTech Incubation
A new home:
• Project Website
• Mailing List
• Build Server
• GitHub repo
31
A new License
• Eclipse Public License
• Eclipse Distribution License
(BSD-3 Clause License)
Challenges:
• Contact assorted contributors
(because we did not have a CLA)
• changing package names
• Opportunity to work together
• Maintaining codebase history
• www.locationtech.org/projects/technology.jts
LocationTech Project Site
32
JTS 1.15
• Packaging
• org.locationtech.jts
• GitHub repo
• https://github.com/locationtech/jts
• Releases available on Maven Central
(and LT Nexus)
• Snapshots Available via LT Nexus
• https://repo.locationtech.org/
33
Using JTS 1.15 with Maven
JTS 1.14
34
<dependency>
<groupId>com.vividsolutions</groupId>
<artifactId>jts-core</artifactId>
<version>1.14.0</version>
</dependency>
JTS 1.15.1
<dependency>
<groupId>org.locationtech.jts</groupId>
<artifactId>jts-core</artifactId>
<version>1.15.1</version>
</dependency>
Using JTS 1.15.2-SNAPSHOT
JTS 1.14
35
<dependency>
<groupId>com.vividsolutions</groupId>
<artifactId>jts-core</artifactId>
<version>1.14.0</version>
</dependency>
JTS 1.15.2-SNAPSHOT
<dependency>
<groupId>org.locationtech.jts</groupId>
<artifactId>jts-core</artifactId>
<version>1.15.2-SNAPSHOT</version>
</dependency>
….
<repositories>
<repository>
<id>locationtech-snapshots</id>
<url>https://repo.locationtech.org/content/groups/snapshots</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
Migration to JTS 1.15
• New module structure
• jts-core
• jts-io-common - GeoJSON
• jts-io-ora - Oracle support
• jts-io-sde - SDE support
• jts-tests - XML Tests & TestRunner
• Change package names
• org.locationtech.jts.*
• Change Maven reference
• GroupId change: com.vividsolutions to org.locationtech.jts
•
JTS 1.15.1
• Support projects migrating
• Java Roadmap Compatibility
• module names for “jigsaw” packaging
• Fixes
• Geometry.clone() → Geometry.copy()
JTS Roadmap
Coming Soon!
JTS 1.16 Coming Soon!
• How soon?
• Release Candidate 1.16.0-RC1 is already available
• Scheduled 1.16.0 for September 5th Eclipse release review
• Final IP issues being resolved
(checking in new icons for the test builder application)
• Two week release review
39
Dimension: number of ordinates in
each coordinate, this total includes
any measures.
Measure: number of measures
included in dimension for each
coordinate
CoordinateSequence
XYZM
40
Coordinate Dimension Measures
XY 2 0
XYM 3 1
XYZ 3 0
XYZM 4 1
Coordinate
XYZM
Subclasses for XY, XYM, XYZM
representations.
The field “z” is deprecated! Please
use accessors to access fields.
41
Supports Well-Known Text representations for Z, M, ZM forms:
LINESTRING (10 10, 20 20, 30 40)
LINESTRING Z(10 10 10, 20 20 10, 30 40 10)
LINESTRING M(10 10 11, 20 20 11, 30 40 11)
LINESTRING ZM(10 10 10 11, 20 20 10 11, 30 40 10 11)
WKT XYZM Support
Felix has extended WKT
reader/writer support to support
XYZM.
The reader has a flag to support
“legacy” JTS representation.
42
JTS Topology Suite
IO:
● WKT
● WKB
● GeoJSON
● KML
● GML2
● TWKB (In progress!)
43
JTS Community Building
uDig Introduction 44
JTS Team Code Sprints
• 2016 January and November
• Sourceforge → GitHub
• Build change to maven
• Addressed “Intellectual Property” review questions
46
JTS Team Code Sprints
• 2018 Bon Code Sprint
• Java 10 compatibility with “jigsaw” module names
• 2017 FOSS4GNA Code Sprint
• Helping projects upgrade
• GeoTools PostGIS DataStore TWKB
• Join us Thursday for Community and workshop day!
48
JTS in the ‘Cloud’
uDig Introduction 49
JTS is EVERYWHERE
50
JTS
GEOS
GeoMesa
GeoTrellis
GeoWave
Spatial4J
JSTS
Net Topology
Suite
RasterFrames
Cloud Projects using JTS
51
Big Data Ecosystem
Distributed Spatial Goals
● Distribute the storage of vector and raster data
○ Database integration (HBase, Accumulo, C*)
○ File format integration (Arrow, Avro, Parquet)
● Distribute the processing of geospatial data
○ MapReduce integration
○ Spark integration
○ SparkSQL
53
JTS + Spark
● In 2015-2016
○ GeoMesa had RDD level support for JTS Geometry types (as well as
GeoTools SimpleFeatures)
● In 2017
○ GeoMesa integrated with Spark’s SQL query planner
■ Added Spatial UDTs
■ Added Spatial UDFs
■ Adds PostGIS syntax to Spark
■ (Limitation) Tied to GeoMesa
● In 2018
○ GeoMesa project refactored JTS+Spark module
■ Being used by the RasterFrames project
54
JTS + Spark going forward
● The JTS + Spark integration is pretty straightforward;
the goal is to have more projects integrate with it.
○ Performance enhancements can shared by all the projects
● Currently, each Spark release introduces changes to
the UDT/UDF protected interfaces.
○ This risk is best shared by a community (rather than having each
project reimplement and update their individual projects)
55
JTS 2.0 Roadmap / Wishlist
uDig Introduction 56
Algorithm Improvements
• Goal: improve some key JTS algorithms
• Overlay
• Snap-rounding (no more TopologyExceptions!)
• Support PreparedGeometry for caching
• Fast & robust Clip to Rectangle
• Spatial Predicate improvements
• Streaming / Lazy evaluation with short-circuiting
• User-defined precision model
• Less sensitive to valid geometry (e.g. Intersects)
• Distance
• Support cached PreparedGeometry
57
New Algorithms
• Concave Hull
• Polygon Triangulation
• Polygon Cleaning (“MakeValid”)
• Split Geometry by Line
• Polygon Coverage Simplification
58
Concave Hull
Polygon Triangulation
New API - JTS 2.0
• Concept for a redesign of JTS
• Key Goals
• Interface-based Geometry access
• Immutable Geometry objects
• Geodetic (WGS84) support, with some basic algorithms
• Pluggable/discoverable Geometry operation framework
• Coordinate extensions (XY, XY+M)
• Non-goals
• Backwards compatibility
• Improving geometry algorithms
59
JTS 1.0 Baseline
SFQL, GML2
60
Primitives:
● Geometry
● Point
● LineString
● Polygon
JTS 1.0 Baseline
SFQL, GML2
61
Collections
● GeometryCollection
● MultiPoint
● MultiLineString
● MultiPolygon
JTS 2.0 Challenge
SQL/MM, GML3, ISO19107
Primitives:
● Point
● Curve
● Surface
62
JTS 2.0 Challenge
SQL/MM, GML3, ISO19107
Geometry defined using:
● Positions
● Reference System
63
JTS 2.0 Challenge
JTS Topology Suite
Linear Geometry
Euclidean operations
Spatial4J
Curved Geometry
Cylindrical operations
Spherical operations
64
JTS 2.0 Approach
65
SFSQL
Geometry Classes
Spatial4J
Shape Classes
SQL/MM
Geometry Classes
JTS 2.0
Linear Ops Cylindrical Ops Spherical Ops
BufferOp BufferOp BufferOp
... ... ...
Shape the Future
Join JTS Topology Suite
Contributing to JTS
• Register as a Contributor
• Sign the Eclipse Contributor Agreement
• https://www.eclipse.org/legal/ECA.php
• Develop a patch, making sure to include
• Javadoc
• Unit Tests - JUnit and/or JTS XML tests
• Make a Pull Request on GitHub
• Acknowledge code is IP clean by signing-off each Git commit
• Make sure the Travis CI validation tests pass
See also https://github.com/locationtech/jts/blob/master/CONTRIBUTING.md
67
Join Us at the Code Sprint!
Thursday, at the code sprint, we will work on two projects
1. Polishing a new TWKB Reader/Writer
2. Upgrading the GeoServer ecosystem to LocationTech JTS
68
Questions?
uDig Introduction 69
Project Resources
• Source Code repo
• https://github.com/locationtech/jts
• Issue Tracker
• https://github.com/locationtech/jts/issues
• Mailing List
• https://dev.locationtech.org/mailman/listinfo/jts-dev
• Project website
• https://locationtech.github.io/jts
• Javadoc
• https://locationtech.github.io/jts/javadoc
70
Thank you from the JTS Team

Mais conteúdo relacionado

Mais procurados

Object relational and extended relational databases
Object relational and extended relational databasesObject relational and extended relational databases
Object relational and extended relational databasesSuhad Jihad
 
1 introduction databases and database users
1 introduction databases and database users1 introduction databases and database users
1 introduction databases and database usersKumar
 
Importing Data into Neo4j quickly and easily - StackOverflow
Importing Data into Neo4j quickly and easily - StackOverflowImporting Data into Neo4j quickly and easily - StackOverflow
Importing Data into Neo4j quickly and easily - StackOverflowNeo4j
 
Tong quan ve phan cum data mining
Tong quan ve phan cum   data miningTong quan ve phan cum   data mining
Tong quan ve phan cum data miningHoa Chu
 
Presentation on tablespaceses segments extends and blocks
Presentation on tablespaceses segments extends and blocksPresentation on tablespaceses segments extends and blocks
Presentation on tablespaceses segments extends and blocksVinay Ugave
 
lý thuyết cơ sở dữ liệu phân tán
lý thuyết cơ sở dữ liệu phân tánlý thuyết cơ sở dữ liệu phân tán
lý thuyết cơ sở dữ liệu phân tánNgo Trung
 
How to deploy machine learning models into production
How to deploy machine learning models into productionHow to deploy machine learning models into production
How to deploy machine learning models into productionDataWorks Summit
 
MongoDB Schema Design
MongoDB Schema DesignMongoDB Schema Design
MongoDB Schema DesignMongoDB
 
PHÂN CỤM DỮ LIỆU TRONG DATAMING.pdf
PHÂN CỤM DỮ LIỆU TRONG DATAMING.pdfPHÂN CỤM DỮ LIỆU TRONG DATAMING.pdf
PHÂN CỤM DỮ LIỆU TRONG DATAMING.pdfMan_Ebook
 
Introduction to Big Data
Introduction to Big DataIntroduction to Big Data
Introduction to Big DataHaluan Irsad
 
An Introduction to NOSQL, Graph Databases and Neo4j
An Introduction to NOSQL, Graph Databases and Neo4jAn Introduction to NOSQL, Graph Databases and Neo4j
An Introduction to NOSQL, Graph Databases and Neo4jDebanjan Mahata
 
STAC, ZARR, COG, K8S and Data Cubes: The brave new world of satellite EO anal...
STAC, ZARR, COG, K8S and Data Cubes: The brave new world of satellite EO anal...STAC, ZARR, COG, K8S and Data Cubes: The brave new world of satellite EO anal...
STAC, ZARR, COG, K8S and Data Cubes: The brave new world of satellite EO anal...GEO Analytics Canada
 
Graph Analytics with ArangoDB
Graph Analytics with ArangoDBGraph Analytics with ArangoDB
Graph Analytics with ArangoDBArangoDB Database
 

Mais procurados (20)

Object relational and extended relational databases
Object relational and extended relational databasesObject relational and extended relational databases
Object relational and extended relational databases
 
1 introduction databases and database users
1 introduction databases and database users1 introduction databases and database users
1 introduction databases and database users
 
RDBMS concepts
RDBMS conceptsRDBMS concepts
RDBMS concepts
 
Đề tài: Bài toán và các giải thuật theo tiếp cận phân cấp, HOT
Đề tài: Bài toán và các giải thuật theo tiếp cận phân cấp, HOTĐề tài: Bài toán và các giải thuật theo tiếp cận phân cấp, HOT
Đề tài: Bài toán và các giải thuật theo tiếp cận phân cấp, HOT
 
Active and main memory database
Active and main memory databaseActive and main memory database
Active and main memory database
 
Importing Data into Neo4j quickly and easily - StackOverflow
Importing Data into Neo4j quickly and easily - StackOverflowImporting Data into Neo4j quickly and easily - StackOverflow
Importing Data into Neo4j quickly and easily - StackOverflow
 
Tong quan ve phan cum data mining
Tong quan ve phan cum   data miningTong quan ve phan cum   data mining
Tong quan ve phan cum data mining
 
Presentation on tablespaceses segments extends and blocks
Presentation on tablespaceses segments extends and blocksPresentation on tablespaceses segments extends and blocks
Presentation on tablespaceses segments extends and blocks
 
Graph database
Graph database Graph database
Graph database
 
lý thuyết cơ sở dữ liệu phân tán
lý thuyết cơ sở dữ liệu phân tánlý thuyết cơ sở dữ liệu phân tán
lý thuyết cơ sở dữ liệu phân tán
 
How to deploy machine learning models into production
How to deploy machine learning models into productionHow to deploy machine learning models into production
How to deploy machine learning models into production
 
Sql server basics
Sql server basicsSql server basics
Sql server basics
 
MongoDB Schema Design
MongoDB Schema DesignMongoDB Schema Design
MongoDB Schema Design
 
PHÂN CỤM DỮ LIỆU TRONG DATAMING.pdf
PHÂN CỤM DỮ LIỆU TRONG DATAMING.pdfPHÂN CỤM DỮ LIỆU TRONG DATAMING.pdf
PHÂN CỤM DỮ LIỆU TRONG DATAMING.pdf
 
Introduction to Big Data
Introduction to Big DataIntroduction to Big Data
Introduction to Big Data
 
An Introduction to NOSQL, Graph Databases and Neo4j
An Introduction to NOSQL, Graph Databases and Neo4jAn Introduction to NOSQL, Graph Databases and Neo4j
An Introduction to NOSQL, Graph Databases and Neo4j
 
Database concepts
Database conceptsDatabase concepts
Database concepts
 
STAC, ZARR, COG, K8S and Data Cubes: The brave new world of satellite EO anal...
STAC, ZARR, COG, K8S and Data Cubes: The brave new world of satellite EO anal...STAC, ZARR, COG, K8S and Data Cubes: The brave new world of satellite EO anal...
STAC, ZARR, COG, K8S and Data Cubes: The brave new world of satellite EO anal...
 
Graph Analytics with ArangoDB
Graph Analytics with ArangoDBGraph Analytics with ArangoDB
Graph Analytics with ArangoDB
 
Rdbms (2)
Rdbms (2)Rdbms (2)
Rdbms (2)
 

Semelhante a State of JTS 2018

LocationTech Projects
LocationTech ProjectsLocationTech Projects
LocationTech ProjectsJody Garnett
 
State of GeoServer - FOSS4G 2016
State of GeoServer - FOSS4G 2016State of GeoServer - FOSS4G 2016
State of GeoServer - FOSS4G 2016GeoSolutions
 
State of GeoServer 2.13
State of GeoServer 2.13State of GeoServer 2.13
State of GeoServer 2.13Jody Garnett
 
State of GeoServer 2.10
State of GeoServer 2.10State of GeoServer 2.10
State of GeoServer 2.10Jody Garnett
 
State of GeoServer 2015
State of GeoServer 2015State of GeoServer 2015
State of GeoServer 2015Jody Garnett
 
Gustavo Garnica: Evolución de la Plataforma Java y lo que Significa para Ti
Gustavo Garnica: Evolución de la Plataforma Java y lo que Significa para TiGustavo Garnica: Evolución de la Plataforma Java y lo que Significa para Ti
Gustavo Garnica: Evolución de la Plataforma Java y lo que Significa para TiSoftware Guru
 
GeoKettle: A powerful open source spatial ETL tool
GeoKettle: A powerful open source spatial ETL toolGeoKettle: A powerful open source spatial ETL tool
GeoKettle: A powerful open source spatial ETL toolThierry Badard
 
State of GeoServer 2.12
State of GeoServer 2.12State of GeoServer 2.12
State of GeoServer 2.12GeoSolutions
 
Spatially enabled open source BI (GeoBI) with GeoKettle, GeoMondrian & SOLAPL...
Spatially enabled open source BI (GeoBI) with GeoKettle, GeoMondrian & SOLAPL...Spatially enabled open source BI (GeoBI) with GeoKettle, GeoMondrian & SOLAPL...
Spatially enabled open source BI (GeoBI) with GeoKettle, GeoMondrian & SOLAPL...Thierry Badard
 
State of GeoServer
State of GeoServerState of GeoServer
State of GeoServerJody Garnett
 
GeoNetwork workshop introduction mapwindow conference 2012 Velp
GeoNetwork workshop introduction mapwindow conference 2012 VelpGeoNetwork workshop introduction mapwindow conference 2012 Velp
GeoNetwork workshop introduction mapwindow conference 2012 Velppvangenuchten
 
WMS Performance Shootout 2011
WMS Performance Shootout 2011WMS Performance Shootout 2011
WMS Performance Shootout 2011Jeff McKenna
 
Spatiotemporal Raster Improvements in GeoServer
Spatiotemporal Raster Improvements in GeoServerSpatiotemporal Raster Improvements in GeoServer
Spatiotemporal Raster Improvements in GeoServerGeoSolutions
 
GeoServer Ecosystem 2018
GeoServer Ecosystem 2018GeoServer Ecosystem 2018
GeoServer Ecosystem 2018Jody Garnett
 
DEVNET-1169 CI/CT/CD on a Micro Services Applications using Docker, Salt & Ni...
DEVNET-1169	CI/CT/CD on a Micro Services Applications using Docker, Salt & Ni...DEVNET-1169	CI/CT/CD on a Micro Services Applications using Docker, Salt & Ni...
DEVNET-1169 CI/CT/CD on a Micro Services Applications using Docker, Salt & Ni...Cisco DevNet
 
GeoPackage SWG Overview
GeoPackage SWG OverviewGeoPackage SWG Overview
GeoPackage SWG OverviewJeff Yutzler
 
GeoKettle: A powerful open source spatial ETL tool
GeoKettle: A powerful open source spatial ETL toolGeoKettle: A powerful open source spatial ETL tool
GeoKettle: A powerful open source spatial ETL toolThierry Badard
 
OSGeo Live Lightening Overview
OSGeo Live Lightening OverviewOSGeo Live Lightening Overview
OSGeo Live Lightening OverviewJody Garnett
 
PEARC17: Live Integrated Visualization Environment: An Experiment in General...
PEARC17: Live Integrated Visualization Environment: An Experiment in General...PEARC17: Live Integrated Visualization Environment: An Experiment in General...
PEARC17: Live Integrated Visualization Environment: An Experiment in General...moneyjh
 

Semelhante a State of JTS 2018 (20)

State of JTS 2017
State of JTS 2017State of JTS 2017
State of JTS 2017
 
LocationTech Projects
LocationTech ProjectsLocationTech Projects
LocationTech Projects
 
State of GeoServer - FOSS4G 2016
State of GeoServer - FOSS4G 2016State of GeoServer - FOSS4G 2016
State of GeoServer - FOSS4G 2016
 
State of GeoServer 2.13
State of GeoServer 2.13State of GeoServer 2.13
State of GeoServer 2.13
 
State of GeoServer 2.10
State of GeoServer 2.10State of GeoServer 2.10
State of GeoServer 2.10
 
State of GeoServer 2015
State of GeoServer 2015State of GeoServer 2015
State of GeoServer 2015
 
Gustavo Garnica: Evolución de la Plataforma Java y lo que Significa para Ti
Gustavo Garnica: Evolución de la Plataforma Java y lo que Significa para TiGustavo Garnica: Evolución de la Plataforma Java y lo que Significa para Ti
Gustavo Garnica: Evolución de la Plataforma Java y lo que Significa para Ti
 
GeoKettle: A powerful open source spatial ETL tool
GeoKettle: A powerful open source spatial ETL toolGeoKettle: A powerful open source spatial ETL tool
GeoKettle: A powerful open source spatial ETL tool
 
State of GeoServer 2.12
State of GeoServer 2.12State of GeoServer 2.12
State of GeoServer 2.12
 
Spatially enabled open source BI (GeoBI) with GeoKettle, GeoMondrian & SOLAPL...
Spatially enabled open source BI (GeoBI) with GeoKettle, GeoMondrian & SOLAPL...Spatially enabled open source BI (GeoBI) with GeoKettle, GeoMondrian & SOLAPL...
Spatially enabled open source BI (GeoBI) with GeoKettle, GeoMondrian & SOLAPL...
 
State of GeoServer
State of GeoServerState of GeoServer
State of GeoServer
 
GeoNetwork workshop introduction mapwindow conference 2012 Velp
GeoNetwork workshop introduction mapwindow conference 2012 VelpGeoNetwork workshop introduction mapwindow conference 2012 Velp
GeoNetwork workshop introduction mapwindow conference 2012 Velp
 
WMS Performance Shootout 2011
WMS Performance Shootout 2011WMS Performance Shootout 2011
WMS Performance Shootout 2011
 
Spatiotemporal Raster Improvements in GeoServer
Spatiotemporal Raster Improvements in GeoServerSpatiotemporal Raster Improvements in GeoServer
Spatiotemporal Raster Improvements in GeoServer
 
GeoServer Ecosystem 2018
GeoServer Ecosystem 2018GeoServer Ecosystem 2018
GeoServer Ecosystem 2018
 
DEVNET-1169 CI/CT/CD on a Micro Services Applications using Docker, Salt & Ni...
DEVNET-1169	CI/CT/CD on a Micro Services Applications using Docker, Salt & Ni...DEVNET-1169	CI/CT/CD on a Micro Services Applications using Docker, Salt & Ni...
DEVNET-1169 CI/CT/CD on a Micro Services Applications using Docker, Salt & Ni...
 
GeoPackage SWG Overview
GeoPackage SWG OverviewGeoPackage SWG Overview
GeoPackage SWG Overview
 
GeoKettle: A powerful open source spatial ETL tool
GeoKettle: A powerful open source spatial ETL toolGeoKettle: A powerful open source spatial ETL tool
GeoKettle: A powerful open source spatial ETL tool
 
OSGeo Live Lightening Overview
OSGeo Live Lightening OverviewOSGeo Live Lightening Overview
OSGeo Live Lightening Overview
 
PEARC17: Live Integrated Visualization Environment: An Experiment in General...
PEARC17: Live Integrated Visualization Environment: An Experiment in General...PEARC17: Live Integrated Visualization Environment: An Experiment in General...
PEARC17: Live Integrated Visualization Environment: An Experiment in General...
 

Mais de Jody Garnett

GeoServer Orientation
GeoServer OrientationGeoServer Orientation
GeoServer OrientationJody Garnett
 
Open Source Practice and Passion at OSGeo
Open Source Practice and Passion at OSGeoOpen Source Practice and Passion at OSGeo
Open Source Practice and Passion at OSGeoJody Garnett
 
Introduction to OSGeo
Introduction to OSGeoIntroduction to OSGeo
Introduction to OSGeoJody Garnett
 
Open Source Procurement
Open Source ProcurementOpen Source Procurement
Open Source ProcurementJody Garnett
 
Java Image Processing for Geospatial Community
Java Image Processing for Geospatial CommunityJava Image Processing for Geospatial Community
Java Image Processing for Geospatial CommunityJody Garnett
 
Open Source Practice and Passion at OSGeo
Open Source Practice and Passion at OSGeoOpen Source Practice and Passion at OSGeo
Open Source Practice and Passion at OSGeoJody Garnett
 
Open Source is hard, we are here to help!
Open Source is hard, we are here to help!Open Source is hard, we are here to help!
Open Source is hard, we are here to help!Jody Garnett
 
GeoServer Developers Workshop
GeoServer Developers WorkshopGeoServer Developers Workshop
GeoServer Developers WorkshopJody Garnett
 
State of GeoServer 2.14
State of GeoServer 2.14State of GeoServer 2.14
State of GeoServer 2.14Jody Garnett
 
Working with the OSGeo Community
Working with the OSGeo CommunityWorking with the OSGeo Community
Working with the OSGeo CommunityJody Garnett
 
Open Data and Open Software Geospatial Applications
Open Data and Open Software Geospatial ApplicationsOpen Data and Open Software Geospatial Applications
Open Data and Open Software Geospatial ApplicationsJody Garnett
 
Map box styles in GeoServer and OpenLayers
Map box styles in GeoServer and OpenLayersMap box styles in GeoServer and OpenLayers
Map box styles in GeoServer and OpenLayersJody Garnett
 
Quick and easy web maps
Quick and easy web mapsQuick and easy web maps
Quick and easy web mapsJody Garnett
 
Incubation Orientation
Incubation OrientationIncubation Orientation
Incubation OrientationJody Garnett
 
Understanding the Flexibility of Open Source
Understanding the Flexibility of Open SourceUnderstanding the Flexibility of Open Source
Understanding the Flexibility of Open SourceJody Garnett
 
Understanding Open Source
Understanding Open SourceUnderstanding Open Source
Understanding Open SourceJody Garnett
 
Understanding Open Source
Understanding Open SourceUnderstanding Open Source
Understanding Open SourceJody Garnett
 

Mais de Jody Garnett (20)

GeoServer Orientation
GeoServer OrientationGeoServer Orientation
GeoServer Orientation
 
Open Source Practice and Passion at OSGeo
Open Source Practice and Passion at OSGeoOpen Source Practice and Passion at OSGeo
Open Source Practice and Passion at OSGeo
 
Introduction to OSGeo
Introduction to OSGeoIntroduction to OSGeo
Introduction to OSGeo
 
Open Source Procurement
Open Source ProcurementOpen Source Procurement
Open Source Procurement
 
Java Image Processing for Geospatial Community
Java Image Processing for Geospatial CommunityJava Image Processing for Geospatial Community
Java Image Processing for Geospatial Community
 
Open Source Practice and Passion at OSGeo
Open Source Practice and Passion at OSGeoOpen Source Practice and Passion at OSGeo
Open Source Practice and Passion at OSGeo
 
Open Source is hard, we are here to help!
Open Source is hard, we are here to help!Open Source is hard, we are here to help!
Open Source is hard, we are here to help!
 
GeoServer Developers Workshop
GeoServer Developers WorkshopGeoServer Developers Workshop
GeoServer Developers Workshop
 
State of GeoServer 2.14
State of GeoServer 2.14State of GeoServer 2.14
State of GeoServer 2.14
 
OSGeo AGM 2018
OSGeo AGM 2018OSGeo AGM 2018
OSGeo AGM 2018
 
Working with the OSGeo Community
Working with the OSGeo CommunityWorking with the OSGeo Community
Working with the OSGeo Community
 
Open Data and Open Software Geospatial Applications
Open Data and Open Software Geospatial ApplicationsOpen Data and Open Software Geospatial Applications
Open Data and Open Software Geospatial Applications
 
Map box styles in GeoServer and OpenLayers
Map box styles in GeoServer and OpenLayersMap box styles in GeoServer and OpenLayers
Map box styles in GeoServer and OpenLayers
 
Quick and easy web maps
Quick and easy web mapsQuick and easy web maps
Quick and easy web maps
 
State of GeoGig
State of GeoGigState of GeoGig
State of GeoGig
 
OSGeo AGM 2017
OSGeo AGM 2017OSGeo AGM 2017
OSGeo AGM 2017
 
Incubation Orientation
Incubation OrientationIncubation Orientation
Incubation Orientation
 
Understanding the Flexibility of Open Source
Understanding the Flexibility of Open SourceUnderstanding the Flexibility of Open Source
Understanding the Flexibility of Open Source
 
Understanding Open Source
Understanding Open SourceUnderstanding Open Source
Understanding Open Source
 
Understanding Open Source
Understanding Open SourceUnderstanding Open Source
Understanding Open Source
 

Último

Chemistry 5th semester paper 1st Notes.pdf
Chemistry 5th semester paper 1st Notes.pdfChemistry 5th semester paper 1st Notes.pdf
Chemistry 5th semester paper 1st Notes.pdfSumit Kumar yadav
 
biology HL practice questions IB BIOLOGY
biology HL practice questions IB BIOLOGYbiology HL practice questions IB BIOLOGY
biology HL practice questions IB BIOLOGY1301aanya
 
COMPUTING ANTI-DERIVATIVES (Integration by SUBSTITUTION)
COMPUTING ANTI-DERIVATIVES(Integration by SUBSTITUTION)COMPUTING ANTI-DERIVATIVES(Integration by SUBSTITUTION)
COMPUTING ANTI-DERIVATIVES (Integration by SUBSTITUTION)AkefAfaneh2
 
PSYCHOSOCIAL NEEDS. in nursing II sem pptx
PSYCHOSOCIAL NEEDS. in nursing II sem pptxPSYCHOSOCIAL NEEDS. in nursing II sem pptx
PSYCHOSOCIAL NEEDS. in nursing II sem pptxSuji236384
 
module for grade 9 for distance learning
module for grade 9 for distance learningmodule for grade 9 for distance learning
module for grade 9 for distance learninglevieagacer
 
Velocity and Acceleration PowerPoint.ppt
Velocity and Acceleration PowerPoint.pptVelocity and Acceleration PowerPoint.ppt
Velocity and Acceleration PowerPoint.pptRakeshMohan42
 
Conjugation, transduction and transformation
Conjugation, transduction and transformationConjugation, transduction and transformation
Conjugation, transduction and transformationAreesha Ahmad
 
development of diagnostic enzyme assay to detect leuser virus
development of diagnostic enzyme assay to detect leuser virusdevelopment of diagnostic enzyme assay to detect leuser virus
development of diagnostic enzyme assay to detect leuser virusNazaninKarimi6
 
Exploring Criminology and Criminal Behaviour.pdf
Exploring Criminology and Criminal Behaviour.pdfExploring Criminology and Criminal Behaviour.pdf
Exploring Criminology and Criminal Behaviour.pdfrohankumarsinghrore1
 
Module for Grade 9 for Asynchronous/Distance learning
Module for Grade 9 for Asynchronous/Distance learningModule for Grade 9 for Asynchronous/Distance learning
Module for Grade 9 for Asynchronous/Distance learninglevieagacer
 
Climate Change Impacts on Terrestrial and Aquatic Ecosystems.pptx
Climate Change Impacts on Terrestrial and Aquatic Ecosystems.pptxClimate Change Impacts on Terrestrial and Aquatic Ecosystems.pptx
Climate Change Impacts on Terrestrial and Aquatic Ecosystems.pptxDiariAli
 
The Mariana Trench remarkable geological features on Earth.pptx
The Mariana Trench remarkable geological features on Earth.pptxThe Mariana Trench remarkable geological features on Earth.pptx
The Mariana Trench remarkable geological features on Earth.pptxseri bangash
 
Use of mutants in understanding seedling development.pptx
Use of mutants in understanding seedling development.pptxUse of mutants in understanding seedling development.pptx
Use of mutants in understanding seedling development.pptxRenuJangid3
 
Thyroid Physiology_Dr.E. Muralinath_ Associate Professor
Thyroid Physiology_Dr.E. Muralinath_ Associate ProfessorThyroid Physiology_Dr.E. Muralinath_ Associate Professor
Thyroid Physiology_Dr.E. Muralinath_ Associate Professormuralinath2
 
Bhiwandi Bhiwandi ❤CALL GIRL 7870993772 ❤CALL GIRLS ESCORT SERVICE In Bhiwan...
Bhiwandi Bhiwandi ❤CALL GIRL 7870993772 ❤CALL GIRLS  ESCORT SERVICE In Bhiwan...Bhiwandi Bhiwandi ❤CALL GIRL 7870993772 ❤CALL GIRLS  ESCORT SERVICE In Bhiwan...
Bhiwandi Bhiwandi ❤CALL GIRL 7870993772 ❤CALL GIRLS ESCORT SERVICE In Bhiwan...Monika Rani
 
(May 9, 2024) Enhanced Ultrafast Vector Flow Imaging (VFI) Using Multi-Angle ...
(May 9, 2024) Enhanced Ultrafast Vector Flow Imaging (VFI) Using Multi-Angle ...(May 9, 2024) Enhanced Ultrafast Vector Flow Imaging (VFI) Using Multi-Angle ...
(May 9, 2024) Enhanced Ultrafast Vector Flow Imaging (VFI) Using Multi-Angle ...Scintica Instrumentation
 
Introduction of DNA analysis in Forensic's .pptx
Introduction of DNA analysis in Forensic's .pptxIntroduction of DNA analysis in Forensic's .pptx
Introduction of DNA analysis in Forensic's .pptxrohankumarsinghrore1
 
Zoology 5th semester notes( Sumit_yadav).pdf
Zoology 5th semester notes( Sumit_yadav).pdfZoology 5th semester notes( Sumit_yadav).pdf
Zoology 5th semester notes( Sumit_yadav).pdfSumit Kumar yadav
 
Molecular markers- RFLP, RAPD, AFLP, SNP etc.
Molecular markers- RFLP, RAPD, AFLP, SNP etc.Molecular markers- RFLP, RAPD, AFLP, SNP etc.
Molecular markers- RFLP, RAPD, AFLP, SNP etc.Silpa
 

Último (20)

Chemistry 5th semester paper 1st Notes.pdf
Chemistry 5th semester paper 1st Notes.pdfChemistry 5th semester paper 1st Notes.pdf
Chemistry 5th semester paper 1st Notes.pdf
 
biology HL practice questions IB BIOLOGY
biology HL practice questions IB BIOLOGYbiology HL practice questions IB BIOLOGY
biology HL practice questions IB BIOLOGY
 
COMPUTING ANTI-DERIVATIVES (Integration by SUBSTITUTION)
COMPUTING ANTI-DERIVATIVES(Integration by SUBSTITUTION)COMPUTING ANTI-DERIVATIVES(Integration by SUBSTITUTION)
COMPUTING ANTI-DERIVATIVES (Integration by SUBSTITUTION)
 
PSYCHOSOCIAL NEEDS. in nursing II sem pptx
PSYCHOSOCIAL NEEDS. in nursing II sem pptxPSYCHOSOCIAL NEEDS. in nursing II sem pptx
PSYCHOSOCIAL NEEDS. in nursing II sem pptx
 
module for grade 9 for distance learning
module for grade 9 for distance learningmodule for grade 9 for distance learning
module for grade 9 for distance learning
 
Velocity and Acceleration PowerPoint.ppt
Velocity and Acceleration PowerPoint.pptVelocity and Acceleration PowerPoint.ppt
Velocity and Acceleration PowerPoint.ppt
 
Conjugation, transduction and transformation
Conjugation, transduction and transformationConjugation, transduction and transformation
Conjugation, transduction and transformation
 
development of diagnostic enzyme assay to detect leuser virus
development of diagnostic enzyme assay to detect leuser virusdevelopment of diagnostic enzyme assay to detect leuser virus
development of diagnostic enzyme assay to detect leuser virus
 
Exploring Criminology and Criminal Behaviour.pdf
Exploring Criminology and Criminal Behaviour.pdfExploring Criminology and Criminal Behaviour.pdf
Exploring Criminology and Criminal Behaviour.pdf
 
Module for Grade 9 for Asynchronous/Distance learning
Module for Grade 9 for Asynchronous/Distance learningModule for Grade 9 for Asynchronous/Distance learning
Module for Grade 9 for Asynchronous/Distance learning
 
Climate Change Impacts on Terrestrial and Aquatic Ecosystems.pptx
Climate Change Impacts on Terrestrial and Aquatic Ecosystems.pptxClimate Change Impacts on Terrestrial and Aquatic Ecosystems.pptx
Climate Change Impacts on Terrestrial and Aquatic Ecosystems.pptx
 
The Mariana Trench remarkable geological features on Earth.pptx
The Mariana Trench remarkable geological features on Earth.pptxThe Mariana Trench remarkable geological features on Earth.pptx
The Mariana Trench remarkable geological features on Earth.pptx
 
PATNA CALL GIRLS 8617370543 LOW PRICE ESCORT SERVICE
PATNA CALL GIRLS 8617370543 LOW PRICE ESCORT SERVICEPATNA CALL GIRLS 8617370543 LOW PRICE ESCORT SERVICE
PATNA CALL GIRLS 8617370543 LOW PRICE ESCORT SERVICE
 
Use of mutants in understanding seedling development.pptx
Use of mutants in understanding seedling development.pptxUse of mutants in understanding seedling development.pptx
Use of mutants in understanding seedling development.pptx
 
Thyroid Physiology_Dr.E. Muralinath_ Associate Professor
Thyroid Physiology_Dr.E. Muralinath_ Associate ProfessorThyroid Physiology_Dr.E. Muralinath_ Associate Professor
Thyroid Physiology_Dr.E. Muralinath_ Associate Professor
 
Bhiwandi Bhiwandi ❤CALL GIRL 7870993772 ❤CALL GIRLS ESCORT SERVICE In Bhiwan...
Bhiwandi Bhiwandi ❤CALL GIRL 7870993772 ❤CALL GIRLS  ESCORT SERVICE In Bhiwan...Bhiwandi Bhiwandi ❤CALL GIRL 7870993772 ❤CALL GIRLS  ESCORT SERVICE In Bhiwan...
Bhiwandi Bhiwandi ❤CALL GIRL 7870993772 ❤CALL GIRLS ESCORT SERVICE In Bhiwan...
 
(May 9, 2024) Enhanced Ultrafast Vector Flow Imaging (VFI) Using Multi-Angle ...
(May 9, 2024) Enhanced Ultrafast Vector Flow Imaging (VFI) Using Multi-Angle ...(May 9, 2024) Enhanced Ultrafast Vector Flow Imaging (VFI) Using Multi-Angle ...
(May 9, 2024) Enhanced Ultrafast Vector Flow Imaging (VFI) Using Multi-Angle ...
 
Introduction of DNA analysis in Forensic's .pptx
Introduction of DNA analysis in Forensic's .pptxIntroduction of DNA analysis in Forensic's .pptx
Introduction of DNA analysis in Forensic's .pptx
 
Zoology 5th semester notes( Sumit_yadav).pdf
Zoology 5th semester notes( Sumit_yadav).pdfZoology 5th semester notes( Sumit_yadav).pdf
Zoology 5th semester notes( Sumit_yadav).pdf
 
Molecular markers- RFLP, RAPD, AFLP, SNP etc.
Molecular markers- RFLP, RAPD, AFLP, SNP etc.Molecular markers- RFLP, RAPD, AFLP, SNP etc.
Molecular markers- RFLP, RAPD, AFLP, SNP etc.
 

State of JTS 2018

  • 1. State of JTS Presented by: James, Jody, Rob, (Martin)
  • 2. Welcome Martin Davis James Hughes Jody Garnett Rob Emanuele Vivid Solutions CCRi Boundless Azavea 2
  • 4. What is JTS Topology Suite? 4 Java API for working with 2D Geometries
  • 5. 1.9 1.3 JTS Project History 5 2005 2006 2007 2008 2009 2004 2003 2002 2001 2000 1.0 2014 2013 2012 2011 2010 2015 2016 2017 2018 2019 1.15 1.11.21.4 1.5 1.6 1.7 1.8 1.10 1.111.121.13 LT JTS 1.161.14 1.15
  • 9. 9 Vector Data (Polygons) Source: https://ryouready.wordpress.com/2009/11/16/infomaps-using-r-visualizing-german-unemployment-rates-by-color-on-a-map/
  • 13. Representations: OGC Simple Features ● Point ● LineString ● LinearRing ● Polygon ● MultiPoint ● MultiLineString ● MultiPolygon ● GeometryCollection 13 JTS Topology Suite
  • 14. 14 Predicates (DE-9IM) ● Equals ● Disjoin ● Intersects ● Touches ● Crosses ● Within ● Contains ● Overlaps ● Covers ● CoveredBy JTS Topology Suite
  • 15. 15 Overlays ● Intersection ● Union ● Difference ● SymDifference JTS Topology Suite
  • 16. JTS Topology Suite Measurements ● Length ● Area ● Distance 16
  • 17. JTS Topology Suite IO: ● WKT ● WKB ● GeoJSON ● KML ● GML2 17
  • 18. JTS Topology Suite 18 Algorithms ● Convex Hull ● Buffer ● Validation ● Dissolve ● Polygonization ● Simplification ● Triangulation ● Voronoi ● Linear Referencing ● and more...
  • 19. JTS Topology Suite 19 Applications ● TestBuilder ● TestRunner
  • 21. JTS 1.14 Release January 2016 • LineDissolver • edgegraph package • Visvalingam-Whyatt simplification Improvements: ● Improved thread-safety ● Fixed Java 7 compatibility ● Added Spatialite WKB ● CoordinateSequence ● many bug fixes and performance improvements JTS I/O • KML Writer • GeoJsonReader/Writer • Oracle SDO Performance 21 Visvalingam-Whyatt vs Douglas-Peucker
  • 22. JTS 1.14 with Maven JTS 1.14 22 <dependency> <groupId>com.vividsolutions</groupId> <artifactId>jts-core</artifactId> <version>1.14.0</version> </dependency> Published Official release on SF • Install into local repo On Maven Central • We do not know who did this!
  • 24. JTS 1.15 Release • Focus on codebase • organization and packaging • Some functionality improvements • K Nearest Neighbor search for STR-Tree • Improve handling of Quadtree queries with null Envelope • Intersects now supports GeometryCollection • JTSTestRunnerCmd command-line app
  • 25. Sourceforge → GitHub 25 • Moving from SVN to GIT • https://github.com/locationtech/jts
  • 26. Why choose GitHub? • High Visibility • Great tools • Git tools • Issue tracking • Pull Requests • Continuous Integration • Website • Easier for contributions • Where the action is! 26
  • 27. GitHub: JTS Project Activity • Pull Requests • 76 accepted, 15 open • Issues • 39 closed, 49 open 27
  • 28. Mavenization • Build chain now uses Maven instead of Ant • Easier to build and use • Easy Eclipse IDE configuration • Unit tests run by Maven build • including XML tests • Better release story • Code artifacts will be hosted on Maven Central • Apps built as fat-jars (TestBuilder, TestRunner) • To Do • Work on packaging a distro with source, scripts, etc... 28
  • 29. Modular Codebase • Codebase organized into modules • jts-core - geometry implementation for use • jts-tests - extensive testing for correctness and stability • jts-io - read and write geometry • jts-example - examples of using the jts api • jts-lab - experimental playground use at your own risk • jts-app - test builder application for defining tests • better clarity of internal dependencies 29
  • 30. JTS Joins LocationTech • LocationTech offers • project infrastructure • project visibility • stability, governance • Immediate benefits • More team members • Synergy with other LocationTech projects • In-depth legal review for IP (Intellectual Property) cleanliness 30 • Initial Work • Project Application • License Change • LocationTech Incubation • Build Infrastructure • Official Maven Deployment • Long term hopes • Additional Contributors • Funding for JTS 2.0
  • 31. LocationTech Incubation A new home: • Project Website • Mailing List • Build Server • GitHub repo 31 A new License • Eclipse Public License • Eclipse Distribution License (BSD-3 Clause License) Challenges: • Contact assorted contributors (because we did not have a CLA) • changing package names • Opportunity to work together • Maintaining codebase history
  • 33. JTS 1.15 • Packaging • org.locationtech.jts • GitHub repo • https://github.com/locationtech/jts • Releases available on Maven Central (and LT Nexus) • Snapshots Available via LT Nexus • https://repo.locationtech.org/ 33
  • 34. Using JTS 1.15 with Maven JTS 1.14 34 <dependency> <groupId>com.vividsolutions</groupId> <artifactId>jts-core</artifactId> <version>1.14.0</version> </dependency> JTS 1.15.1 <dependency> <groupId>org.locationtech.jts</groupId> <artifactId>jts-core</artifactId> <version>1.15.1</version> </dependency>
  • 35. Using JTS 1.15.2-SNAPSHOT JTS 1.14 35 <dependency> <groupId>com.vividsolutions</groupId> <artifactId>jts-core</artifactId> <version>1.14.0</version> </dependency> JTS 1.15.2-SNAPSHOT <dependency> <groupId>org.locationtech.jts</groupId> <artifactId>jts-core</artifactId> <version>1.15.2-SNAPSHOT</version> </dependency> …. <repositories> <repository> <id>locationtech-snapshots</id> <url>https://repo.locationtech.org/content/groups/snapshots</url> <snapshots> <enabled>true</enabled> </snapshots> </repository> </repositories>
  • 36. Migration to JTS 1.15 • New module structure • jts-core • jts-io-common - GeoJSON • jts-io-ora - Oracle support • jts-io-sde - SDE support • jts-tests - XML Tests & TestRunner • Change package names • org.locationtech.jts.* • Change Maven reference • GroupId change: com.vividsolutions to org.locationtech.jts •
  • 37. JTS 1.15.1 • Support projects migrating • Java Roadmap Compatibility • module names for “jigsaw” packaging • Fixes • Geometry.clone() → Geometry.copy()
  • 39. JTS 1.16 Coming Soon! • How soon? • Release Candidate 1.16.0-RC1 is already available • Scheduled 1.16.0 for September 5th Eclipse release review • Final IP issues being resolved (checking in new icons for the test builder application) • Two week release review 39
  • 40. Dimension: number of ordinates in each coordinate, this total includes any measures. Measure: number of measures included in dimension for each coordinate CoordinateSequence XYZM 40 Coordinate Dimension Measures XY 2 0 XYM 3 1 XYZ 3 0 XYZM 4 1
  • 41. Coordinate XYZM Subclasses for XY, XYM, XYZM representations. The field “z” is deprecated! Please use accessors to access fields. 41
  • 42. Supports Well-Known Text representations for Z, M, ZM forms: LINESTRING (10 10, 20 20, 30 40) LINESTRING Z(10 10 10, 20 20 10, 30 40 10) LINESTRING M(10 10 11, 20 20 11, 30 40 11) LINESTRING ZM(10 10 10 11, 20 20 10 11, 30 40 10 11) WKT XYZM Support Felix has extended WKT reader/writer support to support XYZM. The reader has a flag to support “legacy” JTS representation. 42
  • 43. JTS Topology Suite IO: ● WKT ● WKB ● GeoJSON ● KML ● GML2 ● TWKB (In progress!) 43
  • 44. JTS Community Building uDig Introduction 44
  • 45. JTS Team Code Sprints • 2016 January and November • Sourceforge → GitHub • Build change to maven • Addressed “Intellectual Property” review questions
  • 46. 46
  • 47. JTS Team Code Sprints • 2018 Bon Code Sprint • Java 10 compatibility with “jigsaw” module names • 2017 FOSS4GNA Code Sprint • Helping projects upgrade • GeoTools PostGIS DataStore TWKB • Join us Thursday for Community and workshop day!
  • 48. 48
  • 49. JTS in the ‘Cloud’ uDig Introduction 49
  • 53. Distributed Spatial Goals ● Distribute the storage of vector and raster data ○ Database integration (HBase, Accumulo, C*) ○ File format integration (Arrow, Avro, Parquet) ● Distribute the processing of geospatial data ○ MapReduce integration ○ Spark integration ○ SparkSQL 53
  • 54. JTS + Spark ● In 2015-2016 ○ GeoMesa had RDD level support for JTS Geometry types (as well as GeoTools SimpleFeatures) ● In 2017 ○ GeoMesa integrated with Spark’s SQL query planner ■ Added Spatial UDTs ■ Added Spatial UDFs ■ Adds PostGIS syntax to Spark ■ (Limitation) Tied to GeoMesa ● In 2018 ○ GeoMesa project refactored JTS+Spark module ■ Being used by the RasterFrames project 54
  • 55. JTS + Spark going forward ● The JTS + Spark integration is pretty straightforward; the goal is to have more projects integrate with it. ○ Performance enhancements can shared by all the projects ● Currently, each Spark release introduces changes to the UDT/UDF protected interfaces. ○ This risk is best shared by a community (rather than having each project reimplement and update their individual projects) 55
  • 56. JTS 2.0 Roadmap / Wishlist uDig Introduction 56
  • 57. Algorithm Improvements • Goal: improve some key JTS algorithms • Overlay • Snap-rounding (no more TopologyExceptions!) • Support PreparedGeometry for caching • Fast & robust Clip to Rectangle • Spatial Predicate improvements • Streaming / Lazy evaluation with short-circuiting • User-defined precision model • Less sensitive to valid geometry (e.g. Intersects) • Distance • Support cached PreparedGeometry 57
  • 58. New Algorithms • Concave Hull • Polygon Triangulation • Polygon Cleaning (“MakeValid”) • Split Geometry by Line • Polygon Coverage Simplification 58 Concave Hull Polygon Triangulation
  • 59. New API - JTS 2.0 • Concept for a redesign of JTS • Key Goals • Interface-based Geometry access • Immutable Geometry objects • Geodetic (WGS84) support, with some basic algorithms • Pluggable/discoverable Geometry operation framework • Coordinate extensions (XY, XY+M) • Non-goals • Backwards compatibility • Improving geometry algorithms 59
  • 60. JTS 1.0 Baseline SFQL, GML2 60 Primitives: ● Geometry ● Point ● LineString ● Polygon
  • 61. JTS 1.0 Baseline SFQL, GML2 61 Collections ● GeometryCollection ● MultiPoint ● MultiLineString ● MultiPolygon
  • 62. JTS 2.0 Challenge SQL/MM, GML3, ISO19107 Primitives: ● Point ● Curve ● Surface 62
  • 63. JTS 2.0 Challenge SQL/MM, GML3, ISO19107 Geometry defined using: ● Positions ● Reference System 63
  • 64. JTS 2.0 Challenge JTS Topology Suite Linear Geometry Euclidean operations Spatial4J Curved Geometry Cylindrical operations Spherical operations 64
  • 65. JTS 2.0 Approach 65 SFSQL Geometry Classes Spatial4J Shape Classes SQL/MM Geometry Classes JTS 2.0 Linear Ops Cylindrical Ops Spherical Ops BufferOp BufferOp BufferOp ... ... ...
  • 66. Shape the Future Join JTS Topology Suite
  • 67. Contributing to JTS • Register as a Contributor • Sign the Eclipse Contributor Agreement • https://www.eclipse.org/legal/ECA.php • Develop a patch, making sure to include • Javadoc • Unit Tests - JUnit and/or JTS XML tests • Make a Pull Request on GitHub • Acknowledge code is IP clean by signing-off each Git commit • Make sure the Travis CI validation tests pass See also https://github.com/locationtech/jts/blob/master/CONTRIBUTING.md 67
  • 68. Join Us at the Code Sprint! Thursday, at the code sprint, we will work on two projects 1. Polishing a new TWKB Reader/Writer 2. Upgrading the GeoServer ecosystem to LocationTech JTS 68
  • 70. Project Resources • Source Code repo • https://github.com/locationtech/jts • Issue Tracker • https://github.com/locationtech/jts/issues • Mailing List • https://dev.locationtech.org/mailman/listinfo/jts-dev • Project website • https://locationtech.github.io/jts • Javadoc • https://locationtech.github.io/jts/javadoc 70
  • 71. Thank you from the JTS Team