GEOS - Geometry Engine, Open Source
GEOS (Geometry Engine - Open Source) is a C++ port of the Java Topology Suite (JTS). As such, 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 topology 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 and C++ API (C API gives long term ABI stability)
- Thread safe (using the reentrant API)
- 2016/12/24 geos-3.6.1.tar.bz2 (Changes) - NOTE: PHP bindings not included (see below for them)
- 2016/10/25 geos-3.5.1.tar.bz2 (Changes)
- 2016/10/27 geos-3.4.3.tar.bz2 (Changes)
- Older versions...
- Nightly snapshot: http://geos.osgeo.org/snapshots/
- Live development: code repository
- PHP bindings: http://git.osgeo.org/gogs/geos/php-geos
Build and Install
- Building on Unix with Autotools
- Building on Unix with CMake
- Building on MINGW64 with CMake
- Building on Windows with NMake
- Building on Windows with CMake
- 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 channels on FreeNode IRC 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
Documentation and Other Information
- GEOS API -- Doxygen-generate API documentation
- Buildbot -- Farm used to run regular builds and tests
- SVN Change Log -- Changes and comments from SVN
- Microsoft Visual Studio visualizers
- Applications -- Applications using GEOS
- GSoC -- Google Summer of Code Ideas (GSOC)