OpenLayers:将添加的点保存到geoserver

OpenLayers:将添加的点保存到geoserver,openlayers,geoserver,Openlayers,Geoserver,我想添加一个点,然后使用wfs-t将其保存到db 我使用Openlayers和GeoServer saveStrategy = new OpenLayers.Strategy.Save(); wfs = new OpenLayers.Layer.Vector( "WFS Vectore", { strategies: [new OpenLayers.Strategy.BBOX(), saveStrategy], projection: new OpenLayers.Projec

我想添加一个点,然后使用wfs-t将其保存到db

我使用Openlayers和GeoServer

saveStrategy = new OpenLayers.Strategy.Save();

wfs = new OpenLayers.Layer.Vector(
"WFS Vectore",
{
    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: "http://localhost:8080/geoserver/iran/wms?service=WFS",
        featureType: "population_utf-8",
        featureNS: "http://iran.kadaster.org",
        geometryName: "geom"
    })
});
我用两种方法添加点:

一,

二,

然后用鼠标添加一个点

saveStrategy.save();
第二种方法有效,但第一种方法无效

我需要第一种方法


如何操作?

当您使用
新建OpenLayers.Control.DrawFeature(wfs,OpenLayers.Handler.point)
添加点时,默认情况下,要素状态设置为“插入”,但当您使用
vectorLayer.addFeatures()
命令添加点时,要素状态为空

当OpenLayers想要保存更改时,它会查看功能的状态,您必须将添加的功能状态设置为“插入”(区分大小写)

var drawFeatureController = new OpenLayers.Control.DrawFeature(wfs, OpenLayers.Handler.Point);
saveStrategy.save();