Capa vectorial OpenLayers WFS

8

Estoy tratando de agregar una capa vectorial con una capa WFS y no funciona. ¿Alguien puede señalar una solución?

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"
                    })
                });

En la configuración de GeoServer, tengo un espacio de trabajo 'myWorkspace' , una tienda 'myStore' y una capa 'myLayer' y WFS está habilitado. También en la pestaña 'publicación' de mi capa en 'Estilo predeterminado de configuración WMS' He seleccionado 'polígono' ya que myLayer es multipolígono.

¿Qué estoy haciendo mal?

¿Se supone que debo especificar el nombre del espacio de trabajo en la propiedad 'featureNS'?

¿Hay un buen tutorial para OpenLayers?
He leído los documentos que son muy pobres y los ejemplos no siempre me ayudan. También leí el manual de usuario de GeoServer y lo encontré muy bueno.

Argiropoulos Stavros
fuente
1
¿Su aplicación OpenLayers se ejecuta en el puerto 80 o en el puerto 8080?
geographika
1
¿Puedes ver el resultado de la solicitud en Firebug?
Ian Turton

Respuestas:

13

Bien, algunas cosas cambiaría y volvería a intentarlo:

  1. Asegúrese de que su valor de featureNS esté en la "Editar página de espacio de trabajo bajo URI de espacio de nombres" en su GEOSERVER. No use algo tan genérico como " http://postgis.org ". Use algo como " http: // yourdomain / application / catalogLayer " o algo único como eso. Puedes inventar este URI, solo hazlo único.
  2. Tienes un nuevo BBOX () como estrategia, pero ¿qué tiene esa caja como dimensiones? Lo cambiaría a [new OpenLayers.Strategy.Fixed ()] para probarlo.
  3. featureType no es realmente el tipo de geometría, es su "Nombre de capa" en GEOSERVER (lo sé, engañoso).
  4. geometryName es el nombre del campo en su base de datos postgis que tiene el tipo de datos Geometry. En GEOSERVER, en "Editar capa" puede ver en la parte inferior "Detalles del tipo de característica". Allí verá un campo con el tipo "Geometría". Use el valor debajo de la columna de propiedades.

FeatureNS

ingrese la descripción de la imagen aquí

featureType

ingrese la descripción de la imagen aquí

geometryName

ingrese la descripción de la imagen aquí

CaptDragon
fuente
1
Buen trabajo, gracias por compartir eso. He descubierto que es imprescindible configurar el NS para que sea correcto, y NO usar caracteres especiales como: en los nombres de las capas.
JayCrossler