|Version 280 (modified by 12 months ago) ( diff ),|
GEOS - Geometry Engine, Open Source
GEOS (Geometry Engine - Open Source) is a C++ port of the JTS Topology Suite (JTS). It aims to contain the complete functionality of JTS in C++. This includes all the OpenGIS Simple Features for SQL spatial predicate functions and spatial operators, as well as specific JTS enhanced functions. GEOS provides spatial functionality to many other projects and products.
GEOS is a project of OSGeo.
GEOS is available under the terms of GNU Lesser General Public License (LGPL).
Spatial Model and Functions
- Geometries: Point, LineString, Polygon, MultiPoint, MultiLineString, MultiPolygon, GeometryCollection
- Predicates: Intersects, Touches, Disjoint, Crosses, Within, Contains, Overlaps, Equals, Covers
- Operations: Union, Distance, Intersection, Symmetric Difference, Convex Hull, Envelope, Buffer, Simplify, Polygon Assembly, Valid, Area, Length,
- Prepared geometries (pre-spatially indexed)
- STR spatial index
- OGC Well Known Text (WKT) and Well Known Binary (WKB) encoders and decoders.
- C++ API (will likely change across versions)
- C API (provides long-term ABI stability)
- Thread safe (using the reentrant API)
Build and Install
- Building on Unix with CMake
- Building on MINGW64 with CMake
- Building on Windows with CMake Latest instructions for VS 2019 in repo
No longer supported
- Windows binaries:
- Linux distributions provide packages with GEOS: Debian, Ubuntu, Fedora, Gentoo, openSUSE and other
- PostgreSQL RPM Repository has up2date GEOS (and other GIS related components) packages.
- Binaries /Packages with GEOS for other Unix systems:
- GEOS Framework for Mac OS X 10.5+ provided by William Kyngesburye. Big thanks to William!
- Fink for Mac OS X
- MacPorts for Mac OS X
- Homebrew package manager for Mac OS X
- GEOS ports for FreeBSD
- GEOS pkgsrc packages for NetBSD and other UNIX-like systems including including Solaris, OpenBSD, FreeBSD, OpenBSD, Linux, Darwin and others.
- GEOS binaries from Conan.io - a C/C++ Package Manager
Report bugs using GitHub issues.
When submitting bugs caused by particular geometries, you must submit the geometries that cause the failure, preferably in hex-encoded WKB, so that we can re-produce the failure cases.
Documentation and Other Information
- GEOS API -- Doxygen-generate API documentation
- Microsoft Visual Studio visualizers
- Applications -- Applications using GEOS
- CodingPatterns Coding Patterns
- GSoC -- Google Summer of Code Ideas (GSOC)