提交如何使用OpenLayers.Protocol.HTTP更改向量层?
我有: 我在GeoExt.MapPanel上编辑(创建、删除…)此图层使用:提交如何使用OpenLayers.Protocol.HTTP更改向量层?,openlayers,Openlayers,我有: 我在GeoExt.MapPanel上编辑(创建、删除…)此图层使用: var saveStrategy = new OpenLayers.Strategy.Save(); var vector = new OpenLayers.Layer.Vector("vector", { projection: mercator, strategies: [new OpenLayers.Strategy.Fixed(
var saveStrategy = new OpenLayers.Strategy.Save();
var vector = new OpenLayers.Layer.Vector("vector", {
projection: mercator,
strategies: [new OpenLayers.Strategy.Fixed(), saveStrategy],
protocol: new OpenLayers.Protocol.HTTP({
url: "/test/dtp_json.php",
format: new OpenLayers.Format.GeoJSON()
})
});
var store = new GeoExt.data.FeatureStore({
fields: [
{name: "dtp", type: "string", convert: dtpname},
{name: "date", type: "date"},
{name: "fio", type: "string"},
{name: "human", type: "long", defaultValue: 0},
{name: "place", type: "string"},
{name: "opisanie", type: "string"}
],
layer: vector,
addFeatureFilter: function(feature) {
return feature.state !== OpenLayers.State.DELETE;
}
});
如何保存(提交)所有更改?
这不会保存:
var modifyControl = new OpenLayers.Control.ModifyFeature(vector);
var drawControl = new OpenLayers.Control.DrawFeature(
vector,
OpenLayers.Handler.Point,
{handlerOptions: {multi: false}}
);
..........(new GeoExt.MapPanel)
id: "mapPanel",
bbar: [
new GeoExt.Action({
control: drawControl,
text: "Create",
enableToggle: true,
},
handler: function() {
var gV = gridPanel.getView();
gV.on('rowsinserted', function(view,firstRow,lastRow)
{
gridPanel.getSelectionModel().selectLastRow();
gridPanel.startEditing(lastRow,0);
});
}
}),
{
text: "Delete",
handler: function() {
gridPanel.getSelectionModel().each(function(rec) {
var feature = rec.get("feature");
modifyControl.unselectFeature(feature);
gridPanel.store.remove(rec);
if (feature.state !== OpenLayers.State.INSERT) {
feature.state = OpenLayers.State.DELETE;
vector.addFeatures([feature]);
};
})
}},
............
我想在没有protocol.WFS(Geoserver)的情况下完成它。
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX因此,非常简单:
store.commitChanges();
saveStrategy.save();
所以,非常简单:
store.commitChanges();
saveStrategy.save();
store.commitChanges();
saveStrategy.save();
vector.refresh({force: true});