ARTECLABGeoServer 3 — De cero a producciónClase 3
1 / 13
Módulo 1 · Clase 3 ·

PostGIS y Conversión
de Datos Geoespaciales

Instala PostGIS en la VM, importa Shapefiles con ogr2ogr y conecta la base de datos con GeoServer

⏱ 2 horas🗄️ PostGIS👨‍💻 Daniel Quisbert
Al finalizar esta clase
¿Qué vamos a lograr hoy?
1
Instalar PostgreSQL y PostGIS en la VM Debian 13
Con apt — sin instaladores manuales. Crear la base de datos espacial del curso.
2
Importar un Shapefile con ogr2ogr
Una línea de comando convierte el .shp a una tabla PostGIS lista para publicar.
3
Conectar GeoServer con PostGIS como Store
Crear un Data Store de tipo PostGIS en GeoServer y publicar la primera capa desde la base de datos.
4
Verificar la capa en el Layer Preview
Confirmar que GeoServer sirve los datos de PostGIS correctamente como WMS y WFS.
DQ
Daniel Quisbert
ARTECLAB · geoserver-pro.danielquisbert.com
Concepto clave
¿Por qué PostGIS en lugar de Shapefiles directos?
📁
Shapefile directo en GeoServer
Simple para empezar. GeoServer lee el archivo .shp directamente. Sin base de datos. Ideal para datos estáticos o pruebas rápidas.
🗄️
PostGIS como fuente
Los datos viven en la base de datos. Múltiples capas en un solo Store. Permite filtros SQL, vistas y datos que cambian en el tiempo.
En este curso usamos los dos
Clases 3–4: Shapefiles directo para entender el flujo básico. Clase 6: PostGIS para datos más complejos y consultas SQL desde GeoServer.
📍
PostGIS estará instalado en la misma VM Debian 13 donde ya corre GeoServer. Todo en un solo servidor — simple y sin complicaciones de red.
Parte 1
Instalar PostgreSQL
y PostGIS en Debian 13
Todo desde apt — sin descargas manuales
Instalación
PostgreSQL + PostGIS en tres comandos
En la terminal de la VM
# 1. Actualizar repositorios sudo apt update # 2. Instalar PostgreSQL y PostGIS sudo apt install -y postgresql postgis # 3. Verificar que PostgreSQL está activo sudo systemctl status postgresql # Debe mostrar: active (running) # 4. Crear la base de datos del curso sudo -u postgres psql -c "CREATE DATABASE geoserver_curso;" # 5. Activar la extensión PostGIS sudo -u postgres psql -d geoserver_curso -c "CREATE EXTENSION postgis;" # 6. Verificar PostGIS instalado sudo -u postgres psql -d geoserver_curso -c "SELECT PostGIS_Version();" # Debe mostrar la versión de PostGIS
Sin configuración adicional
En Debian 13, apt instala PostgreSQL listo para usar. El usuario postgres se crea automáticamente como superusuario de la base de datos.
💡
Una sola vez
Esta instalación queda permanente en la VM. El próximo reinicio, PostgreSQL arranca solo gracias a systemctl enable que apt configura automáticamente.
Configuración
Crear usuario para GeoServer
Crear usuario con acceso limitado
# Entrar a PostgreSQL como superusuario sudo -u postgres psql -- Crear usuario para GeoServer CREATE USER geoserver_user WITH PASSWORD 'geoserver123'; -- Dar acceso a la base de datos del curso GRANT CONNECT ON DATABASE geoserver_curso TO geoserver_user; -- Dar acceso a las tablas \c geoserver_curso GRANT USAGE ON SCHEMA public TO geoserver_user; GRANT SELECT ON ALL TABLES IN SCHEMA public TO geoserver_user; -- Salir de psql \q
⚠️
Seguridad básica
GeoServer solo necesita leer datos (SELECT). No le des permisos de superusuario. En producción usa contraseñas seguras — aquí usamos una simple para el curso.
🔗
Estos mismos datos de conexión (host, puerto, usuario, contraseña) los usaremos en el Store de GeoServer más adelante en esta clase.
Parte 2
Importar datos
con ogr2ogr
Un Shapefile de Bolivia a PostGIS en una sola línea
ogr2ogr
¿Qué es ogr2ogr y para qué lo usamos?
🛠️
ogr2ogr es parte de GDAL
GDAL (Geospatial Data Abstraction Library) es el estándar de la industria para leer y escribir formatos geoespaciales. ogr2ogr convierte entre formatos vectoriales: Shapefile, GeoJSON, PostGIS, KML y más de 80 formatos.
Shapefile → PostGIS
El uso más frecuente del curso. Importa departamentos, municipios o vialidad de Bolivia directamente a la base de datos.
GeoJSON → PostGIS
También funciona con otros formatos. ogr2ogr lee el origen y escribe en el destino automáticamente.
Instalar GDAL en Debian 13
sudo apt install -y gdal-bin # Verificar instalación ogr2ogr --version # Debe mostrar: GDAL 3.x.x # Ver qué formatos soporta ogr2ogr --formats | grep -i post # Debe mostrar PostgreSQL/PostGIS
Importar datos
Shapefile de Bolivia → PostGIS con ogr2ogr
El comando completo — una sola línea
# Importar departamentos de Bolivia ogr2ogr \ -f "PostgreSQL" \ PG:"host=localhost port=5432 dbname=geoserver_curso user=postgres" \ departamentos.shp \ -nln departamentos \ -nlt PROMOTE_TO_MULTI \ -t_srs EPSG:4326 \ -overwrite # Verificar que se importó sudo -u postgres psql -d geoserver_curso -c \ "SELECT count(*) FROM departamentos;" # Bolivia tiene 9 departamentos
Explicación de cada parámetro
-f "PostgreSQL" → formato de destino PG:"..." → cadena de conexión departamentos.shp → archivo de origen -nln departamentos → nombre de la tabla -nlt PROMOTE_TO_MULTI → unifica geometrías -t_srs EPSG:4326 → reproyectar si hace falta -overwrite → sobreescribir si ya existe
ogr2ogr crea la tabla sola
No necesitas CREATE TABLE. ogr2ogr lee los campos del Shapefile y crea la tabla con las columnas y tipos de datos correctos, incluyendo la columna de geometría.
⚠️
Ejecutar desde la misma VM
El Shapefile debe estar en la VM. Si lo tienes en tu computadora, cópialo primero con scp archivo.shp usuario@ip-vm:/ruta/
Parte 3
Conectar GeoServer
con PostGIS
Crear el Store y publicar la primera capa desde la base de datos
En la interfaz de GeoServer
Crear el Store de PostGIS
1
Datos → Stores → Agregar nuevo Store
Elegir PostGIS como tipo de fuente de datos.
2
Completar los datos de conexión
host: localhost · port: 5432 · database: geoserver_curso · user: geoserver_user · passwd: geoserver123
3
Hacer clic en "Guardar"
GeoServer se conecta a PostgreSQL. Si los datos son correctos, aparece la lista de tablas disponibles.
4
Publicar la capa "departamentos"
Hacer clic en "Publicar" junto a la tabla departamentos. GeoServer detecta el SRS y el Bounding Box automáticamente.
5
Verificar en Layer Preview
Datos → Layer Preview → buscar la capa → Abrir con OpenLayers. Deben aparecer los 9 departamentos de Bolivia.
Resumen
Lo que aprendiste hoy
  • PostgreSQL y PostGIS se instalan en Debian 13 con apt install postgresql postgis — sin configuración adicional
  • Crear la base de datos: CREATE DATABASE + CREATE EXTENSION postgis activa las funciones espaciales
  • ogr2ogr es parte de GDAL y convierte cualquier formato vectorial a PostGIS en una sola línea
  • ogr2ogr crea la tabla automáticamente — no necesitas definir el schema manualmente
  • El Store de PostGIS en GeoServer usa los datos de conexión: host, puerto, base de datos, usuario y contraseña
  • Una vez publicada desde PostGIS, la capa está disponible como WMS y WFS igual que un Shapefile
🗺️
Próxima clase
Publicación completa de capas vectoriales y raster. Más Shapefiles y el primer GeoTIFF.
Fin de la Clase 3

PostGIS activo.
Los datos, listos.

Próxima clase: publicación de capas vectoriales y raster en GeoServer.

Cuestionario — Clase 3: PostGIS y ogr2ogr
12 preguntas · 2 intentos · Retroalimentación inmediata
Ir al cuestionario →
🗓 Próxima: Publicación de capas📥 Ten listos tus Shapefiles de Bolivia