In my web map application, I have added the editable wfs vector layer for feature editing. But in save strategy method, Insert and Update Geometry is working fine.But Update Attributes is not saved in transaction. Did I miss anything to include while adding editable layer? Please suggest me to fix this problem.
var saveStrategy;function init(){ format = 'image/png';bounds = new OpenLayers.Bounds( -288161.9289062237, -435.65815425360597, 949406.755566389, 1300000 );var options = {controls: [],maxExtent: bounds,maxResolution: 5079.826789665053,projection: "EPSG:404000",units: 'm'}; osMap = new OpenLayers.Map('map', options);//Setup Base layertiled = new OpenLayers.Layer.WMS( "Oxford_Map", "http://xxx.xx.x.xx:8080/geoserver/cite/wms", { LAYERS: 'Oxford_Map', STYLES: '', format: format, tiled: true, tilesOrigin: osMap.maxExtent.left + ',' + osMap.maxExtent.bottom }, { buffer: 0, displayOutsideMaxExtent: true, isBaseLayer: true, yx: { 'EPSG:404000': false } } );untiled = new OpenLayers.Layer.WMS( "Oxford_Map", "http://xxx.xx.x.xx:8080/geoserver/cite/wms", { LAYERS: 'Oxford_Map', STYLES: '', format: format }, { singleTile: true, ratio: 1, isBaseLayer: true, yx: { 'EPSG:404000': false } } ); osMap.addLayers([untiled, tiled]); //set up a save strategysaveStrategy = new OpenLayers.Strategy.Save();saveStrategy.events.register("success", '', ChangesSuccess);saveStrategy.events.register("failure", '', ChangesFailed);wfs = new OpenLayers.Layer.Vector("ODC_Private_Graphics_Data", { strategies: [new OpenLayers.Strategy.BBOX(), saveStrategy], projection: 'EPSG:27700', protocol: new OpenLayers.Protocol.WFS({ version: '1.1.0', url: 'http://xxx.xxx.x.xx:8080/geoserver/wfs', featurePrefix: 'cite', featureNS: 'http://www.opengeospatial.net/cite', featureType: 'ODC_Private_Graphics_Data', geometryName: 'the_geom', extractAttributes: true, srsName: 'EPSG:27700', isBaseLayer: false, visibility: true, schema: 'http://xxx.xxx.x.xx:8080/geoserver/wfs/DescribeFeatureType?version=1.1.0&;typename=cite:ODC_Private_Graphics_Data', });osMap.addLayers([wfs]);} //This function will be invoked when I click on save image in web map application function saveFeature() { for (var ss = 0; ss < wfs.selectedFeatures.length; ss++) { var selFeat = wfs.selectedFeatures[ss]; selFeat.attributes.FeatureName = 'Test'; selFeat.state = OpenLayers.State.UPDATE; } saveStrategy.save(); }function delFeature() {if (wfs.selectedFeatures.length > 0) {for (var dd = 0; dd < wfs.selectedFeatures.length; dd++) { var selFeat = wfs.selectedFeatures[dd]; if (selFeat.fid == undefined) { this.wfs.destroyFeatures([selFeat]); } else { selFeat.state = OpenLayers.State.DELETE; this.wfs.events.triggerEvent("afterfeaturemodified", { feature: selFeat }); selFeat.renderIntent = "select"; this.wfs.drawFeature(selFeat); } } } function ChangesSuccess() { alert('Done'); } function ChangesFailed() { alert('Failed'); }
أكثر...
var saveStrategy;function init(){ format = 'image/png';bounds = new OpenLayers.Bounds( -288161.9289062237, -435.65815425360597, 949406.755566389, 1300000 );var options = {controls: [],maxExtent: bounds,maxResolution: 5079.826789665053,projection: "EPSG:404000",units: 'm'}; osMap = new OpenLayers.Map('map', options);//Setup Base layertiled = new OpenLayers.Layer.WMS( "Oxford_Map", "http://xxx.xx.x.xx:8080/geoserver/cite/wms", { LAYERS: 'Oxford_Map', STYLES: '', format: format, tiled: true, tilesOrigin: osMap.maxExtent.left + ',' + osMap.maxExtent.bottom }, { buffer: 0, displayOutsideMaxExtent: true, isBaseLayer: true, yx: { 'EPSG:404000': false } } );untiled = new OpenLayers.Layer.WMS( "Oxford_Map", "http://xxx.xx.x.xx:8080/geoserver/cite/wms", { LAYERS: 'Oxford_Map', STYLES: '', format: format }, { singleTile: true, ratio: 1, isBaseLayer: true, yx: { 'EPSG:404000': false } } ); osMap.addLayers([untiled, tiled]); //set up a save strategysaveStrategy = new OpenLayers.Strategy.Save();saveStrategy.events.register("success", '', ChangesSuccess);saveStrategy.events.register("failure", '', ChangesFailed);wfs = new OpenLayers.Layer.Vector("ODC_Private_Graphics_Data", { strategies: [new OpenLayers.Strategy.BBOX(), saveStrategy], projection: 'EPSG:27700', protocol: new OpenLayers.Protocol.WFS({ version: '1.1.0', url: 'http://xxx.xxx.x.xx:8080/geoserver/wfs', featurePrefix: 'cite', featureNS: 'http://www.opengeospatial.net/cite', featureType: 'ODC_Private_Graphics_Data', geometryName: 'the_geom', extractAttributes: true, srsName: 'EPSG:27700', isBaseLayer: false, visibility: true, schema: 'http://xxx.xxx.x.xx:8080/geoserver/wfs/DescribeFeatureType?version=1.1.0&;typename=cite:ODC_Private_Graphics_Data', });osMap.addLayers([wfs]);} //This function will be invoked when I click on save image in web map application function saveFeature() { for (var ss = 0; ss < wfs.selectedFeatures.length; ss++) { var selFeat = wfs.selectedFeatures[ss]; selFeat.attributes.FeatureName = 'Test'; selFeat.state = OpenLayers.State.UPDATE; } saveStrategy.save(); }function delFeature() {if (wfs.selectedFeatures.length > 0) {for (var dd = 0; dd < wfs.selectedFeatures.length; dd++) { var selFeat = wfs.selectedFeatures[dd]; if (selFeat.fid == undefined) { this.wfs.destroyFeatures([selFeat]); } else { selFeat.state = OpenLayers.State.DELETE; this.wfs.events.triggerEvent("afterfeaturemodified", { feature: selFeat }); selFeat.renderIntent = "select"; this.wfs.drawFeature(selFeat); } } } function ChangesSuccess() { alert('Done'); } function ChangesFailed() { alert('Failed'); }
أكثر...