[OSGeo-Discuss] Generic Geometry Library (ggl)

Barend Gehrels Barend.Gehrels at geodan.nl
Tue Feb 17 05:11:33 PST 2009

Dear list,

It is a pleasure for us to announce the Generic Geometry Library (ggl).

It is an Open Source library, written in C++. The library is template 
based, and generic. With generic we mean that the algorithms work not 
only with the provided geometries, but also with geometries that are 
defined by the library user, such as legacy points, custom linestrings, etc.

Because of this the library is following OGC conventions loosely, not 
strictly. All algorithms are implemented as standalone functions, 
instead of methods on geometries. Nevertheless, OGC conventions, names 
and meanings are followed as much as possible. Not all OGC algorithms 
are already implemented. On the other hand the library offers other 
things such as distance calculations over the globe.

So it is a library modelled as the C++ std:: library and as most Boost 
libraries are. The library is proposed to Boost (Boost is a well-known 
peer reviewed C++ Library Collection). It is following the Boost 
Software License, which is a permissive Open Source License.

The library is accessible via SVN at Boost: 
https://svn.boost.org/svn/boost/sandbox/ggl but can also be downloaded 
from http://geometrylibrary.geodan.nl. Much documentation and many 
examples can be found there. Note for example the Custom Linestring 
example showing things which cannot so easily be done with non-template 

The library contains projections from PROJ4, converted to C++ . We first 
wanted to include PROJ4 as an example, like we did with ShapeLib and GD. 
However, we concluded that they fit better being implemented as C++ 
templates, so they are automatically converted (it is reproducable). 
Like there is a PROJ4 Javascript branch, this might be considered as a 
PROJ4 C++ branch. We like your opinion about this.

The library is in "preview 4", it has been submitted as preview to Boost 
three times, last year. Based on many comments the library has been 
enhanced. We think it is now in a proper shape to be used, and that 
algorithms can now be added without that everything is restructured again.

The performance of the library is compared with other C++ OS GIS 
libraries and we measured that the library seems to be much faster than 
most of them, caused by the template approach.

We welcome any type of comment, opinion or cooperation.

Barend Gehrels, Geodan, Amsterdam, the Netherlands
Bruno Lalande, Paris

More information about the Discuss mailing list