Hi folks,
here are some code-snippets: I am working on a openlayers based
geoEditor, just requiring a java-backend to split or join polygons:
1. Loading data
use a GML-Layer to get the data from your wfs-t server
layers['schlaege']=new
OpenLayers.Layer.GML("Schläge","/geoserver164a/wfs?request=GetFeature&typeName=ms:schlaege&outputformat=text/xml;
subtype=gml/2.1.2",{layerName:'schlaege',typeName:'schlaege',outputFormat:'text/xml;
subtype=gml/2.1.2',formatOptions:{xy:false},styleMap:styleMaps['schlaege']});
2. Manipulating data
Use modifycontrol or drawfeatuer-control to edit or add new
elements, use event such as featuremodified to set feature.state
this.layer.events.on({"featuremodified":this.featureModified});
GeoEditor.prototype.featureModified=function(object)
{
if(object.feature==null ||
object.feature.state!=OpenLayers.State.INSERT)
object.feature.state=OpenLayers.State.UPDATE;
}
Pay attention whether you want to delete a feature
Remove feature from layer and store it into a seperate array
within your layer
GeoEditor.prototype.addDeletedFeature=function(layer,feature)
{
if(feature.fid!=null)
{
feature.state=OpenLayers.State.DELETE;
if(layer.deletedFeatures==null)
layer.deletedFeatures=[];
this.layer.deletedFeatures.push(feature);
}
else
feature.destroy();
}
3. Storing
You can use a Format.WFS to create the required xml-structe, but
it is a bit tricky to configure, look at "layername"
//Schlaege speichern
var _writer=new
OpenLayers.Format.WFS({layerName:'ms:schlaege',featureNS:'http://mapserver.gis.umn.edu/mapserver',featureName:'schlaege',geometryName:'the_geom'},layers['schlaege']);
//_writer.featureName='schlaege';
//tmpFeature=feature;
var _tmpFeatures=layers['schlaege'].features;
//Adding deleted features
if(layers['schlaege'].deletedFeatures!=null)
{
for(_i=0;_i<layers['schlaege'].deletedFeatures.length;_i++)
{
_tmpFeatures.push(layers['schlaege'].deletedFeatures[_i]);
}
}
var _gml=_writer.write(_tmpFeatures);
//alert(_gml);
//prompt("",_gml);
var url = "/geoserver164a/wfs/";
new OpenLayers.Ajax.Request(url,
{ method: 'post',
postBody: _gml,
asynchronous: false,
onComplete: this.commitSuccessSchlaege,
onFailure: this.commitFailure
}
);
GeoEditor.prototype.commitSuccessSchlaege=function(request)
{
var response = request.responseText;
var doc = request.responseXML;
if (response.indexOf('SUCCESS') != -1) {
//alert("Schlaege:"+OpenLayers.i18n("commitSuccess",
{'response':response}));
var _fidCounter=0;
var _fids=doc.getElementsByTagName("FeatureId");
for(var i = 0; i < layers['schlaege'].features.length; i++) {
if(layers['schlaege'].features[i].state==OpenLayers.State.INSERT)
{
layers['schlaege'].features[i].fid=_fids[_fidCounter].getAttribute("fid");
_fidCounter++;
}
layers['schlaege'].features[i].state = null;
if(layers['schlaege'].deletedFeatures!=null)
{
for(_i=0;_i<layers['schlaege'].deletedFeatures.length;_i++)
{
layers['schlaege'].deletedFeatures[_i].destroy();
}
layers['schlaege'].deletedFeatures.length=0;
}
}
} else if (response.indexOf('FAILED') != -1 ||
response.indexOf('Exception') != -1) {
alert("Schlaege:"+OpenLayers.i18n("commitFailed",
{'response':response}));
}
}
Alexandre Dubé schrieb:
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,
--
Mit freundlichen Grüßen / Yours faithfully
Carsten Eider
Dipl. Inf. (FH)
Kompetenzzentrum für Innovative Informationssysteme
c/o Fachhochschhule Bingen / University of applied sciences Bingen
Berlinstraße 109
55411 Bingen
Tel: +49 (0) 6721 / 409-179
Fax: +49 (0) 6721 / 409-158
email: [EMAIL PROTECTED]
Internet: iis.fh-bingen.de
begin:vcard
fn:Carsten Eider
n:Eider;Carsten
org:Fachhochschule Bingen;Kompetenzzentrum innovative Informationssysteme
adr;quoted-printable:;;berlinstra=C3=9Fe 109;Bingen;RLP;55411;Deutschland
email;internet:[EMAIL PROTECTED]
title:Dipl.-Inf.
tel;work:067214090179
x-mozilla-html:TRUE
url:iis.fh-bingen.de
version:2.1
end:vcard
_______________________________________________
Users mailing list
[email protected]
http://openlayers.org/mailman/listinfo/users