PostGIS is the spatial database of choice. While it already provides a wide range of features, PostGIS can still be extended to support new functions and capabilities for spatial data processing.

This training session will give you a clear vision on the low-level architecture of PostgreSQL, PostGIS and GEOS, and allow you to implement extensions for this spatial RDBMS and create your own PostgreSQL plugins.

This session is conducted by a PostGIS core developer.


The course will give you the following skills :

  • Know the low-level PostGIS and GEOS architecture
  • Be able to read and understand current PostGIS source code
  • Be able to enhance current code to answer specific needs


This program is indicative. It could be adapted to your specific needs.

  • Low-level PostGIS and GEOS architecture

    • liblwgeom library functions
    • Native C PostGIS functions
    • Main .h headers
    • Pl/PgSQL functions
    • GEOS API
  • PostgreSQL API

    • PostgreSQL C basic extension
    • Main PostgreSQL API functions and macros
    • SPI API (data access via SQL from C code )
    • Set Returning Functions (SETOF)
  • Geometries internal representations

    • OGC SFS and ISO SQL/MM representations
    • EWKT, EWKB PostGIS parsers
    • ptarray internal structure
    • Geography type
    • Curve types
    • Geometry representations in GEOS
  • GEOS

    • GEOS internal architecture
    • C API and functions available from PostGIS
    • GEOS internal geometry representation
    • Main functions overview
  • Compilation scripts

    • PGXS
    • autotools and Makefile
  • Main functions and links with low-level code

    • Euclidian geometries functions
    • Spheroid functions
    • Import/Export functions
    • Topological functions
  • Unit tests

    • Cunit
    • PostGIS unit tests
  • Documentation

    • DocBook
    • PDF and XHTML generation
  • Links with Proj4 library and reprojection functions

  • Low level spatial indexing

  • Developers community

    • PostGIS and GEOS Coding conventions
    • Write and send a patch
    • Development mailing lists



3 days


Good ANSI C level
Mastering a Unix-like environment

The next courses (Lyon or Paris):

Contact us for on-site trainings at your office (dates are flexible to your needs).

You want to participate in this training ?

Please give us the details below if you can:

* Training

Place of training, Number of people involved, Initial level of participants, Time constraints, Specific expectations

* Contact details

Organization, Address, Contact, Email, Intracommunity VAT