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

Servicios OGC,
CQL y Seguridad

WMS · WFS · WMTS · Filtros espaciales · Control de acceso

⏱ 2 horas🔒 Seguridad👨‍💻 Daniel Quisbert
Al finalizar esta clase
¿Qué vamos a lograr hoy?
1
Construir peticiones WMS, WFS y WMTS manualmente
Entender cada parámetro — GetCapabilities, GetMap, GetFeature.
2
Aplicar filtros CQL espaciales y de atributos
DWITHIN, INTERSECTS, CONTAINS y combinaciones con AND/OR.
3
Configurar GeoWebCache para WMTS
Pre-generar teselas y acelerar el rendimiento del mapa base.
4
Crear usuarios, roles y restricciones por capa
Quién puede ver qué — control granular por workspace y layer.
DQ
Daniel Quisbert
ARTECLAB · danielquisbert.com
Sección 1 de 4
WMS · WFS · WMTS
Peticiones reales en el navegador
Servicios OGC
Las tres operaciones más usadas
WMS GetMap
Devuelve imagen PNG del mapa renderizado con el estilo configurado.
Parámetros clave:
LAYERS, BBOX, CRS, WIDTH, HEIGHT, FORMAT, STYLES, CQL_FILTER
WFS GetFeature
Devuelve los datos vectoriales en GeoJSON, GML o CSV.
Parámetros clave:
TYPENAMES, CQL_FILTER, COUNT, OUTPUTFORMAT, STARTINDEX
WMTS GetTile
Devuelve una tesela pre-generada de la caché de GeoWebCache.
Parámetros clave:
LAYER, TILEMATRIXSET, TILEMATRIX, TILEROW, TILECOL
🆕
GeoServer 3: cambio en CORS
La configuración CORS ya no va en web.xml (Jetty 12). Debe configurarse en el archivo de contexto de Tomcat o en la configuración del módulo CORS de Jetty.
Práctica
Peticiones OGC reales — cópielas y pruébelas
WMS GetMap con filtro CQL
http://localhost:8080/geoserver/geoserver3_curso/wms? SERVICE=WMS&VERSION=1.3.0&REQUEST=GetMap &LAYERS=geoserver3_curso:municipios &CRS=EPSG:4326&BBOX=-69.65,-22.90,-57.45,-9.67 &WIDTH=800&HEIGHT=600&FORMAT=image/png&TRANSPARENT=true &CQL_FILTER=departamento='LA PAZ'
WFS GetFeature — descarga GeoJSON
http://localhost:8080/geoserver/geoserver3_curso/wfs? SERVICE=WFS&VERSION=2.0.0&REQUEST=GetFeature &TYPENAMES=geoserver3_curso:municipios &CQL_FILTER=departamento='BENI' &OUTPUTFORMAT=application/json&COUNT=50
Sección 2 de 4
Filtros CQL
Consultas espaciales y de atributos en la URL
CQL — Common Query Language
Filtros que todo GIS profesional debe dominar
Filtros de atributos
# Igualdad departamento = 'SANTA CRUZ' # Rango numérico superficie_km2 BETWEEN 1000 AND 5000 # Lista de valores departamento IN ('LA PAZ', 'ORURO', 'POTOSI') # Combinación lógica departamento = 'LA PAZ' AND poblacion > 50000
Filtros espaciales
# Radio de 100km desde un punto DWITHIN(geom, POINT(-68.15 -16.50), 100000, meters) # Intersección con polígono INTERSECTS(geom, POLYGON((-70 -14,-66 -14,-66 -18,-70 -18,-70 -14))) # Combinado: atributos + espacio departamento = 'LA PAZ' AND INTERSECTS(geom, POLYGON(...))
CQL se ejecuta en el servidor (PostGIS si es el origen). El cliente solo recibe los features que cumplen la condición.
Sección 3 de 4
GeoWebCache
y WMTS
Velocidad extrema para mapas base
Rendimiento
WMS vs WMTS — la diferencia de velocidad
wms-vs-wmts-speed.jpg
Diagrama comparativo: WMS genera vs WMTS sirve desde caché
1
Activar caché para la capa
GeoWebCache → Caching Defaults → activar la capa del mapa base.
2
Seed — generar teselas anticipadas
Seleccionar zoom 0-12, BBox del área de estudio, formato PNG.
3
Truncar cuando los datos cambian
GeoWebCache → Tile Layers → Truncate. Regenera solo la zona afectada.
WMS: 200-2000ms por imagen. WMTS desde caché: 5-20ms. Para un mapa base con miles de usuarios la diferencia es enorme.
Sección 4 de 4
Seguridad:
usuarios y roles
Quién puede ver qué en GeoServer
Control de acceso
El modelo de seguridad de GeoServer
👤
Usuarios
admin_dq · editor_gis · viewer_publico
🎭
Roles
ADMIN · EDITOR · AUTHENTICATED · ROLE_ANONYMOUS
🔐
Reglas de acceso
Por workspace · Por capa · Por servicio
🆕
GeoServer 3: OIDC reemplaza Keycloak
La extensión OIDC soporta OAuth2 estándar: Keycloak, Auth0, Google, Azure AD. Más flexible que la extensión específica de Keycloak de GS2.
Reglas típicas para un proyecto
Workspace público (todos pueden ver WMS): geoserver3_curso.*.r = ROLE_ANONYMOUS Capa privada (solo autenticados): geoserver3_curso.datos_privados.r = AUTHENTICATED Solo admin puede escribir (WFS-T): geoserver3_curso.*.w = ADMIN
Resumen
Lo que aprendiste hoy
  • WMS devuelve imágenes, WFS devuelve datos, WMTS devuelve teselas pre-generadas
  • TRANSPARENT=true + FORMAT=image/png permite superponer capas WMS en un visor
  • CQL combina filtros de atributos y espaciales en la URL sin código adicional
  • DWITHIN(geom, POINT(x y), distancia, meters) selecciona features en un radio
  • GeoWebCache pre-genera teselas: 5-20ms de respuesta vs 200-2000ms de WMS dinámico
  • En GS3, CORS no va en web.xml — cambio importante al migrar desde GS2
🏆
Próxima y última clase
Proyecto Final: IDE Municipal completa. Usamos todo lo que aprendimos en las 7 clases anteriores.
Fin de la Clase 7

Servicios configurados.
Datos protegidos.

Última clase: construimos la IDE Municipal completa con OpenLayers.

Cuestionario — Clase 7: OGC + Seguridad
12 preguntas · 2 intentos
Ir al cuestionario →
🗓 Última clase: Proyecto Final🏆 ¡Casi terminamos!