PostGIS
Superpoderes geoespaciales para PostgreSQL — mapas, routing, geofencing.
PostGIS es la extensión geoespacial gold-standard para PostgreSQL. Añade tipos geometry y geography, 1000+ funciones espaciales, índices R-tree, soporte de proyecciones y topología — convirtiendo Postgres en un servidor GIS completo usado por agencias cartográficas nacionales, plataformas de ride-sharing y apps de field service en todo el mundo.
Desplegar con Pier
- 1 Abre el panel de Pier y haz clic en Add service.
- 2 Elige PostGIS en la lista de plantillas.
- 3 Elige la versión, asigna un nombre al servicio y Pier provisionará automáticamente el contenedor, el almacenamiento y los puertos.
- 4 Vincula un dominio si quieres HTTPS. Traefik genera el certificado de Let's Encrypt automáticamente.
¿Qué es PostGIS?
PostGIS es la extensión geoespacial canónica para PostgreSQL. Creada en 2001 por Refractions Research, ha crecido hasta convertirse en la base del stack GIS open-source: OpenStreetMap almacena sus datos en PostGIS, Mapbox lo usa como backend, cada agencia cartográfica nacional que toca OSS tiene un servidor PostGIS en producción en algún sitio.
Técnicamente es una extensión que instalas en una base de datos Postgres, pero en la práctica casi siempre usas una distribución de Postgres donde ya está compilada (la imagen Docker oficial postgis/postgis). Una vez activada, tu base de datos Postgres gana tipos espaciales, 1000+ funciones espaciales, índices GIST para consultas geométricas rápidas y tooling para trabajo de raster, topología y tiles.
Cómo lo despliega Pier
Pier usa la imagen Docker oficial postgis/postgis, montando
/var/lib/postgresql como volumen de datos. La versión por defecto es
latest (PostGIS 3.5 sobre PostgreSQL 18); 18-master, 17-master,
16-master y 15-master están disponibles para fijar versión.
Al crear una base de datos desde la UI de Pier, obtienes un checklist de extensiones PostGIS para instalar (postgis, postgis_topology, postgis_raster, fuzzystrmatch, postgis_tiger_geocoder). Pier las instala en orden de dependencia vía CREATE EXTENSION … CASCADE.
Todo el tooling de Postgres funciona — pg_dump, psql, ORMs, pgAdmin, DBeaver. Las features de backup y replicación de Pier aplican igual que con la plantilla postgresql vanilla.
Cuándo NO usar PostGIS
Si no necesitas funciones espaciales, usa PostgreSQL regular — PostGIS añade overhead de disco y memoria. Si tu única necesidad geo es “almacenar lat/lon y encontrar items dentro de un radio”, Postgres con un btree sobre (lat, lon) y una función Haversine podría bastar. Muévete a PostGIS en cuanto necesites polígonos, proyecciones o rasters.
Características clave
Tipos espaciales
Tipos GEOMETRY (planar) y GEOGRAPHY (esférica) con puntos, líneas, polígonos, multipolígonos, colecciones. SRID-aware — almacena datos en cualquiera de 5000+ sistemas de referencia de coordenadas.
1000+ funciones espaciales
ST_Distance, ST_Within, ST_Intersects, ST_Buffer, ST_Union, ST_ConvexHull, ST_Centroid — todas las funciones espaciales OGC estándar más extras específicos de PostGIS.
Índices GIST R-tree
Los índices GIST en columnas geométricas hacen que las consultas espaciales (ST_DWithin, ST_Intersects) sean sub-milisegundo incluso en tablas con cientos de millones de features.
Soporte de rasters
PostGIS Raster maneja imágenes satelitales, datos de elevación, grids meteorológicos. Co-consulta rasters y vectores en una sola sentencia SQL.
Topología
postgis_topology modela relaciones topológicas (aristas compartidas, caras) — crítico para trabajo catastral, redes de transporte y fronteras políticas donde la consistencia importa.
100% PostgreSQL
Sigue siendo PostgreSQL — mismos drivers, mismas transacciones, mismos backups. Combina consultas espaciales con joins relacionales, JSONB, full-text y procedimientos almacenados en una sola consulta.
Casos de uso
Mapas y cartografía
Servidores de vector tiles (pg_tileserv, Martin) sirven millones de tiles de mapa desde PostGIS en tiempo real. Mapbox Vector Tiles vía ST_AsMVT().
Geofencing y alertas
Notifica cuando un vehículo entra o sale de un polígono — ST_Within contra polígonos de geofence. Sub-milisegundo con indexación adecuada.
Redes de routing
pgRouting añade Dijkstra, A*, K-shortest-paths sobre redes de carreteras PostGIS. Datos OpenStreetMap + pgRouting = tu propio motor de routing.
Tracking de flotas y activos
Almacena GPS pings como POINT(longitud, latitud). Consulta "todos los activos a 5 km de la sede en la última hora" con una sentencia SQL.
Modelado de riesgos y seguros
Joins espaciales de direcciones de clientes contra zonas de inundación, mapas de crimen, fallas. Devuelve scores de riesgo por póliza en batch.
Ejemplos de código
CREATE EXTENSION IF NOT EXISTS postgis;
CREATE TABLE places (
id BIGSERIAL PRIMARY KEY,
name TEXT NOT NULL,
geom GEOGRAPHY(POINT, 4326) NOT NULL
);
CREATE INDEX places_geom_idx ON places USING GIST (geom);
INSERT INTO places (name, geom) VALUES
('Madrid', ST_GeogFromText('POINT(-3.7038 40.4168)')),
('Barcelona',ST_GeogFromText('POINT(2.1734 41.3851)')); SELECT name,
ST_Distance(geom, ST_MakePoint(-3.7, 40.4)::geography) AS meters
FROM places
ORDER BY geom <-> ST_MakePoint(-3.7, 40.4)::geography
LIMIT 10; SELECT v.id, v.callsign
FROM vehicles v
JOIN geofences g ON ST_Within(v.last_position::geometry, g.area)
WHERE g.alert_zone = true; SELECT ST_AsMVT(tile, 'places')
FROM (
SELECT id, name,
ST_AsMVTGeom(
geom::geometry,
ST_TileEnvelope(z, x, y),
4096, 64, true
) AS geom
FROM places
WHERE geom && ST_TileEnvelope(z, x, y)
) AS tile; Comparativa
| vs PostgreSQL vanilla | PostgreSQL no incluye tipos espaciales — PostGIS es la extensión de facto. Usa la plantilla PostGIS si sabes que vas a necesitar espacial; la plantilla postgresql regular puede instalar postgis después vía CREATE EXTENSION. |
| vs Esri ArcGIS / Oracle Spatial | PostGIS es el equivalente OSS — feature set competitivo, usado por el US Census Bureau, IGN Francia, UK Ordnance Survey, Senado de Berlín y más agencias cartográficas nacionales. |
| vs MongoDB GeoJSON | El 2dsphere de Mongo cubre consultas geo básicas; PostGIS va más profundo (raster, topología, proyecciones, análisis de red). Elige PostGIS para trabajo GIS serio. |
| vs Servidores de tiles especializados (Tegola, Mapnik) | PostGIS se empareja con servidores de tiles — leen de PostGIS. PostGIS es tu fuente de verdad geo, no un renderizador de tiles por sí mismo. |
Preguntas frecuentes
¿PostGIS es solo una extensión que instalo en PostgreSQL regular?
¿Qué extensiones auto-instala Pier?
¿Qué SRID debo usar?
¿GEOGRAPHY vs GEOMETRY?
¿Qué versión de PostgreSQL usa la plantilla PostGIS?
¿Los backups funcionan igual que Postgres?
¿Puedo usar pgRouting?
Servicios relacionados
Desplegar en tu VPS
PostGIS es la extensión geoespacial gold-standard para PostgreSQL. Añade tipos geometry y geography, 1000+ funciones espaciales, índices R-tree, soporte de proyecciones y topología — convirtiendo Postgres en un servidor GIS completo usado por agencias cartográficas nacionales, plataformas de ride-sharing y apps de field service en todo el mundo.
Desplegar este servicio →