This is a mirror. Primary on github.com/libgeos/geos https://libgeos.org
 
 
 
 
 
Go to file
Mike Taves 1d587ff39d
continuous-integration/drone/push Build is passing Details
GEOSClipByRect: Fix case with POINT EMPTY, add more tests (#913)
2023-05-31 11:00:01 +12:00
.github/workflows Bump GHA versions 2023-04-28 10:44:51 -07:00
capi Bump versions for next release 2022-06-08 13:00:16 -07:00
cmake Add GenerateSourceGroups macro. 2014-11-26 14:58:35 +00:00
debian Complete Note#1 in the http://wiki.osgeo.org/wiki/GEOS_Provenance_Review to get out of incubation. 2012-01-16 18:00:20 +00:00
doc Applying patches for Closes #742 2018-06-14 10:03:22 -05:00
include Bump versions for next release 2022-06-08 13:00:16 -07:00
macros 'make check' passes with autoconf 2.63. 2018-10-02 14:07:26 -04:00
src GEOSClipByRect: Fix case with POINT EMPTY, add more tests (#913) 2023-05-31 11:00:01 +12:00
swig Applying patches for Closes #742 2018-06-14 10:03:22 -05:00
tests GEOSClipByRect: Fix case with POINT EMPTY, add more tests (#913) 2023-05-31 11:00:01 +12:00
tools Take out failing test on FreeBSD/macOS Clang. References #894 2018-09-03 02:19:55 -04:00
.drone-1.0.yml Switch to docker.osgeo.org 2020-04-20 14:21:17 -04:00
.drone.yml Update drone yml to 0.5 version 2016-10-28 15:18:10 +00:00
.editorconfig Stackwalker.cpp uses 2 space indent while XMLTester.cpp 2 space 2017-07-14 15:52:06 +02:00
.gitignore Add platform.h.disabled to git ignore so doesn't accidentally get committed again 2018-09-03 02:26:23 -04:00
.gitlab-ci.yml don't use docker, backer more or less as it was. Works on my gitlab fork. 2018-06-13 13:48:50 -04:00
.travis.yml [Travis] Add build jobs with multiple GCC and clang versions 2017-09-10 00:40:15 +02:00
.vimrc Complete implementation of SharedPathsOp 2010-11-29 09:33:24 +00:00
AUTHORS Update Martin's email address 2018-08-01 19:13:27 -04:00
CMakeLists.txt Bump versions for next release 2022-06-08 13:00:16 -07:00
COPYING Fix FSF address in license file (#662) 2013-09-10 07:06:18 +00:00
HOWTO_RELEASE Version setting for release 2019-10-04 21:41:34 +00:00
INSTALL Prepare for RC4 release. 2009-12-08 22:47:47 +00:00
Makefile.am Add .editorconfig to distribution, references #920 for geos 3.7.0 2018-08-23 14:50:17 -04:00
NEWS GEOSClipByRect: Fix case with POINT EMPTY, add more tests (#913) 2023-05-31 11:00:01 +12:00
README.md Update some references to official code and web site 2021-11-10 14:45:09 -08:00
TODO Triangulation API was ported 2017-04-08 18:14:51 +02:00
acsite.m4 git-svn-id: http://svn.osgeo.org/geos/trunk@3855 5242fede-7e19-0410-aef8-94bd7d2200fb 2013-07-31 14:13:07 +00:00
appveyor.yml [AppVeyor] Fix build environment for VS2017 and NMAKE 2017-09-10 20:56:57 +02:00
autogen.bat [CMake] Simplify generation of geos_revision.h 2017-04-07 14:12:12 +02:00
autogen.sh Stop symlinking README.md as README 2016-10-27 14:13:56 +00:00
configure.ac Bump versions for next release 2022-06-08 13:00:16 -07:00
makefile.vc Removed Subversion Id keyword from all text files (#480) 2011-09-23 01:03:54 +00:00
nmake.opt Recognise NMAKE version from VS2017 15.4.0 2017-10-11 17:22:02 +01:00

README.md

GEOS -- Geometry Engine, Open Source

Project homepage: https://libgeos.org/

Build Status

CI Status
GitHub github
Azure Build Status
GitLab gitlab-ci
Debbie debbie
Winnie winnie
Dronie dronie

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

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.7.0 PHP bindings are not included in the core library anymore but available as a separate project:

https://git.osgeo.org/gogs/geos/php-geos

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