Fact-checked by Grok 2 weeks ago

PostGIS

PostGIS is an open-source spatial database extender for the object-relational database management system (DBMS), enabling the storage, indexing, and querying of geospatial data such as points, lines, polygons, and raster images using SQL. It conforms to the Open Geospatial Consortium (OGC) for SQL (SFSQL) specification and SQL Multimedia (SQL/MM) standards, providing functions for , , and coordinate transformations. Developed initially by Refractions Research Inc. as a to address limitations in PostgreSQL's native geometric types, PostGIS was first released on May 31, 2001, with version 0.1, which included basic spatial objects, GiST-based indexes, and a handful of functions like length and area calculations. Early versions rapidly evolved to integrate libraries such as GEOS for geometric operations (achieving full OGC compliance by version 0.8 in 2003) and PROJ for projections, while version 1.0 in 2005 introduced a lightweight binary geometry representation for improved performance. Now maintained as a of the (OSGeo), PostGIS supports advanced features including 3D geometries, raster support via the PostGIS Raster extension, and integration with tools like GDAL for data import/export, making it a foundational component for GIS applications, , and . As of September 2025, the latest stable release is version 3.6.0, requiring 12 or higher and compatible with GEOS 3.8+ and PROJ 6.1+.

Introduction

Definition and Purpose

PostGIS is an open-source spatial extension for the management system that enables the storage, indexing, and querying of geospatial data, including points, lines, polygons, and 3D objects. By integrating these capabilities directly into , PostGIS transforms the database into a robust spatial suitable for (GIS) applications, supporting operations such as distance calculations, area measurements, and geometric intersections. The core purpose of PostGIS is to provide a full-featured spatial database that adheres to Open Geospatial Consortium (OGC) standards, particularly the Simple Features for SQL (SFSQL) specification, which defines standard geometry types, spatial functions, and metadata tables for geospatial operations. This compliance ensures interoperability with other OGC-compliant tools and systems, facilitating tasks like spatial analysis and data manipulation within a relational database environment. PostGIS emerged in the early , with its initial development beginning in 2000–2001 by Refractions Research Inc. to overcome the limitations of traditional management systems (RDBMS) in handling geographic objects, as PostgreSQL's native geometric types were inadequate for GIS workloads. The first release, version 0.1, occurred on May 31, 2001, driven by needs in government projects requiring efficient versioning and querying of large-scale spatial datasets, such as road networks and watersheds. PostGIS is licensed under the GNU General Public License version 2 (GPLv2), promoting open-source collaboration while allowing integration with compatible software. It is maintained by the PostGIS community as an project, with ongoing development supported by contributions from global developers and sponsorship from organizations like , which contributes to advancing its releases.

Relationship to PostgreSQL and Standards

PostGIS integrates deeply with 's architecture by functioning as a server-side extension that enhances the database's core capabilities with geospatial functionality. It leverages 's extensibility model, which allows the addition of custom data types, operators, indexes, and functions through a loaded into the backend. Specifically, PostGIS introduces spatial data types such as and , along with associated operators (e.g., && for bounding box overlaps) and functions, all implemented and registered via 's catalog system. This integration enables seamless storage and querying of spatial data within standard SQL statements, without requiring external applications or . In terms of standards compliance, PostGIS provides full support for the Open Geospatial Consortium's (OGC) Implementation Specification for SQL 1.2.0, including core geometry types (e.g., POINT, LINESTRING, ) and spatial functions such as ST_Distance for calculating distances between geometries and ST_Intersects for intersection tests. It also offers partial conformance to ISO/IEC 13249 (SQL/MM) Spatial and the ISO 19125 standard, particularly in its SQL option for simple feature access, though some advanced features like curved geometries require additional extensions such as SFCGAL. This adherence ensures interoperability with other OGC-compliant systems, allowing PostGIS-enabled databases to exchange and process geospatial data in standardized formats. PostGIS depends on specific versions to ensure compatibility and leverage modern features, requiring PostgreSQL 12 or later as of its 3.6.1 release in November 2025. This minimum version supports essential PostgreSQL enhancements like parallel query execution and improved handling, which indirectly benefit spatial operations. For enhanced spatial searches, particularly in scenarios involving fuzzy text matching for geocoding or address-based queries, PostGIS can utilize complementary PostgreSQL extensions such as pg_trgm, which provides trigram-based indexing for efficient similarity searches on spatial metadata. A key aspect of PostGIS's integration involves its compatibility with PostgreSQL's procedural language, , which enables users to create custom stored procedures and functions that incorporate spatial operations. For instance, developers can define routines that combine PostGIS functions with conditional logic or loops to perform complex spatial analyses, such as of geometry transformations, all executed server-side for efficiency. This procedural extension builds on PostgreSQL's robust transaction model, ensuring atomicity and consistency in spatial data manipulations.

Core Concepts

Spatial Data Types

PostGIS provides several spatial data types to represent geospatial objects, enabling the storage and manipulation of vector-based geographic information within PostgreSQL databases. These types conform to the Open Geospatial Consortium (OGC) Simple Features for SQL (SFS) specification, ensuring interoperability with other spatial systems. The primary spatial data type is geometry, which stores vector data such as points, lines, and polygons in planar (Euclidean) coordinate systems. It supports various subtypes, including POINT for single locations, LINESTRING for linear features, and POLYGON for area boundaries. Each geometry object is associated with a Spatial Reference Identifier (SRID), which defines the coordinate reference system, such as EPSG:4326 for WGS 84 longitude/latitude. All geometry subtypes accommodate 2D coordinates (X, Y), 3D variants with an additional Z-coordinate for elevation, and measured variants including an M-coordinate for attributes like distance along a path. For instance, a table can be created to store point geometries in SRID 4326 using the SQL statement: CREATE TABLE locations (id SERIAL, geom geometry(POINT, 4326));. Internally, geometry objects are serialized using Well-Known Text (WKT) or Well-Known Binary (WKB) formats for efficient storage and exchange. In contrast, the type is designed for global-scale spatial data, representing features in spheroidal (ellipsoidal) coordinate systems that model the Earth's . It uses geodetic measurements to perform accurate calculations over large distances, avoiding distortions inherent in planar projections. Like , it supports the same subtypes—such as POINT, LINESTRING, and —and is tied to an SRID, typically geodetic ones like 4326. Like , it supports and 3D coordinates, with internal storage also relying on WKT or WKB formats. This type is particularly suited for applications involving worldwide extents, such as or distance computations on the Earth's surface. PostGIS further includes collection types to aggregate multiple simple geometries into complex structures. These encompass MULTIPOINT for sets of points, MULTILINESTRING for disjoint lines, MULTIPOLYGON for non-contiguous areas, and GEOMETRYCOLLECTION for heterogeneous groupings of any compatible geometries (or equivalent using the geography type). Each collection inherits the dimensional support (, , M) and SRID from its components, facilitating the representation of intricate spatial features like administrative boundaries or transportation networks.

Spatial Indexing and Queries

PostGIS employs spatial indexing to accelerate the retrieval of geometric and raster data, particularly for operations involving large datasets where sequential scans would be inefficient. The primary indexing mechanism is the , a flexible index type that PostGIS leverages to implement an R-Tree-like structure for bounding box-based searches. This allows efficient filtering of spatial objects using operators such as && (bounding box overlaps), which quickly eliminates non-intersecting candidates before performing exact geometric computations. To create a spatial index on a geometry column, the CREATE INDEX command specifies the GiST method, as in the following example for a table roads with a geom column:
sql
CREATE INDEX roads_geom_idx ON roads USING GIST (geom);
This index supports not only overlap queries but also spatial joins and nearest-neighbor searches. For instance, the <-> operator computes 2D distances and, when used in an ORDER BY clause with LIMIT, enables indexed k-nearest-neighbor (KNN) retrieval, such as finding the five closest points to a reference location without scanning the entire table. In large datasets, such as those with millions of features, GiST indexes can reduce query times from hours to seconds by pruning irrelevant regions early in the execution plan. Performance further improves with PostgreSQL's query planner, which can be analyzed using the EXPLAIN command to verify index usage and identify bottlenecks like missing indexes or suboptimal join orders. PostGIS implements an R-Tree-like spatial index using the GiST index type, which supports complex geometries including those larger than 8KB and null values, ensuring robust indexing for complex geometries. For raster data, indexing occurs via a functional GiST index on the of the raster's (ST_ConvexHull(rast)), enabling efficient bounding box queries on raster coverages without storing the full pixel data in the index. As of PostGIS 3.0, integration with 12+ enables parallel query execution for spatial operations, distributing workloads across CPU cores to enhance throughput on multi-core systems; this support continues and benefits from PostgreSQL's ongoing parallelism improvements in versions up to 18.

Features

Geometry and Geography Operations

PostGIS offers a comprehensive suite of functions for on vector data, distinguishing between types, which perform planar operations in coordinate systems, and types, which use geodetic calculations on an ellipsoidal model of the for accurate global measurements. These operations support tasks ranging from basic metric computations to complex relationship queries and geometric manipulations, all integrated seamlessly with SQL queries in . The functions are designed for efficiency and , with geography operations inherently handling spheroidal distortions to avoid errors common in planar approximations over large areas. Measurement functions provide essential metrics for spatial features. The ST_Area function computes the area of a polygonal or ; for , it calculates the planar area in the spatial reference system's units (e.g., square meters in a SRID), while for , it performs geodetic area estimation in square meters accounting for the Earth's using parameters. Similarly, ST_Length returns the length of a linear or the perimeter of a polygonal one in units for , or along great ellipses for in meters. The ST_Perimeter function, an alias for ST_Perimeter2D on polygons, follows the same planar or geodetic methodology to yield boundary lengths. Relationship functions enable topological and metric-based queries between spatial objects. ST_Intersects returns true if two geometries or geographies share at least one point, using bounding filters for followed by intersection tests. ST_Contains determines if one geometry fully contains another, requiring their interiors to intersect and all points of the second to lie within the first. For distance-based relationships, ST_DWithin checks if objects are within a specified , applying metrics in the for geometry or spheroidal distances for . Supporting operators include = for coordinate equality (ignoring order for collections) and && for 2D bounding overlap, which serve as fast preliminary filters in queries. Transformation functions facilitate reprojection and geometric construction. ST_Transform reprojects a from its source SRID to a target one, leveraging the PROJ library for accurate datum transformations. ST_Buffer creates a around a or at a given distance, producing a with customizable end styles (e.g., round, flat); for , distances are interpreted geodetically in meters along the . A prominent example is ST_Union, which aggregates multiple geometries or geographies into a single output by computing their point-set union, ideal for merging overlapping features like administrative boundaries. Performance can degrade with large inputs due to intermediate result complexity, but cascaded unions—progressively combining subsets—reduce memory usage and computation time compared to naive pairwise operations. PostGIS extends these capabilities to 3D with functions like ST_3DIntersects, which tests for spatial intersections considering Z-coordinates in points, linestrings, and polygons, enabling volumetric analysis. The ST_Distance function measures the shortest distance between objects; for geometry, it uses the 2D Euclidean formula: d = \sqrt{(x_2 - x_1)^2 + (y_2 - y_1)^2} where (x_1, y_1) and (x_2, y_2) are coordinates, yielding results in SRID units; for geography, it computes the spheroidal geodesic distance in meters, approximating great-circle paths on the ellipsoid via algorithms like those in GeographicLib for sub-millimeter accuracy. For 3D distances on geometry, use ST_3DDistance.

Raster, Topology, and Advanced Extensions

PostGIS extends its vector-based capabilities with raster support, enabling the storage and analysis of pixel-based grid data such as satellite imagery, digital elevation models, and scanned maps. The raster data type represents georeferenced rasters with support for multiple bands, pixel values, and spatial reference systems, allowing seamless integration with vector geometries for hybrid analyses. Key functions include ST_AsRaster, which converts PostGIS geometries into rasters by filling pixels based on specified values and dimensions, and ST_Clip, which crops a raster to a bounding box or geometry while preserving georeferencing. This raster functionality integrates deeply with the Geospatial Data Abstraction Library (GDAL), supporting import and export of formats like GeoTIFF through functions such as ST_FromGDALRaster and ST_AsGDALRaster, facilitating efficient handling of large-scale raster datasets. Raster statistics are provided via ST_SummaryStats, which computes essential metrics including count, sum, mean, standard deviation, minimum, and maximum for a specified band or coverage, aiding in data quality assessment and aggregation. The topology extension in PostGIS provides a framework for maintaining spatial relationships and constraints in vector data, particularly useful for large datasets while ensuring topological . Implemented in the postgis_topology , it supports constraint-based through functions that enforce rules like non-overlapping polygons and connected lines. For instance, ST_CreateTopoGeom constructs higher-level topological geometries (such as faces or collections) from elements like edges and nodes, enabling the decomposition of complex features into a structure. This extension validates s by detecting inconsistencies such as dangling edges or invalid face boundaries, promoting data consistency in applications like cadastral mapping. A key concept is the use of shared edges between adjacent faces, which inherently prevents overlaps and gaps in datasets by representing boundaries as single entities rather than duplicates. Topology validation often leverages invariants like the , a topological measure defined as \chi = V - E + F where V is the number of vertices, E the number of edges, and F the number of faces; for simple planar polygons or a sphere, \chi = 2, providing a quick check for structural validity. Beyond core raster and topology, PostGIS incorporates advanced extensions for specialized geospatial tasks. The address_standardizer extension, bundled since PostGIS 2.2, standardizes address data for geocoding by parsing and normalizing components like street names and postal codes using regular expressions and rule-based transformations, improving query accuracy in location-based services. For three-dimensional computations, integration with SFCGAL (version 1.4.1 or higher) enables robust 2D and 3D geometric operations, such as precise intersections and unions on polyhedral surfaces, extending PostGIS's capabilities to volumetric analysis in fields like urban modeling. Additionally, pgRouting integrates with PostGIS by leveraging its spatial types and indexes for network analysis, allowing functions like shortest path routing (e.g., pgr_dijkstra) on road or utility networks stored as geometries, with brief setup involving loading the extension alongside PostGIS for combined vector routing workflows.

Installation and Configuration

System Requirements

PostGIS requires PostgreSQL version 12 or higher, with support extending up to version 18; a complete installation of PostgreSQL, including server headers, is necessary for building and using the extension. The extension relies on several external libraries for core functionality: GEOS version 3.8.0 or greater for vector geometry operations (with version 3.14 or higher required to access all recent features), PROJ version 6.1 or higher for handling spatial reference systems and projections, and GDAL version 3.0 or higher (including its OGR component) for raster data support and vector input/output operations. Additional dependencies include LibXML2 version 2.5 or higher for XML parsing and JSON-C version 0.9 or higher for JSON handling, though these are typically available on most systems. PostGIS is primarily supported on distributions, where it receives the most extensive testing and development focus, but installation packages and guides exist for Windows and macOS as well. Community-maintained images, available on Docker Hub, facilitate quick setups and are compatible with versions 12 and later. For performance, systems benefit from adequate RAM to optimize parameters like shared_buffers (25-40% of available RAM) and work_mem for complex spatial queries, especially when handling large spatial datasets. Multi-core CPUs enhance parallel query execution, and spatial indexes such as GiST can significantly increase storage requirements due to their overhead in indexing geometric data.

Installation Methods and Best Practices

PostGIS can be installed using binary packages or by compiling from source, with methods varying by operating system. Binary installations are recommended for most users due to their simplicity and inclusion of dependencies. On and systems, add the PostgreSQL APT repository and install packages such as postgresql-16-postgis-3 using sudo apt install postgresql-16-postgis-3, ensuring version compatibility between PostgreSQL and PostGIS. For , , , or , enable the EPEL and CRB/PowerTools repositories, then install with dnf install postgis34_16 (adjusting for the target PostgreSQL version). On macOS, Homebrew provides a straightforward option via brew install postgis, which supports integration with PostgreSQL installations from the same package manager. Windows users can leverage the Stack Builder to select and install PostGIS bundles alongside PostgreSQL, or use the OSGeo4W distribution, which bundles PostGIS with all necessary dependencies like GEOS and PROJ in a single installer. For environments requiring custom builds, such as specific library versions, compile PostGIS from source after installing prerequisites like PostgreSQL development headers, GEOS, PROJ, and GDAL. Download the source tarball (e.g., from https://postgis.net/), extract it, and run ./configure --with-proj, followed by make and make install. This process installs the shared libraries and SQL scripts needed for extensions. After installation, configure PostGIS by enabling extensions in the target database. Execute CREATE EXTENSION postgis; to load the core spatial functionality, verifying availability with SELECT name, default_version FROM pg_available_extensions WHERE name LIKE 'postgis%';. For additional features, run CREATE EXTENSION postgis_topology; for topology support and CREATE EXTENSION postgis_raster; to enable raster capabilities. To optimize performance, especially for workloads involving parallel queries or extensions like MobilityDB, set shared_preload_libraries = 'postgis-3' in the postgresql.conf file and restart the server; also ensure max_locks_per_transaction is at least 128. Best practices emphasize matching PostGIS versions (e.g., 3.4 with 12-16) to avoid compatibility issues, as detailed in the official requirements. For upgrades, use pg_dumpall to back up the database from the old , install the new and PostGIS versions, initialize a new cluster with initdb, and restore using pg_restore; then upgrade extensions via SELECT postgis_extensions_upgrade(); or ALTER EXTENSION postgis UPDATE;. This method supports major version transitions while preserving spatial . Test the installation with make check during source builds and run VACUUM ANALYZE on spatial tables post- to update statistics.

History and Development

Origins and Early Development

PostGIS was initiated in 2001 by Refractions Research, a GIS and database consulting firm based in , , with the goal of extending to support Open Geospatial Consortium (OGC) standards for spatial data management. The project emerged from practical needs in GIS applications, particularly for handling spatial queries in environmental projects such as watershed analysis for the government, where existing commercial spatial databases proved costly or restrictive. Key early contributors included Paul Ramsey, who founded Refractions Research and led the open-sourcing efforts, and Mark Cave-Ayland, who provided critical code for functions like truly_inside() in version 0.5. Dave Blasby developed the initial server-side prototype, including geometry objects and analytical functions. Initial development was funded internally by Refractions Research as a research initiative, with subsequent support from the (OSGeo) following its establishment in 2006. The first milestone came with version 0.1, released on May 31, 2001, which introduced basic geometry data types, GiST-based spatial indexing, and foundational functions for storage and retrieval using Well-Known Text (WKT) and Well-Known Binary (WKB) formats. Development progressed with version 0.7 in May 2002, adding compatibility with PostgreSQL 7.2 and initial coordinate reference system transformations to enhance reprojection capabilities. By November 2003, version 0.8 achieved full compliance with the OGC Simple Features for SQL specification through integration with the GEOS topology library, enabling advanced operations like buffering and union. Throughout the pre-1.0 era, efforts concentrated on robust WKT and WKB parsing for handling, alongside core indexing and query functions, but excluded raster support or features, which were absent until later releases. A pivotal adoption milestone occurred in 2005 with deeper integration into MapServer—building on its early 2001 patch support—and the newly released uDig desktop GIS application, both developed by Refractions Research teams, signaling PostGIS's growing role in open-source geospatial workflows.

Key Releases and Milestones

, released on , 2012, marked a significant evolution by introducing full raster support as an integrated component, enabling storage and analysis of raster data alongside geometries. This version also delivered substantial performance improvements through enhancements to the liblwgeom library, which handles lightweight operations, and added new functions such as ST_Split for geometry division and ST_MakeValid for repairing invalid geometries. Additionally, it required a hard upgrade due to the removal of over 250 deprecated functions and a shift in the unknown SRID from -1 to 0, alongside converting geometry_columns to a for better . Version 3.0, released on October 20, 2019, represented a major refactor that separated raster functionality into its own postgis_raster extension for modular loading and upgrades. It dropped support for PostgreSQL versions below 9.5 while aligning with PostgreSQL 12, introduced Proj 6+ API support for advanced datum transformations, and enhanced geography functions with new capabilities like ST_3DLineInterpolatePoint for 3D interpolation. Integration with SFCGAL was deepened for robust 3D operations, and new features included ST_AsMVT for vector tile generation with Feature ID support and casts to JSON/JSONB for GeoJSON output. This release also bumped the minimum GEOS requirement to 3.6 and removed legacy functions like ST_Accum in favor of standard PostgreSQL aggregates. Subsequent releases have built on this foundation with annual minor versions timed to precede PostgreSQL's major updates, establishing a stable cadence for feature enhancements and compatibility. PostGIS 3.1.0, released December 18, 2020, focused on performance optimizations for spatial joins, vector tile output, and large object handling, while adding weighted via ST_ClusterKMeans and geometry generators for hexagonal and square tilings. Version 3.2.0, released December 18, 2021, introduced FlatGeobuf format I/O for efficient binary data exchange, faster GiST indexes on PostgreSQL 14 via sorting, and bilinear resampling in ST_Value for raster . PostGIS 3.3.0, released August 27, 2022, enhanced raster analytics with multi-band union support and improved GEOS integration for robust overlays, alongside optimizations for MVT generation and GiST indexing. The 3.4.0 release on August 15, 2023, added new configure options, extended support to PostgreSQL 16, and included security-related bug fixes in and raster functions. PostGIS 3.5.0, released September 26, 2024, introduced new functions such as ST_HasZ and ST_HasM for detection, CG_YMonotonePartition for partitioning, and ST_ExtrudeStraightSkeleton for extrusion, along with enhancements to ST_GeneratePoints and ST_CreateTopoGeo for improved performance. It required 12–17 and GEOS 3.8+ (3.12+ for full features), included breaking changes like stricter TopoGeometry comparisons and removal of extension comments, and deprecated certain ST_StraightSkeleton functions in favor of the CG_ prefix. PostGIS 3.6.0, released September 2, 2025, requires 12–18 beta3 and GEOS 3.8+ (3.14+ for full features), introducing advanced SFCGAL functions like 3D buffering and partitioning, topology precision validation, and raster aggregation via ST_AsRasterAgg. A bug-fix release, PostGIS 3.6.1, followed on November 12, 2025, addressing issues such as parsing errors, null pointer dereferences, and a in the geocoder (CVE-2022-2625), while maintaining the same core requirements. Key project milestones include PostGIS's entry into OSGeo incubation in 2009 and graduation to full OSGeo project status on June 7, 2012, affirming its maturity and community governance under the . Since version 3.0, PostGIS has adopted (LTS) branches alongside annual releases, ensuring stability for production environments while allowing rapid iteration on new and dependency features.

Adoption and Ecosystem

Notable Users and Applications

PostGIS has been adopted by various government agencies for managing large-scale geospatial datasets. The utilizes PostGIS within its Multi-Mission GIS (MMGIS) platform to handle geospatial data for mission planning and applications, enabling efficient storage and querying of and terrain data. The employs PostGIS in tools like SolVES (Social Values for Ecosystem Services), which maps human values associated with natural resources as part of national map services, supporting environmental and land-use analysis across the U.S. Similarly, the UK integrates PostGIS into its web services infrastructure to process and deliver authoritative spatial data, facilitating applications in national mapping and infrastructure planning. In the commercial sector, PostGIS powers location intelligence and GIS solutions for several prominent companies. Crunchy Data offers managed PostgreSQL hosting with built-in PostGIS support, enabling scalable geospatial workloads for enterprises in industries such as and . CARTO leverages PostGIS as the core database for its cloud-based platform, performing geoprocessing operations like spatial joins and aggregations to deliver insights for and marketing. Formerly Boundless, a provider of open-source GIS software, incorporated PostGIS into its suite for data management and visualization, supporting desktop and web-based geospatial workflows. Real-world applications of PostGIS span diverse domains, including data storage for collaborative mapping projects. PostGIS is used within the ecosystem to store and index vector data for rendering maps via tools like Mapnik for the project's main website layers. In urban planning, PostGIS has been used to analyze City's 311 service request data, such as noise or infrastructure complaints, aiding in visualization and resource allocation insights. For environmental monitoring, PostGIS supports species tracking initiatives by storing GPS data to map animal movements and assess habitat threats, often integrated with broader GIS ecosystems. PostGIS is widely adopted as a leading spatial extension within the community, as highlighted in developer surveys such as the 2024 Stack Overflow survey where ranked as the top database. A notable involves its integration with for desktop geospatial analysis, where PostGIS serves as the backend database and provides user-friendly visualization and querying tools, streamlining workflows from data ingestion to reporting. Additionally, PostGIS supports through seamless integration with libraries like Leaflet and , allowing dynamic spatial queries—such as fetching features within a —to generate interactive maps without server-side rendering.

Community Contributions and Integrations

PostGIS maintains a vibrant open-source community under the auspices of the OSGeo Foundation, having entered OSGeo incubation in 2009 and graduated as a full project in 2012. The community coordinates through dedicated mailing lists, including postgis-users for general support and discussions, and postgis-devel for development-related topics. Development occurs primarily via the OSGeo repository for issue tracking, pull requests, and code management, with a mirror facilitating broader accessibility. Contributions to PostGIS are driven by a global network of developers, with key efforts including the creation and maintenance of extensions such as pg_pointcloud, which enables storage and querying of data alongside PostGIS geometries. Community members participate in annual events like FOSS4G conferences and PostGIS Day, where workshops and presentations foster knowledge sharing and collaboration. Additionally, pgRouting serves as a prominent example of a community-maintained extension originating from early PostGIS routing capabilities; it has evolved into an independent OSGeo project focused on geospatial network analysis, graduating from incubation in 2024. PostGIS integrates seamlessly with various open-source GIS tools and frameworks, enhancing its utility in diverse workflows. For instance, it connects directly with for spatial data editing and visualization, and with for advanced raster and vector processing via database links. Web-based integrations include GeoDjango, which leverages PostGIS for spatial queries in applications, and , which publishes PostGIS data as OGC web services like WMS and WFS. Analytics tools such as pg_featureserv provide RESTful access to PostGIS features compliant with OGC standards, supporting lightweight geospatial data serving. The project benefits from sponsorships by organizations like Crunchy Data, which hosts annual PostGIS Day events and employs major contributors, alongside OSGeo's broader funding model that supports community activities and infrastructure.

References

  1. [1]
    Chapter 1. Introduction - PostGIS
    PostGIS is a spatial extension for the PostgreSQL relational database that was created by Refractions Research Inc, as a spatial database technology research ...
  2. [2]
    PostGIS History - Refractions Research
    With version 1.1, PostGIS made a major improvement to the build system, allowing PostGIS to be built along-side already-installed binary packages in Linux ...
  3. [3]
    Release Notes - PostGIS
    2025/09/01. This version requires PostgreSQL 12-18beta3, GEOS 3.8 or higher, and Proj 6.1+. To take advantage of all features, GEOS 3.14+ is needed.
  4. [4]
    PostGIS
    PostGIS extends the capabilities of the PostgreSQL relational database by adding support for storing, indexing, and querying geospatial data.Getting Started · Chapter 2. PostGIS Installation · Official Manual · Community
  5. [5]
    Chapter 1. Introduction
    **Summary of PostGIS Introduction (https://postgis.net/docs/manual-3.4/postgis_introduction.html):**
  6. [6]
    Chapter 4. PostGIS Usage
    PostGIS supports all the objects and functions specified in the OGC "Simple Features for SQL" specification (SFS). PostGIS extends the standard with support for ...
  7. [7]
    Will the GPL license used by PostGIS force me to release my source ...
    PostGIS is open source software available under the GNU GPLv2. While the GPL does have some expansive “share and share alike” clauses in it, ...
  8. [8]
    2025 PostGIS & GEOS Release | Crunchy Data Blog
    Sep 17, 2025 · New PostGIS and GEOS versions are out to coincide with Postgres 18. Get the details on GEOS 3.14 and PostGIS 3.6.Missing: maintainers Refractions Research
  9. [9]
    Chapter 2. PostGIS Installation
    The PostGIS module is an extension to the PostgreSQL backend server. As such, PostGIS 3.6.1dev requires full PostgreSQL server headers access in order to ...
  10. [10]
    PostGIS 3.5.5dev Manual
    PostGIS is an extension to the PostgreSQL object-relational database system which allows GIS (Geographic Information Systems) objects to be stored in the ...<|separator|>
  11. [11]
    Chapter 4. Data Management - PostGIS
    It defines the fundamental spatial type of Geometry, along with operations which manipulate and transform geometry values to perform spatial analysis tasks.
  12. [12]
    [PDF] postgis-3.3.pdf
    Aug 26, 2025 · ... OGC and SQL/MM spatial standards, advanced topological ... SQL features provided by PostgreSQL. Page 38. PostGIS 3.3.9dev Manual.
  13. [13]
    PostGIS 3.6.0
    Sep 2, 2025 · This version requires PostgreSQL 12 - 18beta3, GEOS 3.8 or higher, and Proj 6.1+. To take advantage of all features, GEOS 3.14+ is needed. To ...3.6. 0 · Breaking Changes · New Features
  14. [14]
    Chapter 4. Using PostGIS: Data Management and Queries
    The OpenGIS "Simple Features Specification for SQL" defines standard GIS object types, the functions required to manipulate them, and a set of meta-data tables.
  15. [15]
    Chapter 7. PostGIS Reference
    This section lists the custom PostgreSQL data types installed by PostGIS to represent spatial data. Each data type describes its type casting behavior.Missing: history | Show results with:history
  16. [16]
    geometry
    ### Summary of Geometry Data Type in PostGIS
  17. [17]
    geography
    ### Summary of Geography Data Type in PostGIS
  18. [18]
    Chapter 4. PostGIS Usage
    GiST is the most commonly-used and versatile spatial index method, and offers very good query performance. BRIN (Block Range Index) indexes operate by ...
  19. [19]
    How do I use spatial indexes? - PostGIS
    You need to do two things to use a spatial index: To create a spatial index, use the CREATE INDEX command, but specify the USING GIST access method.
  20. [20]
    PostGIS distance operator <->
    The <-> operator returns the 2D distance between two geometries. Used in the "ORDER BY" clause provides index-assisted nearest-neighbor result sets.
  21. [21]
    15. Spatial Indexing — Introduction to PostGIS
    Spatial index is one of the three key features of a spatial database. Indexes make using a spatial database for large data sets possible.
  22. [22]
    Waiting for PostGIS 3: Parallelism in PostGIS | Crunchy Data Blog
    Aug 19, 2019 · Improvements in PostgreSQL 12 allow PostGIS 3 to use built-in query parallelism to execute accelerated geospatial queries.Missing: 3.6 | Show results with:3.6
  23. [23]
  24. [24]
  25. [25]
  26. [26]
  27. [27]
  28. [28]
  29. [29]
  30. [30]
  31. [31]
  32. [32]
  33. [33]
  34. [34]
  35. [35]
  36. [36]
    Chapter 11. Raster Reference - PostGIS
    raster is a PostGIS type for storing and analyzing raster data. For loading rasters from raster files please refer to Section 10.1, “Loading and Creating ...
  37. [37]
  38. [38]
  39. [39]
  40. [40]
  41. [41]
    Chapter 9. Topology - PostGIS
    The PostGIS Topology types and functions are used to manage topological objects such as faces, edges and nodes. Sandro Santilli's presentation at PostGIS ...<|separator|>
  42. [42]
    ValidateTopology - PostGIS
    Returns a set of validatetopology_returntype objects detailing issues with topology, optionally limiting the check to the area specified by the bbox parameter.Missing: shared Euler characteristic
  43. [43]
    Installing on Docker - PostGIS
    Installing on Docker. PostGIS has a community docker-postgis project. PostGIS Docker builds can be pulled from the PostGIS Docker Hub.
  44. [44]
    Chapter 3. PostGIS Administration
    Core postgis extension includes geometry, geography, spatial_ref_sys and all the functions and comments. Raster and topology are packaged as a separate ...
  45. [45]
    Selection and Optimization of PostGIS Spatial Indexes (GiST, BRIN ...
    Dec 18, 2020 · This article discusses the index types supported by PostgreSQL and compares GiST and BRIN indexes' performance concerning spatial search requirements.
  46. [46]
    Installing on Ubuntu / Debian - PostGIS
    The best place to get the latest binaries for both PostgreSQL and PostGIS is from the PostgreSQL download page Debian and PostgreSQL download page Ubuntu.
  47. [47]
    Installing on Red Hat / Centos / Scientific Linux - PostGIS
    The best place to get the latest binaries for both PostgreSQL and PostGIS is from the PostgreSQL download page Redhat Derivatives.
  48. [48]
    Installing on MacOS - PostGIS
    Video details how to install postgres.app and how to get started with PostGIS and QGIS. Homebrew users can just run “brew install postgis” and tends to be a ...
  49. [49]
    Installing on windows - PostGIS
    The installers are designed to work with EnterpriseDb PostgreSQL distributions. Watch the video Getting started with PostGIS and QGIS on windows.Enabling PostGIS · Latest Released Version · Unreleased Versions
  50. [50]
    Enabling PostGIS
    PostGIS and other extensions are optional extensions that must be enabled in EVERY database you want to use them in. All the below extensions are included ...
  51. [51]
  52. [52]
    39. Software Upgrades — Introduction to PostGIS
    39.2. Upgrading PostGIS¶ ... PostGIS deals with minor and upgrades through the EXTENSION mechanism. If you spatially-enabled your database using CREATE EXTENSION ...Missing: documentation | Show results with:documentation
  53. [53]
    PostGIS at 20, The Beginning - Paul Ramsey
    May 31, 2021 · The early history of PostGIS was tightly bound to a consulting company I had started a few years prior, Refractions Research. ... PostGIS got ...
  54. [54]
    Chapter 1. Introduction - PostGIS
    PostGIS was developed by Refractions Research Inc, as a spatial database technology research project. Refractions is a GIS and database consulting company.
  55. [55]
    Chapter 1. Introduction - PostGIS
    PostGIS is developed by Refractions Research Inc, as a spatial database technology research project. Refractions is a GIS and database consulting company.Missing: history origins
  56. [56]
    2. Introduction - PostGIS
    A spatial database provides a complete set of functions for analyzing geometric components, determining spatial relationships, and manipulating geometries.
  57. [57]
    PostGIS 0.7.0 Released
    May 4, 2002 · Version 0.7.0 includes two major improvements over the last release: Support for PostgreSQL 7.2; Support for coordinate reprojection inside ...
  58. [58]
    [PDF] User-friendly Desktop Internet GIS - uDig - Refractions Research
    PostGIS and GeoServer both benefit from having an intuitive desktop tool for direct data access. Mapserver benefits from having a universal WMS client available ...
  59. [59]
    Appendix A. Appendix - PostGIS
    Release 2.0.7. Release date: 2015/03/27. In addition to minor improvements and bug fixes, important fixes in the stability of ...
  60. [60]
    PostGIS 3.0.0
    Oct 20, 2019 · The PostGIS development team is pleased to release PostGIS 3.0.0. This release works with PostgreSQL 9.5-12 and GEOS >= 3.6.
  61. [61]
    Appendix A. Appendix - PostGIS
    Release 3.0.0. Release date: 2019/10/20. This version requires PostgreSQL 9.5+-12 and GEOS >= 3.6+ Additional features ...
  62. [62]
    Versioning & EOL - PostGIS
    PostGIS releases new minor versions approximately once a year, shortly before PostgreSQL releases their latest version which is currently around early October.Missing: history | Show results with:history
  63. [63]
    PostGIS 3.1.0
    Dec 18, 2020 · Performance is a key feature of this release, with improvements to spatial joins, text outputs, large object reads, vector tile output, and a ...
  64. [64]
    Appendix A. Appendix - PostGIS
    Release 3.2.0beta1. Release date: 2021/10/23. This version requires PostgreSQL 9.6 or higher, GEOS 3.6 or higher, and Proj 4.9+ Additional features are ...
  65. [65]
    PostGIS 3.3.0 Released
    Aug 27, 2022 · This release also includes many additional functions and improvements for postgis , postgis_raster , postgis_sfcgal , and postgis_topology ...
  66. [66]
    PostGIS 3.4.0
    Aug 15, 2023 · PostGIS 3.4.0 is a major release with bug fixes, new features, and supports PostgreSQL 12-16, GEOS 3.6+, Proj 6.1+, and includes new configure ...
  67. [67]
    PostGIS Incubation Status - OSGeo Wiki
    Nov 20, 2013 · General. Has the project been approved for incubation by the OSGeo board? Yes, see: http://wiki.osgeo.org/wiki/Board_Meeting_2009-08-06# ...Missing: date | Show results with:date
  68. [68]
    Installation | MMGIS - GitHub Pages
    From the above install, you can use the 'Application Stack Builder' to install PostGIS or the default PostGIS install instructions for all platforms. Make a new ...
  69. [69]
    SolVES | U.S. Geological Survey - USGS.gov
    Sep 1, 2020 · SolVES 4.0 was developed as open-source software with Python and uses the free software packages QGIS for its user interface and PostgreSQL ...
  70. [70]
    [PDF] PostGIS for Managers - Paul Ramsey
    UK Ordnance Survey uses PostGIS on their web tier, supporting WMS live rendering and deployed on Amazon Web. Services, and there are lots of UK. MasterMap ...
  71. [71]
    Fully Managed PostGIS in the Cloud - Crunchy Data
    PostGIS on Crunchy Bridge closely tracks the latest releases of PostGIS and its dependencies for the fastest, most reliable spatial database experience.Missing: Refractions Research
  72. [72]
    Geoprocessing with PostGIS - Part 1 - CARTO
    Many popular Geoprocessing functions in GIS software can be done with PostGIS queries and this blog series will provide a one-for-one replication of the ...
  73. [73]
    Introduction to PostGIS
    Introduction to PostGIS. License: This workshop is freely available for use and re-use under the terms of the Creative Commons Attribution-Share Alike 3.0 ...2. Introduction · 4. Creating a Spatial Database · 1. Welcome · 9. Geometries
  74. [74]
    PostGIS - OpenStreetMap Wiki
    Feb 17, 2023 · PostGIS and Mapnik power most of the popular OpenStreetMap maps, including the four main layers on the OSM website.
  75. [75]
    Wrangling NYC's 311 data - Chris Henrick
    Jun 3, 2015 · Wrangling NYC's 311 data. Battling the task of downloading 311 data and importing it into PostgreSQL for analysis.
  76. [76]
    Creating powerful conservation tools - World Wildlife Fund
    WWF scientists work to minimize human wildlife conflicts occurring in rural communities by linking mobile phone connectivity to animal tracking telemetry and ...Missing: PostGIS | Show results with:PostGIS
  77. [77]
    2024 State of PostgreSQL Survey | Tiger Data
    The 2024 survey shows a growing number of experienced users, with those having 15+ years of experience increasing to 21%, up from 11% in 2023.Missing: PostGIS | Show results with:PostGIS
  78. [78]
    [PDF] A Case Study on PostGIS, QGIS, and Apache Solr Integration - ijrpr
    This study explores integrating PostGIS, QGIS, and Apache Solr for geospatial data warehousing, focusing on efficient storage, retrieval, and analysis of large ...<|separator|>
  79. [79]
    How to connect OpenLayers to PostGIS data? - GIS Stack Exchange
    Feb 25, 2013 · One way to connect the two would be with GeoJSON. Here is an example query of a PostGIS database: SELECT population,ST_AsGeoJSON(geom) FROM censusblocks.Using PostGIS GeoJSON in OpenLayers - GIS Stack ExchangeChoosing OpenLayers or Leaflet? [closed] - GIS Stack ExchangeMore results from gis.stackexchange.com
  80. [80]
    Incubation Committee - OSGeo Wiki
    Jun 6, 2025 · PostGIS: PostGIS Incubation Status | PostGIS Provenance Review (Entered 2009-08-06, Graduated 2012-06-07, Mentor: Arnulf Christl); PROJ ...
  81. [81]
    Mailing Lists - PostGIS
    The postgis-users mailing list is a supportive community forum to discuss issues, to learn new techniques, and to share your knowledge with other learners.Missing: structure GitHub
  82. [82]
    PostGIS
    ### Summary of PostGIS Content
  83. [83]
    PostGIS spatial database extension to PostgreSQL [mirror] - GitHub
    GPL-2.0 license; License; Security. This file is here to play nicely with modern code repository facilities. Actual readme is here. Official code repository ...PostGIS · Actions · Pull requests 4 · Security
  84. [84]
    PostGIS — pgpointcloud
    The pointcloud_postgis extension adds functions that allow you to use PostgreSQL Pointcloud with PostGIS, converting PcPoint and PcPatch to Geometry and doing ...Missing: contributions bug FOSS4G
  85. [85]
    Solving Spatial Problems with PostGIS :: FOSS4G 2021 - Events
    We'll look at 10 problems commonly solved with PostGIS. The focus will be the use of PostGIS 3.1+ and PostgreSQL 13+.Missing: contributions bug bounties pg_pointcloud
  86. [86]
    pgRouting graduates OSGeo Incubation
    Date: 2024-Nov-21. OSGeo is pleased to announce that pgRouting has graduated from incubation and is now a full-fledged OSGeo project.
  87. [87]
    pgRouting | Georepublic - Location Technology Company
    What is pgRouting. The pgRouting project is an open-source, community-driven project that develops and maintains the pgRouting extension for PostgreSQL.
  88. [88]
    Using PostGIS and pg_featureserv with QGIS | Crunchy Data Blog
    Jul 21, 2021 · Crunchy Data has developed a suite of spatial web services that work natively with PostGIS to expose your data to the web, using industry-standard protocols.Missing: GRASS GeoDjango GeoServer
  89. [89]
    PostGIS - GRASS-Wiki
    Sep 23, 2025 · GRASS also creates automatically for every PostGIS table a new vector map in the current mapset as the link to the PostGIS table. PostGIS data ...Link to GRASS · Export to PostGIS · Direct access to PostGIS dataMissing: integration | Show results with:integration
  90. [90]
    Creating GIS Rest APIS using Geodjango under 30 minutes
    In this talk we'll scratch the surface of this python package and see how to build basic CRUD APIs to push, pull GIS data along with filtering it to the ...
  91. [91]
    QGIS, PostGIS, and Geoserver in an Enterprise Environment
    Sep 29, 2022 · ... Integration with other enterprise systems through foreign data wrappers; - Sharing data web services; - And more! For more about past and ...Missing: GRASS GeoDjango pg_featureserv
  92. [92]
    CrunchyData/pg_featureserv: Lightweight RESTful Geospatial ...
    Uses PostGIS to provide geospatial functionality: Spatial filtering; Transforming geometry data into the output coordinate system; Marshalling feature data ...
  93. [93]
    PostGIS Day 2024 - Crunchy Data
    PostGIS Day is part of Geography Awareness Week and serves to highlight the features and uses of the PostGIS spatial database as a part of the GIS ecosystem.Writing The Sql: Revising... · Multi-Entry Generalized... · Custom Routing Solutions...
  94. [94]
    Crunchy Data PostgreSQL Subscription
    Crunchy Data employs some of the top contributors to PostgreSQL, PostGIS, and the associated open source ecosystem of tools and technologies.Missing: sponsorship | Show results with:sponsorship
  95. [95]
    Sponsors Archive - OSGeo
    OSGeo relies on the donations from these generous sponsors to fund day-to-day activities and events. Learn more about how you can become a Sponsor of OSGeo.