Geometry Engine, Open Source [MIRROR]
pramsey Revert tests/general/TestFunctionAA.xml to previous version, as it re…
…quires further ports from JTS to support new behaviour
Latest commit 6d71376 Nov 15, 2018
Permalink
Failed to load latest commit information.
capi Fix incorrect error return values in CAPI Oct 27, 2018
cmake Add GenerateSourceGroups macro. Nov 26, 2014
debian Complete Note#1 in the http://wiki.osgeo.org/wiki/GEOS_Provenance_Review Jan 16, 2012
doc Applying patches for Closes #742 Jun 14, 2018
include Update handling of EMPTY geometry typing to match JTS current version… Nov 15, 2018
macros 'make check' passes with autoconf 2.63. Oct 2, 2018
src Update handling of EMPTY geometry typing to match JTS current version… Nov 15, 2018
swig Applying patches for Closes #742 Jun 14, 2018
tests Revert tests/general/TestFunctionAA.xml to previous version, as it re… Nov 15, 2018
tools Flip bessies to cmake build test. Closes #939. Exclude exes from commit. Oct 21, 2018
.drone.yml Update drone yml to 0.5 version Oct 28, 2016
.editorconfig Stackwalker.cpp uses 2 space indent while XMLTester.cpp 2 space Jul 14, 2017
.gitignore Flip bessies to cmake build test. Closes #939. Exclude exes from commit. Oct 21, 2018
.gitlab-ci.yml don't use docker, backer more or less as it was. Works on my gitlab f… Jun 13, 2018
.travis.yml [Travis] Add build jobs with multiple GCC and clang versions Sep 9, 2017
.vimrc Complete implementation of SharedPathsOp Nov 29, 2010
AUTHORS Update Martin's email address Aug 1, 2018
CMakeLists.txt fix shadow problems (Closes #857) Aug 29, 2018
COPYING Fix FSF address in license file (#662) Sep 10, 2013
HOWTO_RELEASE Closes #921 Added new way to change version for cmake build Aug 25, 2018
INSTALL Prepare for RC4 release. Dec 8, 2009
Makefile.am Add .editorconfig to distribution, closes #920 for geos 3.8.0 Aug 27, 2018
NEWS Prepping for geos 3.7.0rc1 release Aug 19, 2018
README.md Update link to php repo Oct 19, 2018
TODO Triangulation API was ported Apr 8, 2017
acsite.m4 git-svn-id: http://svn.osgeo.org/geos/trunk@3855 5242fede-7e19-0410-a… Jul 31, 2013
appveyor.yml removing -V from ctest execution Closes #908 Aug 31, 2018
autogen.bat [CMake] Simplify generation of geos_revision.h Apr 7, 2017
autogen.sh Stop symlinking README.md as README Oct 27, 2016
configure.ac 'make check' passes with autoconf 2.63. Oct 2, 2018
makefile.vc Removed Subversion Id keyword from all text files (#480) Sep 23, 2011
nmake.opt Recognise NMAKE version from VS2017 15.4.0 Oct 11, 2017

README.md

GEOS -- Geometry Engine, Open Source

Project homepage: http://geos.osgeo.org/

Build status

branch / CI Debbie Winnie Dronie Travis CI GitLab CI AppVeyor Bessie Bessie32
master debbie winnie dronie travis gitlab-ci appveyor bessie bessie32
3.7 debbie winnie dronie travis gitlab-ci appveyor
3.6 debbie winnie dronie travis gitlab-ci appveyor

More on: https://trac.osgeo.org/geos#BuildandInstall

Building, testing, installing

Prerequisites

Building GEOS requires a C++11 compiler

Unix

Using Autotools:

./autogen.sh  # in ${srcdir}, if obtained from SVN or GIT
(mkdir obj && cd obj && ../configure)

Using CMake:

(mkdir build && cd build && cmake ..)

Either Autotools or CMake

make
make check
make install # (as root, assuming PREFIX is not writable by the build user)

On a GNU/Linux system, if installed in a system prefix:
  ldconfig # as root

Microsoft Windows

If you use Microsoft Visual C++ (7.1 or later) compiler, you can build GEOS using NMAKE program and provided makefile.vc files.

If you are building from SVN or GIT checkout, first run: autogen.bat Then:

nmake /f makefile.vc MSVC_VER=1400

where 1400 is version number of Visual C++ compiler, here Visual C++ 8.0 from Visual Studio 2005 (supported versions are 1300, 1310, 1400, 1500, 1600, 1700, 1800 and 1900). The bootstrap.bat step is required to generate a couple of header files.

In order to build debug configuration of GEOS, additional flag DEBUG=1 is required:

nmake /f makefile.vc MSVC_VER=1400 DEBUG=1

Client applications

Using the C interface (recommended)

GEOS promises long term stability of C API

The C library uses the C++ interface, but the C library follows normal ABI-change-sensitive versioning, so programs that link only against the C library should work without relinking when GEOS is upgraded.

To compile programs against the C lib (recommended):

CFLAGS += `geos-config --cflags`
LDFLAGS += `geos-config --ldflags` -lgeos_c
#include <geos_c.h>

Example usage:

capi/geostest.c contains basic usage examples.

Using the C++ interface (no stability promise)

Developers who decide to use the C++ interface should be aware GEOS does not promise API or ABI stability of C++ API between releases. Moreover C++ API/ABI breaking changes may not even be announced or include in the NEWS file

The C++ library name will change on every minor release because it is too hard to know if there have been ABI changes.

To compile programs against the C++ lib:

CFLAGS += `geos-config --cflags`
LDFLAGS += `geos-config --ldflags` -lgeos
#include <geos.h>

Basic usage examples can be found in doc/example.cpp.

Scripting language bindings

Ruby bindings are fully supported. To build, use the --enable-ruby option when configuring:

./configure .. --enable-ruby

Since version 3.6.0 PHP bindings are not included in the core library anymore but available as a separate project:

Since version 3.0, the Python bindings are unsupported. Recommended options:

  1. Become or recruit a new maintainer.
  2. Use Shapely with Python versions 2.4 or greater.
  3. Simply call functions from libgeos_c via Python ctypes.

Documentation

To build Doxygen documentation:

cd doc
make doxygen-html