Bases de datos · Avanzado
SQL espacial: capas virtuales y PostGIS
Consultas SQL sobre tus capas sin salir de QGIS, y chuleta PostGIS.
Por Bernabé Hinojosa · Actualizado el 21/10/2026
Capas virtuales: SQL sin base de datos
Capa › Crear capa › Nueva capa virtual. Puedes hacer consultas SQL sobre cualquier capa cargada (la geometría se llama geometry):
SELECT m.nombre, count(p.id) AS n_pozos FROM municipios m JOIN pozos p ON ST_Intersects(m.geometry, p.geometry) GROUP BY m.nombre
Chuleta PostGIS
| Función | Uso |
|---|---|
ST_Intersects(a, b) | ¿Se tocan? Usa índice: es rápida. |
ST_DWithin(a, b, 100) | ¿Están a menos de 100 unidades? Mucho mejor que ST_Distance < 100. |
ST_Buffer(geom, 50) | Buffer |
ST_Intersection(a, b) | Geometría de la parte común |
ST_Union(geom) | Disolver (función de agregado con GROUP BY) |
ST_Area(geom) | Área en unidades del SRC. Con geom::geography, en m² sobre el elipsoide. |
ST_Transform(geom, 25830) | Reproyectar |
ST_MakeValid(geom) | Corregir geometrías |
ST_Centroid, ST_PointOnSurface | Punto central. El segundo garantiza que el punto cae dentro del polígono. |
Crea siempre un índice espacial: CREATE INDEX ON parcelas USING GIST (geom);
¿GeoPackage o PostGIS?
GeoPackage para trabajo individual y para entregar. PostGIS cuando varias personas editan a la vez, hay millones de objetos o los datos alimentan una web.