Fast Hausdorff Distance and isFullyWithinDistance in JTS
My previous blog post reviewed the concept of the Hausdorff distance (which more descriptively could be called farthest distance.) Despite its usefulness in matching geometric data, there are...
View ArticleThe Hausdorff Distance Challenge
The Hausdorff Distanceis a useful spatial function which can appear slightly mysterious. Partly this is due to the name. It honours Felix Hausdorff, one of the founding fathers of topology, and a...
View ArticleFast detection of narrow polygons with JTS
Some spatial use cases require identifying "narrow" or "skinny" polygons. A classic example is the process of cleaning polygonal coverages. Coverages (even clean ones) may contain narrow gaps between...
View ArticleCoverage Cleaning in JTS
The JTS Topology Suite has been rolling out the capability to manage polygonal coverages. It supports modelling polygonal coverages as arrays of discrete polygonal geometries. This is simple to work...
View ArticleRelateNG Performance
A previous post introduced a new algorithm in the JTS Topology Suite called RelateNG. It computes topological relationships between geometries using the Dimensionally-Extended 9 Intersection Model...
View ArticleJTS Topological Relationships - the Next Generation
The most fundamental and widely-used operations in the JTS Topology Suite are the ones that evaluate topological relationships between geometries. JTS implements the Dimensionally-Extended 9...
View ArticleSimplifying Polygonal Coverages with JTS
A new capability for the JTS Topology Suite is operations to process Simple Polygonal Coverages. A Simple Polygon Coverage is a set of edge-matched, non-overlapping polygonal geometries (which may be...
View ArticleFast Coverage Union in JTS
The next operation delivered in the build-out of Simple Polygonal Coverages in the JTS Topology Suite is Coverage Union. This is simply the topological union of a set of polygons in a polygonal...
View ArticleAlpha Shapes in JTS
Recently JTS gained the ability to compute Concave Hulls of point sets. The algorithm used is based the Chi-shapes approach described by Duckham et al. It works by eroding border triangles from the...
View ArticleRelational Properties of DE-9IM spatial predicates
There is an elegant mathematical theory of binary relations. Homogeneous relations are an important subclass of binary relations in which both domains are the same. A homogeneous relation R is a...
View ArticleValidating Polygonal Coverages in JTS
The previous post discussed polygonal coverages and outlined the plan to support them in the JTS Topology Suite. This post presents the first step of the plan: algorithms to validate polygonal...
View ArticlePolygonal Coverages and Operations in JTS
An important concept in spatial data modelling is that of a coverage. A coverage models a two-dimensional region in which every point has a value out of a range (which may be defined over one or a set...
View ArticleJTS 1.19 Released
JTS 1.19 has just been released! There is a great deal of new, improved and fixed functionality in this release - see the GitHub release page or the Version History for full details.This blog has...
View ArticleAlgorithm for Concave Hull of Polygons
The previous post introduced the new ConcaveHullOfPolygons class in the JTS Topology Suite. This allows computing a concave hull which is constrained by a set of polygonal geometries. This supports...
View ArticleConcave Hulls of Polygons
A common spatial need is to compute a polygon which contains another set of polygons. There are numerous use cases for this; for example:Generalizing groups of building outlines (questions: 1, 2)...
View ArticleUsing Outer Hulls for Smoothing Vectorized Polygons
The electrons were hardly dry on the JTS Outer and Inner Polygon Hull post when another interesting use case popped up on GIS StackExchange. The question was how to remove aliasing artifacts (AKA...
View ArticleOuter and Inner Concave Polygon Hulls in JTS
The JTS Topology Suite recently gained the ability to compute concave hulls. The Concave Hull algorithm computes a polygon enclosing a set of points using a parameter to determine the "tightness"....
View ArticleCubic Bezier Curves in JTS
As the title of this blog indicates, I'm a fan of linearity. But sometimes a little non-linearity makes things more interesting. A convenient way to generate non-linear curved lines is to use Bezier...
View ArticleConcave Hulls in JTS
A common spatial need is to find a polygon that accurately represents a set of points. The convex hull of the points often does not provide this, since it can enclose large areas which contain no...
View ArticleJTS Offset Curves
Offset curves (also known as parallel curves) are an oft-requested feature in JTS. They are a natural extension to the concept of buffering, and are useful for things like placing labels along rivers....
View Article