[OpenLayers-Dev] Generating a valid WFS object

Tim Schaub tschaub at opengeo.org
Fri Jul 9 17:39:52 EDT 2010


Hey-

A few things:

The featureType property is the local feature type name.  In your case, 
I'm guessing this would be "poi" (not "tiger:poi").

The featureNS corresponds to the workspace URL in GeoServer.  If you 
have a workspace named "tiger" with the "http://postgis.org" URL, then 
use that URL.  I don't think the workspace form should allow you to 
enter "http://postgis.org <http://postgis.org/>", but I could be wrong 
about that.

You can only make requests for features on the same origin that is 
serving up your application (see "same origin policy").  If this page is 
served up from some place like http://ubuntu:8080/mymap.html then your 
layer will work with the url you provided for your WFS.  If not, then 
you need to proxy GeoServer on the same origin that serves up your 
application (see "proxy geoserver on port 80" for details). 
Alternatively, you can set up a proxy next to your application loader 
and set OpenLayers.ProxyHost (see "openlayers faq").

If your WFS is on the same origin as your application, use a relative 
URL so things will still work if you change domains.

Finally, if your map is not in EPSG:32632, then you'll likely want to 
request features in your map projection.  OpenLayers can transform 
coordinates client-side, but you'd need to provide the proj4js 
definition for EPSG:32632 and your map projection.  If your OpenLayers 
map is also in EPSG:32632, then you're set.

A guess at what might work for you (with some work):

     layer = new OpenLayers.Layer.Vector("WFS", {
         strategies: [new OpenLayers.Strategy.BBOX()],
         protocol: new OpenLayers.Protocol.WFS({
             url: "/geoserver/wfs",
             featureType: "poi",
             featureNS: "http://postgis.org",
             srsName: "EPSG:32632",
             version: "1.1.0"
         })
     });


Hope that helps,
Tim

On 7/9/10 2:50 PM, Ulrik Balslev wrote:
> Hi dev list,
>
> Using OpenLayers & Geoserver for WMS seems straight forward and works
> OK, but I cannot get it to work for WFS. I can't seem to create a valid
> OpenLayers layer object.
>
> A simple HTML page like this, gives a layer ('wfslayer'), that has no
> features (no data).
>
> Any hints? - Is it a security issue?
>
> regs.
>
> <html xmlns="http://www.w3.org/1999/xhtml">
> <head>
> <title>WFS test!</title>
> <script src="./OpenLayers.js" type="text/javascript"></script>
> <script>
>          var wfslayer;
>         OpenLayers.ProxyHost = "proxy.cgi?url=";
>
>          function init() {
>
>      wfslayer = new OpenLayers.Layer.Vector("WFS", {
>              strategies: [new OpenLayers.Strategy.BBOX()],
>              protocol: new OpenLayers.Protocol.WFS({
>                  url: "http://ubuntu:8080/geoserver/wfs",
>                  featureType: "tiger:poi",
>                  featureNS: "http://postgis.org <http://postgis.org/>",
>                  srsName: "EPSG:32632",
>                  version: "1.1.0"
>                })
> });
>            }
> </script>
> </head>
> <body onload="init()">
> </body>
> </html>
>
>
>
> _______________________________________________
> Dev mailing list
> Dev at openlayers.org
> http://openlayers.org/mailman/listinfo/dev


-- 
Tim Schaub
OpenGeo - http://opengeo.org
Expert service straight from the developers.



More information about the Dev mailing list