PostGIS para catastro: guía de inicio
PostGIS es la extensión geoespacial de PostgreSQL y, en nuestra opinión, la mejor base de datos para gestión catastral en Colombia. En GEOSAT lo usamos como motor de datos en Terraes y en la mayoría de nuestros proyectos SIG. Esta guía cubre lo esencial para comenzar.
Qué es PostGIS
PostGIS agrega tipos de datos geométricos y geográficos a PostgreSQL, junto con cientos de funciones espaciales. Esto significa que se puede almacenar, consultar y analizar información geoespacial directamente en la base de datos, sin depender de archivos shapefile o geodatabases propietarias.
Las ventajas para catastro son claras:
- Multiusuario: varios técnicos pueden trabajar simultáneamente sobre la misma base de datos
- Integridad referencial: relaciones entre predios, propietarios y derechos con constraints reales de base de datos
- Consultas espaciales: preguntas como "¿qué predios están dentro de esta zona de riesgo?" se resuelven con SQL
- Sin licencias: PostGIS es software libre, igual que PostgreSQL
Instalación básica
En un servidor Linux (Ubuntu/Debian):
sudo apt update
sudo apt install postgresql postgis
sudo -u postgres createdb catastro
sudo -u postgres psql -d catastro -c "CREATE EXTENSION postgis;"
En Windows, la forma más sencilla es instalar PostgreSQL desde el instalador oficial de EnterpriseDB e incluir la extensión PostGIS desde el Stack Builder.
Una vez instalado, se puede verificar la versión:
SELECT PostGIS_Full_Version();
Estructura de datos para catastro
Un esquema catastral básico en PostGIS podría verse así:
CREATE TABLE terrenos (
id SERIAL PRIMARY KEY,
codigo_predial VARCHAR(30) NOT NULL UNIQUE,
area_terreno NUMERIC(12,2),
geom GEOMETRY(MultiPolygon, 9377)
);
CREATE TABLE construcciones (
id SERIAL PRIMARY KEY,
terreno_id INTEGER REFERENCES terrenos(id),
numero_pisos INTEGER,
area_construida NUMERIC(12,2),
geom GEOMETRY(MultiPolygon, 9377)
);
CREATE TABLE propietarios (
id SERIAL PRIMARY KEY,
terreno_id INTEGER REFERENCES terrenos(id),
nombre VARCHAR(200),
documento VARCHAR(20),
tipo_derecho VARCHAR(50)
);
El SRID 9377 corresponde a MAGNA-SIRGAS / Origen Nacional, el sistema de referencia oficial para catastro en Colombia. Es fundamental usar el SRID correcto desde el inicio para evitar problemas de reproyección.
Consultas espaciales esenciales
Calcular el área de un predio
SELECT codigo_predial, ST_Area(geom) AS area_m2
FROM terrenos
WHERE codigo_predial = '05001000100010001';
Encontrar predios dentro de una zona
SELECT t.codigo_predial
FROM terrenos t, zonas_riesgo z
WHERE z.nombre = 'Zona inundable río Medellín'
AND ST_Contains(z.geom, t.geom);
Detectar superposiciones entre predios
SELECT a.codigo_predial AS predio_a,
b.codigo_predial AS predio_b,
ST_Area(ST_Intersection(a.geom, b.geom)) AS area_superposicion
FROM terrenos a, terrenos b
WHERE a.id < b.id
AND ST_Intersects(a.geom, b.geom)
AND NOT ST_Touches(a.geom, b.geom);
Esta última consulta es especialmente útil para control de calidad topológica, uno de los requisitos del IGAC para la entrega de información catastral.
Calcular área total por vereda
SELECT v.nombre AS vereda,
COUNT(t.id) AS num_predios,
SUM(ST_Area(t.geom)) AS area_total_m2
FROM terrenos t
JOIN veredas v ON ST_Contains(v.geom, ST_Centroid(t.geom))
GROUP BY v.nombre
ORDER BY num_predios DESC;
Conexión con QGIS
QGIS se conecta nativamente a PostGIS. Para configurar la conexión:
- Abrir QGIS y ir a Capa > Añadir capa > Añadir capa PostGIS
- Crear una nueva conexión con los datos del servidor (host, puerto, base de datos, usuario)
- Conectar y seleccionar las tablas que se desean cargar como capas
Una vez conectado, cualquier edición realizada en QGIS se guarda directamente en la base de datos. No hay necesidad de exportar, importar ni sincronizar archivos.
Esta integración es la que usamos en Terraes: los técnicos de campo trabajan en QGIS conectados a la base de datos PostGIS central, y los cambios están disponibles inmediatamente para todo el equipo.
Por qué GEOSAT eligió PostGIS para Terraes
Cuando diseñamos Terraes, evaluamos varias opciones: File Geodatabase de Esri, GeoPackage, Oracle Spatial y PostGIS. Elegimos PostGIS por:
- Costo cero de licenciamiento: crítico para municipios con presupuestos limitados
- Rendimiento probado: manejamos bases de datos con cientos de miles de predios sin problemas
- Compatibilidad con LADM-COL: herramientas como ili2db permiten crear el esquema LADM-COL directamente en PostGIS
- Ecosistema abierto: se integra con QGIS, GeoServer, Django y cualquier herramienta que soporte SQL estándar
PostGIS no es la única opción válida, pero para catastro multipropósito en Colombia es, en nuestra experiencia, la más equilibrada entre costo, rendimiento y flexibilidad.
Si quiere conocer cómo implementamos PostGIS en sus proyectos catastrales, contáctenos.