Refractions Releases PostGIS 1.0.0

Refractions Research today announced the release of PostGIS 1.0.0, the latest open source GIS extensions for the PostgreSQL database system.

The 1.0.0 release includes substantial new functionality and performance improvements over previous releases, with a smaller on-disk storage format, new functions for analysis and data manipulation, and much tighter integration with the PostgreSQL core database system.

Smaller on-disk storage has two benefits: first, large data sets now take up less disk space, so resource requirements are lower; second, smaller objects can be read off of disks faster, so performance increases. More data can be held in operating system cache space, more index information can also be cached. The new storage formats are 30-200% more efficient than the original formats, depending on the type of data.

New functions added for 1.0 include geometry constructor functions, so it is possible to create spatial objects with direct function calls, instead of composing string representations. More advanced geometry functions have also been added, such as polygonization of linestring sets, and enforcement of right-hand-rule for polygons. Line and polygon vertex order reversal has also been added. Finally, an AsGML() function that creates GML primitives for inclusion into GML feature collections has been added, to reduce string manipulation overhead for client programs.

The integration with PostgreSQL for version 1.0.0 is much improved, making use of new functionality in the PostgreSQL 8.0 series. With the 8.0/1.0.0 combination, all statistics gathering is now handled inside the standard PostgreSQL VACUUM system, as with all other PostgreSQL data types. This means utilities like pg_autovacuum will now automatically maintain PostGIS data as well as other data. In addition, selectivity estimates have been added for a larger class of queries (joins and subselects) so combined spatial and non-spatial queries will be planned and run more efficiently, improving performance for complex queries.