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.

Feature List

PostGIS provides:

PostGIS follows the Open Geospatial Consortium’sSimple 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.

Extract Transform Load (ETL) Tools used with PostGIS

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 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.

Open Source Desktop Editing/Viewing Tools

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.

uDig - Java-based many geospatial formats including some PostGIS types and several other spatial databases (Oracle, SQL Server, ArcSDE). Main focus is conforming to OpenGIS standards and nice cartography.

gvSig - Java based similar in functionality to QGIS.

TileMill - Most useful for building mapping tile images. Inspect, order, and layer your sources to build complex maps and export them as MBTiles, PDF, SVG. Builds on Mapnik. Uses CartoCss for styling. Can export CartoCSS stylesheets to Mapnik XML for server-side building tiles or with Mapnik directly. Refer to TileMill working with PostGIS for details about working with PostGIS data.

Open Source Mapping Servers

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

PostGIS Related PostgreSQL Extensions

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.

ogrfdw A PostgreSQL foreign data wrapper built on GDAL/OGR. Allows reading other spatial and non-spatial datasources as tables in PostgreSQL. Vector data gets translated to PostGIS geometry type

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.