Ola Pedro,
Calculo que estejas a trabalhar com o openlayers 2 certo?
Ora bem tu podes filtrar os campos tanto do lado do geoserver como do lado do 
openlayers. O ideal seria o Geoserver enviar apenas os campos que necessitas 
porque assim cada vez que existe um request o geoserver nao esta a enviar dados 
desnecessários para o cliente. Mas la esta depende dos dados, se for pouca 
coisa talvez ate seja melhor fazeres isto no lado do cliente.
Para filtrares no openlayers (cliente), supondo que estas a trabalhar com 
openlayers 2 e que estejas a ver este exemplo: 
http://dev.openlayers.org/examples/getfeatureinfo-popup.html 
Deves estar a utilizar o WMSGetFeatureInfo, não te esqueças que aqui deves 
dizer quais as layers onde vais fazer request, caso nao digas nada ele vai 
fazer-te a todas as layers no mapa o que pode trazer depois mais informacao do 
que aquela que tu queres. Prosseguindo ... deves utilizar o eventListeners e 
aqui dentro o evento getfeatureinfo. No getfeatureinfo deves ter algo do genero:
        info = new OpenLayers.Control.WMSGetFeatureInfo({            url: 
'http://demo.opengeo.org/geoserver/wms',             title: 'Identify features 
by clicking',            layers: [layer1, layer2, layerx]            
queryVisible: true,            eventListeners: {                getfeatureinfo: 
function(event) {                      aqui estas a fazer coisas!               
       experimenta fazer:                       console.log(event.text);        
            ));                }            }        });
repara que a variável event tem a resposta em event.text e portanto tu podes 
filtrar/trabalhar esta string ou este texto normalmente como farias numa string 
ou entao como se fosse um json, dependento do formato em que o geoserver te 
envia os dados, este formato pode ser alterado no openlayers no 
WMSGetFeatureInfo com o parametro - infoFormat: 'text/plain' ou infoFormat: 
'application/json' dependendo de como queres que a resposta venha. 
da uma vista de olhos em: 
http://dev.openlayers.org/docs/files/OpenLayers/Control/WMSGetFeatureInfo-js.html
e em
http://docs.geoserver.org/stable/en/user/services/wms/reference.html

Boa sorteAbraçoLuís Calisto


> Date: Fri, 19 Sep 2014 02:47:14 -0700
> From: [email protected]
> To: [email protected]
> Subject: [Portugal] WMSGetFeatureInfo OpenLayers/Geoserver
> 
> Boas,
> 
> Precisava aqui de uma ajudinha :)
> No desenvolvimento de aplicação websig usando as ferramentas
> GeoServer+Openlayers+GeoExt  encontro-me perante uma duvida relativa ao
> control WMSGetFeatureInfo (até pode ser algo simples que me esteja a
> escapar :-p).
> 
> É possível filtrar os campos que aparecem no Popup depois de se fazer o
> WMSGetFeatureInfo???
> Na imagem em anexo, a título de exemplo são devolvidos todos os campos da
> tabela de limite_municipio, e o objetivo seria aparecer só o campo
> município e não todos.
> 
> Se sim, é do lado o OpenLayers/GeoExt ou do lado do GeoServer?
> 
> Em alternativa, posso criar uma Sql View no GeoServer e ai sim definir
> quais os campos, mas em termos de performance tenho receio que seja
> prejudicial.
> 
> Desde já, obrigado :)
> 
> 
> Cumprimentos,
> Pedro Henriques
> 
> 
> identify.png (648K) 
> <http://osgeo-org.1560.x6.nabble.com/attachment/5162859/0/identify.png>
> 
> 
> 
> 
> --
> View this message in context: 
> http://osgeo-org.1560.x6.nabble.com/WMSGetFeatureInfo-OpenLayers-Geoserver-tp5162859.html
> Sent from the OSGeo Portuguese Local Chapter mailing list archive at 
> Nabble.com.
> _______________________________________________
> Portugal mailing list
> [email protected]
> http://lists.osgeo.org/mailman/listinfo/portugal
                                          
_______________________________________________
Portugal mailing list
[email protected]
http://lists.osgeo.org/mailman/listinfo/portugal

Responder a