[OpenLayers-Users] WFS-T example

Indika Tantrigoda indika85 at gmail.com
Thu Oct 30 08:49:34 EDT 2008


Hi Alexandre,
Thanks for the link.

2008/10/30 Alexandre Dube <adube at mapgears.com>

> Hi Indika,
>
>  Check out the WFS-T example in this sandbox to see a way of doing it with
> the WFS protocol :
> http://svn.openlayers.org/sandbox/topp/wfs/examples/wfs-protocol-transactions.html
>
>  Download this svn version and try it.  Hope this helps.
>
> Best regards,
>
> Alexandre
>
> Indika Tantrigoda wrote:
>
>> Hello to all,
>> I have successfully manged to insert points and a feature attribute to the
>> database. However the modification/deletes seems to giving some trouble.
>>
>> Heres the code used.
>>
>> controls = {
>>               modifylin: new OpenLayers.Control.ModifyFeature(wfs_cities,
>>                                                             modifyOptions,
>>                                                         {'displayClass':
>> 'olControlModifyFeature'}),
>>                              dellin: new
>> OpenLayers.Control.SelectFeature(wfs_cities,
>>                            modifyOptions)//,
>>                        //{'displayClass' :'olControlModifyFeature'})
>>
>>            };
>>
>> var modifyOptions = {
>>                 onModificationStart: function(feature) {
>>                 OpenLayers.Console.log("start modifying", feature.id <
>> http://feature.id>);                                 },
>>                 onModification: function(feature) {
>>                 OpenLayers.Console.log("modified", feature.id <
>> http://feature.id>);                                 },
>>                 onModificationEnd: function(feature) {
>>                 OpenLayers.Console.log("end modifying", feature.id <
>> http://feature.id>);
>>                               feature.state = OpenLayers.State.UPDATE;
>>                                 //alert("Hello");
>>                 },
>>                 onDelete: function(feature) {
>>                 OpenLayers.Console.log("delete", feature.id <
>> http://feature.id>);                                   },
>>                 onSelect: function(feature){
>>                 OpenLayers.Console.log("select", feature.id <
>> http://feature.id>);                                   feature.state =
>> OpenLayers.State.DELETE;
>>                }
>>                };
>>
>> The point can be moved within the map, and the commented alert also gets
>> executed. However when I refresh the page
>> the point is still at the initial location.
>>
>> Anything I am missing ?
>>
>> Thanks in advance,
>> Indika
>>
>>
>>
>> 2008/7/18 Indika Tantrigoda <indika85 at gmail.com <mailto:
>> indika85 at gmail.com>>
>>
>>    Thanks guys, appreciate this very much.
>>
>>    Regards,
>>    Indika
>>
>>    2008/7/17 Fabio D'Ovidio <fabiodovidio at gmail.com
>>    <mailto:fabiodovidio at gmail.com>>:
>>
>>
>>        Here are samples using WFS-T and GeoServer.
>>        You can draw, modify and delete features (e.g. lines).
>>        I developed it for points, polygons, too and I have added
>>        FILTER on WFS requests passing a value in query string,
>>        configured also WMS GetFeatureInfo in order to query my WFS
>>        data on click.
>>        Now I am developing a module to create dinamically GeoRSS
>>        (including GML as geometries) by querying these features in
>>        geoserver as WFS Service and fill them with different colours
>>        respect some attribute values..
>>
>>        Hope this help!
>>
>>                 map = new OpenLayers.Map( 'map' ,
>>                  { controls: [] , 'numZoomLevels':19});
>>                                    ol_wms = new OpenLayers.Layer.WMS(
>>        "OpenLayers WMS",
>>                  "http://labs.metacarta.com/wms/vmap0?", {layers:
>>        'basic'}
>>                                    );
>>
>>                                    var linea = new OpenLayers.Layer.WFS(
>>                      "Elementi lineari",
>>                      "/geoserver/wfs",
>>                      {typename: 'topp:linea'},
>>                      {
>>                          typename: 'linea',
>>                          featureNS: 'http://www.openplans.org/topp',
>>                          extractAttributes: false
>>                      }
>>                  );
>>                                              if (!linea.writer) {
>>                  poligono.writer = new
>>                  OpenLayers.Format.WFS({layerName:'topp:linea'},linea);
>>                  }
>>                                              linea.style.strokeColor
>>        = "#0000ff";
>>
>>                  map.addLayers([ol_wms, linea]);
>>
>>
>>                  var panel = new OpenLayers.Control.Panel(
>>                      {displayClass: 'olControlEditingToolbar'}
>>                  );
>>                    var drawLine = new OpenLayers.Control.DrawFeature(
>>                      linea, OpenLayers.Handler.Path,
>>                      {displayClass: 'olControlDrawFeaturePath'}
>>                  );
>>                  drawLine.featureAdded = function(feature) {
>>                      feature.layer.eraseFeatures([feature]);
>>                      // cast to multilinestring
>>                      feature.geometry = new
>>        OpenLayers.Geometry.MultiLineString(
>>                          feature.geometry
>>                      );
>>                      feature.style.strokeColor = "#ff0000";
>>                      feature.style.strokeWidth = "5";
>>                      feature.style.strokeOpacity = "0.75";
>>                      feature.state = OpenLayers.State.INSERT;
>>                      feature.layer.drawFeature(feature);
>>                              }
>>
>>                   var modifyOptions = {
>>                       onModificationStart: function(feature) {
>>                       OpenLayers.Console.log("start modifying",
>>        feature.id <http://feature.id>);
>>                       },
>>                       onModification: function(feature) {
>>                       OpenLayers.Console.log("modified", feature.id
>>        <http://feature.id>);
>>                       },
>>                       onModificationEnd: function(feature) {
>>                       OpenLayers.Console.log("end modifying",
>>        feature.id <http://feature.id>);
>>
>>                                     feature.state =
>>        OpenLayers.State.UPDATE;
>>                                     },
>>                       onDelete: function(feature) {
>>                       OpenLayers.Console.log("delete", feature.id
>>        <http://feature.id>);
>>           },
>>                       onSelect: function(feature){
>>                       OpenLayers.Console.log("select", feature.id
>>        <http://feature.id>);
>> feature.state = OpenLayers.State.DELETE;
>>
>>                                     }
>>                                     };
>>                            controls = {
>>                                                  dellin: new
>>        OpenLayers.Control.SelectFeature(linea,
>>                                  modifyOptions),
>>                      modifylin: new
>>        OpenLayers.Control.ModifyFeature(linea,
>>
>> modifyOptions)
>>
>>              };
>>                            for(var key in controls) {
>>                    map.addControl(controls[key]);
>>                            }
>>
>>  document.getElementById('noneToggle').checked = true;
>>                                    panel.addControls(
>>                      [new OpenLayers.Control.Navigation(), drawLine]
>>                  );
>>                            map.addControl(panel);
>>                  map.addControl(new OpenLayers.Control.LayerSwitcher());
>>                  map.addControl(new OpenLayers.Control.MouseDefaults());
>>                          map.addControl(new
>>        OpenLayers.Control.MousePosition());
>>                  map.addControl(new OpenLayers.Control.PanZoomBar());
>>                            map.zoomToExtent();
>>                                  }
>>                          function toggleControl(element) {
>>                  for(key in controls) {
>>                      var control = controls[key];
>>                      if(element.value == key && element.checked) {
>>                          control.activate();
>>                      } else {
>>                          control.deactivate();
>>
>>                      }
>>                  }
>>              }
>>
>>        --        Ing. Fabio D'Ovidio
>>
>>        INOVA Open Solutions s.r.l.
>>        Web : http://www.inovaos.it
>>        Tel.: 081 197 57 600
>>        mail: fabiodovidio at gmail.com <mailto:fabiodovidio at gmail.com>
>>
>>
>>        Alexandre Dubé ha scritto:
>>
>>            Hi Fabio,
>>
>>             That would be most appreciated.  Indika is also looking
>>            forward to see an example to get wfs-t features working.
>>
>>
>>            Fabio D'Ovidio wrote:
>>
>>                If u want,
>>                I developed something like taht some times ago ...
>>
>>                Alexandre Dubé ha scritto:
>>
>>                    Hi everyone,
>>
>>                     Does anybody have a WFS-T example to share ?  I
>>                    would like to see how to use a WFS layer, modify
>>                    it and post my changes to a WFS server.
>>
>>                     Thanks,
>>
>>
>>
>>
>>
>>
>>
>>
>>
>
> --
> Alexandre Dubé
> Mapgears
> www.mapgears.com
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.osgeo.org/pipermail/openlayers-users/attachments/20081030/c82e634e/attachment.html


More information about the Users mailing list