A maneira tradicional de usar os dados de um banco de dados é configurar uma tabela ou uma visão como uma nova camada no GeoServer. A partir do GeoServer 2.1.0 o usuário tem a possibilidade de criar uma nova camada, especificando uma consulta SQL, sem a necessidade de realmente criar uma view no banco de dados.

Uma SQL View parametrizada é baseada em uma consulta SQL que contém parâmetros cujos valores podem ser dinamicamente fornecido juntamente com as requisições WMS ou WFS. Um parâmetro é vinculado por sinais %, pode ter um valor padrão e deve ter sempre uma expressão regular de validação.

Para seu melhor entendimento, vamos criar uma camada a partir de um SQL View parametrizada:

1. A fim de criar uma SQL View parametrizada execute as etapas 1 e 2 do post anterior e depois insira os seguintes parâmetros:

SELECT date_part('year'::text, t1.obs_datetime) AS obs_year, t1.storm_num, t1.storm_name, t1.wind, t2.wind AS wind_end, t1.press, t2.press AS press_end, t1.obs_datetime, t2.obs_datetime AS obs_datetime_end, st_makeline(t1.geom, t2.geom) AS geom
FROM storm_obs t1
JOIN ( SELECT storm_obs.id, storm_obs.storm_num, storm_obs.storm_name, storm_obs.wind, storm_obs.press, storm_obs.obs_datetime, storm_obs.geom
           FROM storm_obs) t2 ON (t1.obs_datetime + '06:00:00'::interval) = t2.obs_datetime AND t1.storm_name::text = t2.storm_name::text
WHERE
        date_part('year'::text, t1.obs_datetime) BETWEEN %MIN_OBS_YEAR% AND %MAX_OBS_YEAR%
ORDER BY date_part('year'::text, t1.obs_datetime), t1.storm_num, t1.obs_datetime

2. Clique sobre os parâmetros do SQL. O GeoServer irá criar automaticamente os campos com os parâmetros especificados na visão:

sqlviews_parametricsql_guess_params

3. Preencha alguns valores padrão para os parâmetros, de modo que GeoServer possa executar a consulta e inspecionar os resultados nas próximas etapas. Defina 2020 para MAX_OBS_YEAR e 0 para MIN_OBS_YEAR.

4. Atualize os atributos, verifique o SRID e publique a camada. Na configuração atribuia o estilo storm_track_interval estilo à camada como estilo padrão.

sqlviews_parametricsql_publishing

5. Clique em OpenLayers na tela de pré-visualização da camada v_storm_track_interval.

6. À primeira vista você não vai ver nada, já que a camada está usando os parâmetros padrão para os anos de observação. Especifique dois anos para a exibição adicionando este parâmetro no final do Pedido GetMap:

&viewparams=MIN_OBS_YEAR:2000;MAX_OBS_YEAR:2000

Você deve obter uma requisição como esta:

http://localhost:8083/geoserver/geosolutions/wms?service=WMS&version=1.1.0&request=GetMap&layers=geosolutions:v_storm_track_interval&styles=&bbox=-180.0,-90.0,180.0,90.0&width=660&height=330&srs=EPSG:4326&format=application/openlayers&viewparams=MIN_OBS_YEAR:2000;MAX_OBS_YEAR:2000

7. Agora você é capaz de ver os furacões e também escolher dinamicamente o intervalo de anos de observação de seu interesse.

sqlviews_parametricsql_preview

Fonte: GeoSolutions