Olá,<br>primeiramente vou explicar o objetivo do código que vou falar no email<br><br>O objetivo é clicka sobre um layer WMS e retorna via JSON usando WFS o campo idreghidro da feature clicada<br><br>para coseguir cumprir esse objetivo eu fiz da seguinte forma:<br>
tenho um layer WMS que no onClick executa umachamada ao WFS para pegar qual feature foi clickada,<br>o problema é que o retorno do WFS está meio estranho tem horas que clico em locais que tem features e o retorno vem sem nenhuam feature, ou tem horas que clico em uma feature e vem a feature próxima junto no retorno.<br>
acredito que eu não estou utilizando a melhor maneira para fazer isso. Porem fiz dess emodo para poder obter o retorno no formato de JSON, pois o que me interessa do retorno é apenas o campo "idreghidro".<br>acredito que o problema pode estar na maneira como monto a BBOX. <br>
<br>gostaria de saber se tem um jeito melhor de fazer isso que quero ou se tem algum meio de refinar a precisão da BBOX que estou criando<br>abaixo segue o código que utilizo:<br><br> var layer = new OpenLayers.Layer.WMS(<br>
nome, <b>url_do_meu_server</b>,<br> {<br> LAYERS: layerName,<br> transparent: true,<br> tiled: true,<br> projection: "EPSG:900913"<br> },<br> {<br> displayOutsideMaxExtent: true<br>
});<br><br> layer.events.on({ "click": function (evt) {<br> var geographic = new OpenLayers.Projection("EPSG:4326");<br> var mercator = new OpenLayers.Projection("EPSG:900913");<br>
<b> //nesse ponto utilizo o clientX e Y porem talvez ai esteja o erro pois o evento retorna diversos X e Y diferentes, mas com os teste esse parece o mais correto</b><br> var bound = pixelToBounds(new OpenLayers.Pixel(evt.clientX, evt.clientY), mapa); <br>
bound.transform(mercator, geographic);<br> var bbox = bound.toBBOX();<br> console.debug(bbox);<br> OpenLayers.loadURL("<a href="http://servidor:8080/geoserver/sintaq/ows?service=WFS&version=1.0.0&request=GetFeature&typeName=sintaq:reghidro&maxFeatures=50&outputFormat=json&propertyName=idreghidro,reg_rafica&bbox=">http://servidor:8080/geoserver/sintaq/ows?service=WFS&version=1.0.0&request=GetFeature&typeName=sintaq:reghidro&maxFeatures=50&outputFormat=json&propertyName=idreghidro,reg_rafica&bbox=</a>" + bbox,<br>
'', layer, function (response) {<br> console.debug(JSON.parse(response.responseText));<br> });<br> }<br> });<br> mapa.addLayer(layer);<br><br><br><br>desde já, agradeço<br clear="all">
<br>-- <br>Rodrigo Silva de Melo<br>