<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 12pt;
font-family:Calibri
}
--></style></head>
<body class='hmmessage'><div dir='ltr'><div>Ola Pedro,</div><div><br></div><div>Calculo que estejas a trabalhar com o openlayers 2 certo?</div><div><br></div><div>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.</div><div><br></div><div><span style="font-size: 12pt;">Para filtrares no openlayers (cliente), s</span><span style="font-size: 12pt;">upondo que estas a trabalhar com openlayers 2 e</span> que estejas a ver este exemplo: <a href="http://dev.openlayers.org/examples/getfeatureinfo-popup.html" target="_blank" style="font-size: 12pt;">http://dev.openlayers.org/examples/getfeatureinfo-popup.html</a> </div><div><br></div><div>D<font size="3">eves estar a utilizar o WMSGetFeatureInfo, </font>não<font size="3"> 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 </font>eventListeners e aqui dentro o evento getfeatureinfo. No <span style="font-size: 12pt;">getfeatureinfo deves ter algo do genero:</span></div><div><br></div><div><div>        info = new OpenLayers.Control.WMSGetFeatureInfo({</div><div>            url: 'http://demo.opengeo.org/geoserver/wms', </div><div>            title: 'Identify features by clicking',</div><div>            layers: [layer1, layer2, layerx]</div><div>            queryVisible: true,</div><div>            eventListeners: {</div><div>                getfeatureinfo: function(event) {</div><div><div>                      aqui estas a fazer coisas!</div><div>                      experimenta fazer: </div><div>                      console.log(event.text);</div></div><div>                    ));</div><div>                }</div><div>            }</div><div>        });</div></div><div><br></div><div>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 <span style="font-size: 12pt;">WMSGetFeatureInfo com o parametro - </span>infoFormat: 'text/plain' ou <font size="3">infoFormat: '</font>application/json<font size="3">' dependendo de como queres que a resposta venha. </font></div><div><font size="3"><br></font></div><div><font size="3">da uma vista de olhos em: </font></div><div><a href="http://dev.openlayers.org/docs/files/OpenLayers/Control/WMSGetFeatureInfo-js.html" target="_blank">http://dev.openlayers.org/docs/files/OpenLayers/Control/WMSGetFeatureInfo-js.html</a></div><div><br></div><div>e em</div><div><br></div><div><a href="http://docs.geoserver.org/stable/en/user/services/wms/reference.html" target="_blank">http://docs.geoserver.org/stable/en/user/services/wms/reference.html</a></div><div><br></div><div><br></div><div>Boa sorte</div><div>Abraço</div><div>Luís Calisto</div><div><br></div><br><br><div>> Date: Fri, 19 Sep 2014 02:47:14 -0700<br>> From: henriques.pedro.mf@gmail.com<br>> To: portugal@lists.osgeo.org<br>> Subject: [Portugal] WMSGetFeatureInfo OpenLayers/Geoserver<br>> <br>> Boas,<br>> <br>> Precisava aqui de uma ajudinha :)<br>> No desenvolvimento de aplicação websig usando as ferramentas<br>> GeoServer+Openlayers+GeoExt  encontro-me perante uma duvida relativa ao<br>> control WMSGetFeatureInfo (até pode ser algo simples que me esteja a<br>> escapar :-p).<br>> <br>> É possível filtrar os campos que aparecem no Popup depois de se fazer o<br>> WMSGetFeatureInfo???<br>> Na imagem em anexo, a título de exemplo são devolvidos todos os campos da<br>> tabela de limite_municipio, e o objetivo seria aparecer só o campo<br>> município e não todos.<br>> <br>> Se sim, é do lado o OpenLayers/GeoExt ou do lado do GeoServer?<br>> <br>> Em alternativa, posso criar uma Sql View no GeoServer e ai sim definir<br>> quais os campos, mas em termos de performance tenho receio que seja<br>> prejudicial.<br>> <br>> Desde já, obrigado :)<br>> <br>> <br>> Cumprimentos,<br>> Pedro Henriques<br>> <br>> <br>> identify.png (648K) <http://osgeo-org.1560.x6.nabble.com/attachment/5162859/0/identify.png><br>> <br>> <br>> <br>> <br>> --<br>> View this message in context: http://osgeo-org.1560.x6.nabble.com/WMSGetFeatureInfo-OpenLayers-Geoserver-tp5162859.html<br>> Sent from the OSGeo Portuguese Local Chapter mailing list archive at Nabble.com.<br>> _______________________________________________<br>> Portugal mailing list<br>> Portugal@lists.osgeo.org<br>> http://lists.osgeo.org/mailman/listinfo/portugal<br></div>                                      </div></body>
</html>