PostGIS adds extra types (geometry, geography, raster and others) to the PostgreSQL database. It also adds functions, operators, and index enhancements that apply to these spatial types. These additonal functions, operators, index bindings and types augment the power of the core PostgreSQL DBMS, making it a fast, feature-plenty, and robust spatial database management system.
PostGIS follows the Open Geospatial Consortium’s “Simple Features for SQL Specification ” and has been certified as compliant with the “Types and Functions” profile. PostGIS is open source software, released under the GNU General Public License.
A key step for using a spatial database or any database is loading and exporting data. There are several tools specifically designed for this. Most commonly used with PostGIS are listed below.
PostGIS packaged loader/dumper commandlines - shp2pgsql, pgsql2shp, raster2pgsql
PostGIS packaged loader/dumper GUI - shp2pgsql-gui (not packaged with all distributions - packaged with Windows stackbuilder and OpenGeo suite distributions)
Geospatial Data Abstraction Library (GDAL) - commandline tools and library set. It is a swiss army knife for working with spatial data. The various switches are hard to master, but well worth the effort. It is also incorporated in many proprietary and open source tools via it’s library bindings.
GeoKettle - Open source ETL workbench supports various formats including PostGIS , MySQL, Oracle, DB2 and SQL Server. Comes in community and commercial. Commercial includes support and maintenance.
Safe FME - Proprietary ETL workbench supporting most formats under the sun (including formats supported by GeoKettle + more).
PostGIS enjoys wide support from various third party open source and proprietary tools. The list below are common Open Source ones used in conjunction with PostGIS. The proprietary support list is huge and too many to itemize.
The tools in this desktop arena support most platforms (Unix/Linux, Windows, MacOS)
QGIS QT based supports many geospatial formats including PostGIS types and a favorite for PostGIS newbies and python developers. Most popular of desktop tools used with PostGIS with a nice python extension model.
OpenJump Java-based many geospatial formats including some PostGIS types. It’s a favorite of spatial database analysts.
GRASS GIS - Often shipped with QGIS used for geospatial data management and analysis, image processing, graphics/map production, spatial modeling, and visualization.
gvSig - Java based similar in functionality to QGIS.
Most commonly used with PostGIS are listed below. Most also conform to OpenGIS Consortium (OGC) mapping standards. Below are some acronyms for standards supported:
Mapserver C-Based The first mapping server to support PostGIS and still one of the most popular. Best suited for developers who are not afraid of editing configuration files and don’t need a gooey hand-holding configuration editor. Can be used as a CGI or a plugin to various languages Python, PHP, .NET. Strong OGC WMS and WFS support. WFS-T support for PostGIS provided via TinyOWS .
GeoServer Java-based Similar functionality to Mapserver, with a web gui interface for creating map services. Caters more to newbies and Enterprise GIS folks used to working with things like ArcGIS Server. Supports OGC WMS, WFS, WFS-T
Deegree Java-based geospatial data management, including data access, visualization, discovery and security. Supports more OGC standards than most other mapping servers (WMS,WFS,WCS,WPS,WMTS).
QGIS Server Companion to QGIS desktop allows for publishing QGIS workspaces as web mapping services.
MapGuide Open Source web-based platform that enables users to quickly develop and deploy web mapping applications and geospatial web services. Comes with a Map Author GUI and support [WMS,WFS]. Data sources: any supported by AutoCad FDP (ESRI SHP, PostGIS, SQL Server, MySQL, ArcSDE), DWF, GDAL supported formats to name a few. Checkout their Gallery
pgRouting Extends PostGIS to support geospatial routing such as driving distance, shortest path distance, and traveling salesman which can take into consideration various costs such as speed and turn restrictions.
pgpointcloud A PostgreSQL extension and loader for storing Point Cloud data in PostgreSQL. Also includes extension for casting between point cloud data type and PostGIS geometry.