OpenLayers: utilizando o protocolo WFS para requisitar features de servidor remoto Geoserver

Publicado: 18/07/2013 em Programação, Serviços IP
Tags:, , ,

O primeiro desafio é saber especificar os parâmetros exigidos pela classe OpenLayers.Protocol.WFS para se fazer a requisição. Dois parâmetros são essenciais:

  • featureNS : {String} Feature namespace (opcional).
  • featureType : {String} feature typeName local (sem prefixo) (obrigatório).

Parâmetros adicionais:

  • geometryName: {String} Opcional, nome do atributo geometry. Se não fornecido, será utilizado o nome default que é ‘the_geom’.
  • outputFormat:  {String} Opcional, formato de saída para uso do WFS GetFeature requests. Pode ser de qualquer formato presente na WFS’s GetCapabilities response.

No nosso caso, utilizaremos a seguinte chamada:

var wfs = new OpenLayers.Layer.Vector("States", {
strategies: [new OpenLayers.Strategy.BBOX()],
protocol: new OpenLayers.Protocol.WFS({
version: "1.1.0",
url: "HTTP://endereço-servidor:8080/geoserver/wfs",
featureType: "ra31_df",
featureNS: "http://endereço-servidor/catalogcdes",
srsName: "EPSG:4326"
})
});

Como identificar os parâmetros? Basta acessar o Geoserver como administrador e verificar os parâmetros dos layers criados:
a)  featureNS: no Geoserver –> Edit Workspace –> Namespace URI. O que será colocado em featureNS deve ser igual ao que temos neste campo do Geoserver.
b) geometryName: não fizemos citação porque utilizamos o nome default. Para verificar isto, no Geoserver –> Edit Layer (no caso o layer ra31_df) –> Feature Type Details (que está no final da página). São encontradas aí o nome dos campos do layer. Para a geometria, vemos que o que está no geoserver é “the_geom”.

<!DOCTYPE html> 
<html lang='pt'> 
<head> 
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <script type='text/javascript' src='http://localhost/js/OpenLayers-2.12/OpenLayers.js'></script>
    <title>WFS</title>
    <script type='text/javascript'>
    var map;
    const HOSTNAME = "HTTP://nome-servidor:8080/geoserver/wms";
    //
    function init() {
        map = new OpenLayers.Map('map', {
            controls: [
                new OpenLayers.Control.PanZoom(),
                new OpenLayers.Control.MousePosition({}),
                new OpenLayers.Control.LayerSwitcher(),
                new OpenLayers.Control.Navigation()
            ]
        });
    //WMS Layer - baseLayer
    layer = new OpenLayers.Layer.WMS(
    'DF:RIDE',
    HOSTNAME,
    {layers: 'cdes:ride_df', transparent:true},{attribution:'Ride',visibility: true, 
      isBaseLayer:true,opacity:1,displayInLayerSwitcher:true}
    );
    //
    map.addLayer(layer);
    //
    map.setCenter(new OpenLayers.LonLat(-47.85,-15.80),10);
//
 var wfs = new OpenLayers.Layer.Vector("RAs", {
        strategies: [new OpenLayers.Strategy.BBOX()],
        protocol: new OpenLayers.Protocol.WFS({
            version: "1.1.0",
            url: "HTTP://nome-servidor:8080/geoserver/wfs",
            featureType: "ra31_df",
            featureNS: "http://nome-servidor/catalogcdes",
            srsName: "EPSG:4326"
        })
 }); 
 map.addLayer(wfs);
//
    }
    </script>
  </head>
  <body onload="init()">
<h1 id="title">WFS: Protocol.WFS</h1>
<p id="shortdesc">
    Demostra como usar o protocol WFS para buscar features em um servidor remoto e colocar estas informações
 em um layer vetorial tornando-as visiveis em um mapa.
</p>
<div id="map" style='width: 800px; height: 400px;'></div>
</body>
</html>

Referências:
OpenLayers: utilizando o protocolo WFS para salvar features no servidor remoto Geoserver

Deixe um comentário, pois isto é muito motivante para continuarmos este trabalho

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s