[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