JSTS is an ECMAScript library of spatial predicates and functions for processing geometry conforming to the Simple Features Specification for SQL published by the Open Geospatial Consortium. JSTS is also a port of the well established Java library JTS.
The primary goal of the project is to provide web mapping applications with a complete library for processing and analyzing simple geometries but JSTS can also be used as a free standing geometry library.
JSTS was made using automatic translation of the original JTS Java source via AST to AST transformation preserving the JTS API, except for the I/O related classes which has been selectively and manually ported with support for WKT, GeoJSON and OpenLayers.
A Google group is available for discussions.
Basic functionality together with OpenLayers is demonstrated here.
Browser or Node.js use
Including the above build as a script will import a global object
jsts exposing similar public API as
org.locationtech.jts in the JTS API.
For Node.js, install using
npm install jsts after which
require('jsts') will import an object with the same properties as
jsts in the browser build.
I/O related classes in JTS had to be manually ported. From the original formats WKT and GeoJSON are supported. A direct reader/writer for OpenLayers 3 geometries exist. See the API documentation for these specific classes.
ES6 modules use
As of version 1.4.0 it's possible to depend on the source modules directly using the NPM package. For most environments it will require a bundler like Rollup to work. topolis serves as an example project depending on JSTS in this way.
GeometryFactorywhich only works with
- In some cases you might get a
TopologyExceptionthrown as an
Error. This is expected if a calculation fails due to precision issues. To resolve this issue try reducing precision in the input and at the same time make sure the input is valid as defined by the OGC Simple Features specification. To reduce precision GeometryPrecisionReducer can be used.