OpenLayers WFS-Vektorebene

8

Ich versuche, eine Vektorebene mit einer WFS-Ebene hinzuzufügen, und es funktioniert nicht. Kann jemand eine Lösung vorschlagen?

OpenLayers-Code:

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

In der GeoServer-Konfiguration habe ich einen Arbeitsbereich 'myWorkspace' , einen Store 'myStore' und eine Ebene 'myLayer' und WFS ist aktiviert. Auch auf der Registerkarte "Veröffentlichen" meiner Ebene im Standardstil "WMS-Einstellungen" habe ich "Polygon" ausgewählt , da myLayer Multipolygon ist.

Was mache ich falsch?

Soll ich den Arbeitsbereichsnamen in der Eigenschaft 'featureNS' angeben?

Gibt es ein gutes Tutorial für OpenLayers?
Ich habe die Dokumente gelesen, die sehr schlecht sind, und die Beispiele helfen mir nicht immer. Ich habe auch das Benutzerhandbuch von GeoServer gelesen und fand es sehr gut.

Argiropoulos Stavros
quelle
1
Wird Ihre OpenLayers-Anwendung auf Port 80 oder Port 8080 ausgeführt?
Geographika
1
Kannst du das Ergebnis der Anfrage in Firebug sehen?
Ian Turton

Antworten:

13

Okay, ein paar Dinge, die ich ändern und noch einmal versuchen würde:

  1. Stellen Sie sicher, dass sich Ihr featureNS-Wert in Ihrem GEOSERVER auf der Seite "Arbeitsbereichsseite unter Namespace-URI bearbeiten" befindet. Verwenden Sie nicht so allgemein wie " http://postgis.org ". Verwenden Sie so etwas wie " http: // yourdomain / application / catalogLayer " oder so etwas Einzigartiges. Sie können diesen URI erstellen, machen Sie ihn einfach einzigartig.
  2. Sie haben neue BBOX () als Strategie, aber was hat diese Box als Dimensionen? Ich würde es zum Testen in [new OpenLayers.Strategy.Fixed ()] ändern.
  3. featureType ist eigentlich nicht der Typ der Geometrie, sondern Ihr "Layername" in GEOSERVER (ich weiß, irreführend).
  4. Geometriename ist der Name des Felds in Ihrer Postgis-Datenbank mit dem Datentyp Geometrie. In GEOSERVER sehen Sie unter "Ebene bearbeiten" unten "Details zum Feature-Typ". Dort sehen Sie ein Feld vom Typ "Geometrie". Verwenden Sie den Wert unter der Eigenschaftsspalte.

featureNS

Geben Sie hier die Bildbeschreibung ein

featureType

Geben Sie hier die Bildbeschreibung ein

Geometriename

Geben Sie hier die Bildbeschreibung ein

CaptDragon
quelle
1
Großartige Arbeit, danke, dass du das geteilt hast. Ich habe festgestellt, dass es unbedingt erforderlich ist, die NS korrekt einzustellen und KEINE Sonderzeichen wie: in den Namen von Ebenen zu verwenden.
JayCrossler