This weekend, PostGIS 2.1.0 was released. As usual, the change log runs many pages: lots of bugs have been fixed, features added, and corner cases filled in.
(Side note: As PostGIS becomes more and more feature complete and bug free, it’s interesting as a developer to see how much time ends up being spent on weird cases that only occur for one user in a thousand, or one feature in a million. It’s like Jevons paradox applied to software development.)
You can read the complete list of changes in the news file, but here’s a highlight reel:
- More terrain analysis functions. In addition so slope and aspect calculations, there are now also roughness, Topographic Position Index and Terrain Ruggedness Index.
- Tiling large rasters into small rasters with ST_Tile. This is useful for analyses that work best on large rasters, but are served out as results best as small tiles. The raster opposite of ST_Tile is ST_Union, which has received performance improvements in 2.1
- New geocoding engine. The TIGER geocoder that has shipped with PostGIS for several years has been enhanced using the address normalization engine from PACG. As a result, batch geocoding is an order of magnitude faster.
- New selectivity calculations, supporting N-D and geographic indexes, as well as improved join selectivity calculations. Will provide generally improved query planning for complex SQL.
- Performance enhancement by up to 20x for ST_Distance calculations on geography.
- Delaunay triangulation inside the database with ST_DelaunayTriangles.
- Performance and functionality enhancements to ST_MapAlgebra, allowing even more crazy in-database raster analytics.
In general, the raster sub-system has received a huge number of both new functions and improved functionality in existing functions. Performance for important operations has been improved with native C implementations. Users of the vector sub-system mostly see performance improvements, with a new corner case feature additions (like ST_Distance support for arc-based geometries).