Camada de vetor OpenLayers WFS


8

Estou tentando adicionar uma camada de vetor com uma camada WFS e não está funcionando. Alguém pode apontar uma solução?

Código OpenLayers:

var wfs = new OpenLayers.Layer.Vector(
                "Stavros Features",
                {
                    strategies: [new OpenLayers.Strategy.BBOX()]
                    ,projection: new OpenLayers.Projection("EPSG:4326")
                    ,protocol: new OpenLayers.Protocol.WFS({
                        version: "1.1.0"
                        ,srsName: "EPSG:4326"
                        ,url: "http://localhost:8080/geoserver/wfs"
                        ,featureNS :  "http://postgis.org"
                        ,featureType: "polygon"
                        ,geometryName: "the_geom"
                    })
                });

Na configuração do GeoServer, tenho um espaço de trabalho 'myWorkspace' , uma loja 'myStore' e uma camada 'myLayer' e WFS estão ativados. Também na guia 'publicação' da minha camada, no 'Estilo padrão das configurações do WMS' , selecionei 'polígono', pois o myLayer é multipolígono.

O que estou fazendo errado?

Devo especificar o nome do espaço de trabalho na propriedade 'featureNS'?

Existe um bom tutorial para o OpenLayers?
Eu li os documentos que são muito pobres e os exemplos nem sempre me ajudam. Também li o manual do usuário do GeoServer e achei muito bom.


1
Seu aplicativo OpenLayers está sendo executado na porta 80 ou 8080?
geographika

1
você pode ver o resultado da solicitação no firebug?
Ian Turton

Respostas:


13

Ok, algumas coisas que eu mudaria e tentaria outra vez:

  1. Verifique se o valor featureNS está em "Editar página da área de trabalho em URI do espaço para nome" no seu GEOSERVER. Não use algo tão genérico como " http://postgis.org ". Use algo como " http: // seudominio / aplicativo / catalogLayer " ou algo único assim. Você pode criar esse URI, apenas torná-lo único.
  2. Você tem o novo BBOX () como estratégia, mas o que essa caixa tem como dimensões? Eu mudaria para [novo OpenLayers.Strategy.Fixed ()] para teste.
  3. featureType não é realmente o tipo de geometria, é o seu "Nome da camada" no GEOSERVER (eu sei, enganoso).
  4. geometryName é o nome do campo no seu banco de dados postgis que possui o tipo de dados Geometry. No GEOSERVER, em "Editar camada", você pode ver na parte inferior "Detalhes do tipo de recurso". Lá você verá um campo com o tipo "Geometria". Use o valor na coluna de propriedades.

featureNS

insira a descrição da imagem aqui

featureType

insira a descrição da imagem aqui

geometryName

insira a descrição da imagem aqui


1
Bom trabalho, obrigado por compartilhar isso. Descobri que é imperativo definir o NS como correto e NÃO usar caracteres especiais como: nos nomes das camadas.
JayCrossler
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.