[OSGeo-Brasil] Requisição WFS com openlayers

Rodrigo Silva de Melo rodrigosm87 em gmail.com
Quinta Janeiro 5 07:16:26 EST 2012


Olá,
primeiramente vou explicar o objetivo  do  código  que vou falar no email

O objetivo é clicka sobre um layer WMS e retorna via JSON usando WFS o
campo idreghidro da feature clicada

para  coseguir cumprir esse objetivo eu fiz da seguinte forma:
tenho um layer WMS que no onClick executa umachamada ao WFS para pegar
qual  feature foi clickada,
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.
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".
acredito que o problema pode estar na maneira como monto a BBOX.

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
abaixo segue o código que utilizo:

  var layer = new OpenLayers.Layer.WMS(
        nome, *url_do_meu_server*,
    {
        LAYERS: layerName,
        transparent: true,
        tiled: true,
        projection: "EPSG:900913"
    },
    {
        displayOutsideMaxExtent: true
    });

 layer.events.on({ "click": function (evt) {
        var geographic = new OpenLayers.Projection("EPSG:4326");
        var mercator = new OpenLayers.Projection("EPSG:900913");
*        //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*
        var bound = pixelToBounds(new OpenLayers.Pixel(evt.clientX,
evt.clientY), mapa);
        bound.transform(mercator, geographic);
        var bbox = bound.toBBOX();
        console.debug(bbox);
        OpenLayers.loadURL("
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="
+ bbox,
         '', layer, function (response) {
             console.debug(JSON.parse(response.responseText));
         });
    }
    });
    mapa.addLayer(layer);



desde já, agradeço

-- 
Rodrigo Silva de Melo
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: http://lists.osgeo.org/pipermail/brasil/attachments/20120105/209fd96c/attachment.html


Mais detalhes sobre a lista de discussão Brasil