Hi people, i need your help to know how can i do a save action between a wfs 
layer and a save's transaction of a wfs-t because i want to restrict the save 
and the update only en that intersection here is the wfs layer

//------------------------------------------------------------------------------------------------------------------
// variable that has the state vector
//--------------------------------------------------------------------------------------------------------------------
vlayerMunicipios = new OpenLayers.Layer.Vector("Municipios disponibles", {
     strategies : [new OpenLayers.Strategy.BBOX()],
     protocol : new OpenLayers.Protocol.WFS({
          url : "http://localhost:8080/geoserver/wfs";,
          featureType : "uneMunicipios",
          featureNS : ""
     }
     ),
     styleMap : new OpenLayers.StyleMap({
          "default" : new OpenLayers.Style({
               pointRadius : "${type}",
               fillColor : "#BFF7C7",
               strokeColor : "#DEBCBC",
               strokeWidth : 2,
               graphicZIndex : 1,
               label : "${nombre}",
               fontSize : "15",
               fontColor : "#1072C2",
               fontWeight : "Bold",
               labelYOffset : - 17
          }
          ),
          "select" : new OpenLayers.Style({
               fillColor : "#FFFF2B",
               strokeColor : "#00D200",
               graphicZIndex : 2
          }
          )
     }
     ),
     filter : new OpenLayers.Filter.Logical({
          type : OpenLayers.Filter.Logical.OR,
          filters : [
          new OpenLayers.Filter.Comparison({
               type : OpenLayers.Filter.Comparison.EQUAL_TO,
               property : "nombre",
               value : "Municipio Especial Isla de la Juventud"
          }
          ),
          new OpenLayers.Filter.Comparison({
               type : OpenLayers.Filter.Comparison.EQUAL_TO,
               property : "nombre",
               value : "Guama"
          }
          )
          ]
     }
     )/*,
     hover : true*/
}
);



//////////////////////////////////////////////////////////////////////////////////////////////
//And here is the layer that draw points over the map
////////////////////////////////////////////////////////////////////////////////////////////
vlayer = new OpenLayers.Layer.Vector("Puntos de Biogas seleccionados", {
     styleMap : new OpenLayers.StyleMap({
          'default' : {
               strokeColor : "#EC0000",
               // strokeOpacity : 1,
               strokeWidth : 1,
               fillColor : "#616161",
               fillOpacity : 0.2,
               pointRadius : 9
               // pointerEvents : "visiblePainted"// ,
               // label with \n linebreaks
               // label : "name: ${name}\n\nage: ${age}",

               // fontColor : "${favColor}",
               // fontSize : "12px",
               // fontFamily : "Courier New, monospace",
               // fontWeight : "bold",
               // labelAlign : "${align}",
               // labelXOffset : "${xOffset}",
               // labelYOffset : "${yOffset}"
          }
     }
     )
}
);
///////////////////////////////////////////////////////////////////////////////////////////////////

//------------------------------------------------------------------------------------------------------------------
// And this is the grid panel that i use to show,modify,delete and create the 
points that i select over the map but in this form it can create points in any 
place, and i want to restrict that.I want that the user can create points over 
the map but just over the vlayerMunicipios layer.
//------------------------------------------------------------------------------------------------------------------
featureGrid = new Ext.grid.EditorGridPanel({
   ref : "featureGrid",
   collapsible : 'true',
   animCollapse : true,
   collapsed : true,
   title : "Feature Table",
   region : "south",
   height : 150,
   sm : new GeoExt.grid.FeatureSelectionModel(),
   store : new Ext.data.Store(),
   columns : [],
   listeners : {
         "beforecollapse" : function(p,a) {
                        selectvlayer.activate();
         },
                 "beforeexpand" : function(p,a) {
                        selectvlayer.deactivate();
         }
      },
   sm : new GeoExt.grid.FeatureSelectionModel({
      selectControl : modifyControl.selectControl,
      autoActivateControl : false,
      singleSelect : true
   }
   ),
   store : new Ext.data.Store(),
   bbar : [
   {
      text : "Eliminar",
      handler : function() {
         featureGrid.getSelectionModel().each(function(rec) {
            var feature = rec.getFeature();
            modifyControl.unselectFeature(feature);
            vlayer.removeFeatures([feature]);
            if (feature.state !== OpenLayers.State.INSERT) {
               feature.state = OpenLayers.State.DELETE;
               featureGrid.store.featureFilter = new OpenLayers.Filter({
                  evaluate : function(f) {
                     return feature !== f;

                  }
               }
               );
               vlayer.addFeatures([feature]);
            }
         }
         );
      }
   }
   ,
   new GeoExt.Action({
      control : drawControl,
      text : "Crear",
      enableToggle : true,
      ref : 'crear'
   }
   ),
   {
      text : "Guardar cambios",
      handler : function() {
         featureGrid.store.proxy.protocol.commit(
         vlayer.features, {
            callback : function() {
               selectedLayer.redraw(true);
               featureGrid.store.reload();
            }
         }
         );
      }
   }
   ]
});
//////////////////////////////////////////////////////////////////////////////////////////////////
help , and thatks for all.

--

Este mensaje le ha llegado mediante el servicio de correo electronico que 
ofrece Infomed para respaldar el cumplimiento de las misiones del Sistema 
Nacional de Salud. La persona que envia este correo asume el compromiso de usar 
el servicio a tales fines y cumplir con las regulaciones establecidas

Infomed: http://www.sld.cu/
_______________________________________________
Users mailing list
[email protected]
http://lists.osgeo.org/mailman/listinfo/openlayers-users

Reply via email to