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

Publicado: 23/08/2013 em Programação, Serviços IP
Tags:, , ,

1. Um recorte de código
Veja o recorte de código abaixo:


    var saveStrategy = new OpenLayers.Strategy.Save();   
    wfs = new OpenLayers.Layer.Vector("Editable Features", {
        strategies: [new OpenLayers.Strategy.BBOX(), saveStrategy],
        projection: new OpenLayers.Projection("EPSG:4326"),
        protocol: new OpenLayers.Protocol.WFS({
            version: "1.1.0",
            srsName: "EPSG:4326",
            url: "endereço-servidor:8080/geoserver/wfs/",
            featureNS :  "endereço-servidor/catalogteste",
            featureType: "escolas",
            geometryName: "the_geom",
            schema: "endereço-servidor:8080/geoserver/wfs/DescribeFeatureType?version=1.1.0&typename=teste:escolas"
        })
    });    
    mapa.addLayer(wfs);

a)Onde:

  • featureNS : {String} Feature namespace (opcional).
  • featureType : {String} feature typeName local (sem prefixo) (obrigatório).
  • geometryName: {String} Opcional, nome do atributo geometry. Se não fornecido, será utilizado o nome default que é ‘the_geom’.

b)Como identificar os parâmetros?
Basta acessar o Geoserver como administrador e verificar os parâmetros dos layers criados:

  • featureNS: no Geoserver –> Edit Workspace –> Namespace URI. O que será colocado em featureNS deve ser igual ao que temos neste campo do Geoserver.
  • geometryName: não fizemos citação porque utilizamos o nome default. Para verificar isto, no Geoserver –> Edit Layer (no caso o layer escolas) –> 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”.

c) Para entender um pouco mais

  • Strategy Class: vide post OpenLayers: compreendendo melhor um “Layer Vetorial”. Em síntese, a classe Strategy é utilizada com dois objetivos: construir a requisição e determinar o que fazer com os dados.
    • Strategy.Save: uma estratégia que “commit” as features recém-criadas ou modificadas. Por padrão, antes de persistir as mudanças a “strategy” espera por uma chamada de “salvar”. Ao configurar a estratégia com a opção “auto”, as mudanças podem ser salvas automaticamente.
    • Função Save: diz ao “protocol” para realizar o “commit” das features não salvas. Se a projeção do layer difere da projeção do mapa, as features serão transformadas na projeção do layer antes do “commit”.
  • Protocol Class: vide post OpenLayers: compreendendo melhor um “Layer Vetorial”. Em síntese, a classe Protocolo se refere a comunicação, ou seja, controla como o layer vetorial se comunica com o servidor de dados. Existem 2 (duas) subclasses: Protocol.HTTP e Protocol.WFS.

Observação: Para carregar/salvar dados de alguma fonte de dados externa ao script, necessita-se no mínimo definir as classes Protocol e Strategy.
Referências:
1- OpenLayers: utilizando o protocolo WFS para requisitar features de servidor remoto Geoserver
2- OpenLayers: compreendendo melhor um “Layer Vetorial”
3- OpenLayers.Strategy.Save

Anúncios
comentários
  1. Douglas disse:

    Olá, você tem algum exemplo completo de como adicionar um multipolygon no mapa e inseri-lo ao banco de dados ?

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