Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Frontend GIS
  3. JSTS

JSTS

NOASSERTIONJavaScript2.12.1

A JavaScript library for processing and analyzing 2D spatial geometries, ported from the Java Topology Suite (JTS).

Visit WebsiteGitHubGitHub
1.6k stars239 forks0 contributors

What is JSTS?

JSTS is a JavaScript library that provides spatial predicates and functions for processing 2D geometries, conforming to the Open Geospatial Consortium's Simple Features Specification. It is a direct port of the Java Topology Suite (JTS), enabling complex geometric operations like buffering, intersection, and union in web and Node.js applications.

Target Audience

Developers building web mapping applications, GIS tools, or any software requiring advanced 2D geometric analysis and processing in JavaScript environments.

Value Proposition

JSTS offers a comprehensive, standards-compliant geometry library with a proven API from JTS, eliminating the need for server-side geometric processing and enabling full client-side spatial analysis.

Overview

JavaScript Topology Suite

Use Cases

Best For

  • Performing client-side spatial analysis in web mapping applications
  • Processing and validating GeoJSON geometries according to OGC standards
  • Implementing geometric operations like buffering, intersection, and simplification in JavaScript
  • Building GIS tools that require robust topology functions without Java dependencies
  • Creating custom spatial queries and predicates for 2D data
  • Porting JTS-based Java applications to JavaScript/Node.js environments

Not Ideal For

  • Projects requiring 3D geometric operations or volumetric spatial analysis
  • Teams seeking a lightweight, JavaScript-native geometry library with modern syntax and shortcuts
  • Applications with real-time performance constraints on large datasets where precision handling adds overhead

Pros & Cons

Pros

Standards Compliance

Conforms to the OGC Simple Features Specification, ensuring interoperability with GIS systems and support for formats like WKT and GeoJSON, as highlighted in the README.

Cross-Platform Versatility

Works in browsers via ES5/ES6 builds and in Node.js as ES modules, making it suitable for both web mapping and server-side applications without Java dependencies.

Robust Geometry Processing

Provides comprehensive spatial predicates and operations like buffering and union, directly ported from the battle-tested JTS library, enabling complex 2D analysis.

Proven API Design

Preserves the JTS API, reducing the learning curve for developers familiar with JTS and offering a reliable, community-vetted interface for geometric operations.

Cons

API Translation Quirks

Java overloading issues, such as in GeometryFactory.createMultiPoint, can cause unexpected behavior, and shortcut methods like .buffer are missing unless using the monkey-patched ES5 bundle.

Precision Handling Complexities

TopologyExceptions may be thrown due to floating-point precision issues, requiring additional steps like GeometryPrecisionReducer and strict input validation, which adds setup complexity.

Bundler Dependency

Using ES6 modules requires a bundler like Rollup for most environments, complicating setup compared to simple script tag inclusion, as noted in the README's caveats.

Frequently Asked Questions

Quick Stats

Stars1,562
Forks239
Contributors0
Open Issues8
Last commit1 year ago
CreatedSince 2011

Tags

#web-mapping#geometry-processing#geojson#topology#geospatial#javascript-library#spatial-analysis#openlayers

Built With

E
ECMAScript
E
ES6 Modules
J
JavaScript
R
Rollup

Links & Resources

Website

Included in

Frontend GIS675
Auto-fetched 9 hours ago

Related Projects

Turf.jsTurf.js

A modular geospatial engine written in JavaScript and TypeScript

Stars10,473
Forks1,016
Last commit17 hours ago
topoJSONtopoJSON

An extension of GeoJSON that encodes topology! 🌐

Stars4,903
Forks684
Last commit1 year ago
geolibgeolib

Zero dependency library to provide some basic geo functions

Stars4,277
Forks335
Last commit5 months ago
rbushrbush

RBush — a high-performance JavaScript R-tree-based 2D spatial index for points and rectangles

Stars2,773
Forks254
Last commit5 days ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub