[Portugal] WMSGetFeatureInfo OpenLayers/Geoserver

Luis Calisto luis.calisto hotmail.com
Segunda-Feira, 22 de Setembro de 2014 - 06:32:57 PDT


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: henriques.pedro.mf  gmail.com
> To: portugal  lists.osgeo.org
> 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
> Portugal  lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/portugal
 		 	   		  
-------------- próxima parte ----------
Um anexo em HTML foi limpo...
URL: <http://lists.osgeo.org/pipermail/portugal/attachments/20140922/ea5546f1/attachment.html>


More information about the Portugal mailing list