|Version 263 (modified by 16 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)
- 2021/02/10 geos-3.9.1.tar.bz2
- 2021/04/10 geos-3.8.2.tar.bz2
- 2019/10/04 geos-3.7.3.tar.bz2
- 2020/12/11 geos-3.6.5.tar.bz2
- 2019/10/04 geos-3.5.2.tar.bz2
- Older versions...
- Nightly snapshot: http://geos.osgeo.org/snapshots/
- Live development: code repository
- PHP bindings: http://git.osgeo.org/gitea/geos/php-geos
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
When submitting bugs caused by particular geometries (TopologyExceptions, for example), you must submit the geometries that cause the failure, preferably in hex-encoded WKB, so that we can re-produce the failure cases.
- [geos-devel] Subscribe/Unsubscribe | List Archive
- [geos-commits] Subscribe/Unsubscribe | List Archive
GEOS related chat rooms on the Matrix network:
- See CodeRepository
The GEOS project is run by a Project Steering Committee made up of developers and contributors to the project and is a project of OSGeo. Major project decisions are made via a Request for Comments process, where proposals are first documented and then voted on by the steering committee.
- RFC-1 - Project Steering Committee
- RFC-2 - Committer Guidelines
- RFC-3 - Thread Safe CAPI
- RFC-4 - Code Formatting Style
- RFC-5 - C++11 Compilation Mode
- RFC-6 - Require explicit configure to use the C++ API
- RFC-7 - Use CMake for build system
- RFC-8 - Improve CoordinateSequence API
- RFC-9 - Restore C++ API as public API (revert RFC-9)
Documentation and Other Information
- GEOS API -- Doxygen-generate API documentation
- Change Log -- Changes and comments from the repository
- Microsoft Visual Studio visualizers
- Applications -- Applications using GEOS
- CodingPatterns Coding Patterns
- GSoC -- Google Summer of Code Ideas (GSOC)