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.
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
- 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.
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)