[OpenLayers-Users] WFS-T example
Alexandre Dube
adube at mapgears.com
Thu Oct 30 08:30:47 EDT 2008
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
More information about the Users
mailing list