[OSGeo-Announce] PostGIS 1.4.0 Released

July 24, 2009

The PostGIS development team has, after a long period of meditation
and soul searching, released version 1.4.0 of the spatial data
extension for PostgreSQL.

   http://postgis.refractions.net/download/postgis-1.4.0.tar.gz

This new version of PostGIS includes substantial performance
enhancements, more detailed reference documentation, new output
formats (GeoJSON) and an improved internal testing system. PostGIS 1.4
also supports the recent PostgreSQL 8.4 release.

Thanks to everyone who helped by testing during the release candidate process!

Your PostGIS Team

-- Detailed PostGIS 1.4 Release Notes --

    - As of the 1.4 release series, the public API of PostGIS will not
          change during minor releases.

  - Compatibility
    - The versions below are the *minimum* requirements for PostGIS 1.4
    - PostgreSQL 8.2 and higher on all platforms
    - GEOS 3.0 and higher only
    - PROJ4 4.5 and higher only

  - New Features
    - ST_Union() uses high-speed cascaded union when compiled against
          GEOS 3.1+ (Paul Ramsey)
    - ST_ContainsProperly() requires GEOS 3.1+
    - ST_Intersects(), ST_Contains(), ST_Within() use high-speed cached
          prepared geometry against GEOS 3.1+ (Paul Ramsey)
    - Vastly improved documentation and reference manual
          (Regina Obe & Kevin Neufeld)
    - Figures and diagram examples in the reference manual (Kevin Neufeld)
    - ST_IsValidReason() returns readable explanations for validity
          failures (Paul Ramsey)
    - ST_GeoHash() returns a geohash.org signature for geometries
          (Paul Ramsey)
    - GTK+ multi-platform GUI for shape file loading (Paul Ramsey)
    - ST_LineCrossingDirection() returns crossing directions (Paul Ramsey)
    - ST_LocateBetweenElevations() returns sub-string based on Z-ordinate.
          (Paul Ramsey)
    - Geometry parser returns explicit error message about location of
          syntax errors (Mark Cave-Ayland)
    - ST_AsGeoJSON() return JSON formatted
    - Populate_Geometry_Columns() -- automatically add records to
          geometry_columns for TABLES and VIEWS (Kevin Neufeld)
    - ST_MinimumBoundingCircle() -- returns the smallest circle
          polygon that can encompass a geometry (Bruce Rindahl)

  - Enhancements
    - Core geometry system moved into independent library, liblwgeom.
          (Mark Cave-Ayland)
    - New build system uses PostgreSQL "pgxs" build bootstrapper.
          (Mark Cave-Ayland)
    - Debugging framework formalized and simplified. (Mark Cave-Ayland)
    - All build-time #defines generated at configure time and placed in
          headers for easier cross-platform support (Mark Cave-Ayland)
    - Logging framework formalized and simplified (Mark Cave-Ayland)
    - Expanded and more stable support for CIRCULARSTRING,
          COMPOUNDCURVE and CURVEPOLYGON, better parsing,
          wider support in functions (Mark Leslie & Mark Cave-Ayland)
    - Improved support for OpenSolaris builds (Paul Ramsey)
    - Improved support for MSVC builds (Mateusz Loskot)
    - Updated KML support (Olivier Courtin)
    - Unit testing framework for liblwgeom (Paul Ramsey)
    - New testing framework to comprehensively exercise every
      PostGIS function (Regine Obe)
    - Performance improvements to all geometry aggregate
      functions (Paul Ramsey)
    - Support for the upcoming PostgreSQL 8.4 (Mark Cave-Ayland,
      Talha Bin Rizwan)
    - Shp2pgsql and pgsql2shp re-worked to depend on
      the common parsing/unparsing code in liblwgeom (Mark Cave-Ayland)
    - Use of PDF DbLatex to build PDF docs and preliminary
      instructions for build (Jean David Techer)
    - Automated User documentation build (PDF and HTML) and
      Developer Doxygen Documentation (Kevin Neufeld)
    - Automated build of document images using ImageMagick
      from WKT geometry text files (Kevin Neufeld)
    - More attractive CSS for HTML documentation
      (Dane Springmeyer)
  - Bug fixes
    - http://trac.osgeo.org/postgis/query?status=closed&milestone=postgis+1.4.0&order=priority