Wait a minute. Shouldn't you be making insert's instead of update's? You are creating new features after all...
Vikram <[email protected]> escreveu no dia quarta, 22/01/2020 à(s) 12:14: > Yes I have seen this example. Gives me the same result. > > Now, I don't get the assertion error anymore, I create the feature with > WKT. But the end result is the same. I think the geoserver is not updating > the features separately ie. it reads the features one by one, but stores > the properties in the same variable, thus overwriting the properties every > time. And then it updates all the features with this set of properties, > thus making them all look alike. > > have you also tried calling writeTransaction within a loop for updating > one feature at a time? > > I just tried this. It doesn't produce the problem, I can see that it is > called multiple times through the loop, but in the end, only one feature is > updated.. > > > On 22/01/2020 12:53, Vitor Fonseca wrote: > > > The browser console should give you a little bit more detail on the > error...(expand all the error lines...) > what's the OL version? > > check this example: > https://medium.com/@goldrydigital/wfs-t-with-openlayers-3-16-6fb6a820ac58 > > see the new feature created with... > var clone = new ol.Feature(featureProperties); > > have you also tried calling writeTransaction within a loop for updating > one feature at a time? > > Vikram <[email protected]> escreveu no dia quarta, 22/01/2020 > à(s) 11:40: > >> It says assertion failed at this line of code : >> >> node = formatWFS.writeTransaction(null, f, null, formatGML); >> >> Well I am not able to see where the fid is.. I can only see id_ and >> ol_uid on the console. They are different for every clone. >> >> >> >> On 22/01/2020 12:33, Vitor Fonseca wrote: >> >> >> I have struggle in the past with the clone feature too. >> >> You have different id's in the clones or differente fid's? >> Because you're setting "clone.setId(feature.getId());" and that's not the >> "internal" feature ID. >> >> BTW what exactly is the assertion error? >> >> >> >> Vikram <[email protected]> escreveu no dia quarta, 22/01/2020 >> à(s) 11:24: >> >>> Hi Vitor, >>> >>> Thanks for your reply. >>> >>> The clone approach works fine for one feature ie. when I try to update >>> one feature. I have checked the console and the clones have different IDs. >>> >>> I tried creating feature with WKT, but got an assertion error while >>> passing the created feature to the writeTransaction method.. >>> >>> Regards, >>> >>> Vikram >>> >>> >>> On 22/01/2020 11:58, Vitor Fonseca wrote: >>> >>> >>> Hi, >>> >>> I think this is a programming problem rather than a Geoserver problem. >>> From my experience the issue should be with the *clone* functionality. >>> >>> Check this >>> >>> https://gis.stackexchange.com/questions/46730/openlayers-cloned-features-get-style-from-original-feature >>> >>> Someone mentions "I have noticed that cloned features share the same >>> featureID as the original. " and this should be the problem when >>> sending the features over to WFS-T... >>> You could try creating new features some other way (wkt...) >>> >>> Vikram <[email protected]> escreveu no dia quarta, 22/01/2020 >>> à(s) 10:24: >>> >>>> HI all, >>>> >>>> I am trying to update features using WFS-T update. I am sending the >>>> request from my website (OpenLayers) by passing an array of features. >>>> >>>> However, I have noticed that the attributes and geometry of last >>>> feature in the array is copied to all other features. >>>> >>>> For example, if I pass 5 features to the writeTransaction method to >>>> update an attribute of all 5 features, it copies the attributes and >>>> geometry of the 5th feature to the other features. >>>> >>>> var clones = [] >>>> selectedFeatures.forEach(function (feature) { >>>> var featureProperties = feature.getProperties(); >>>> >>>> delete featureProperties.boundedBy; >>>> var clone = feature.clone(); >>>> clone.setId(feature.getId()); >>>> >>>> clone.setGeometryName('the_geom'); >>>> >>>> clone.setProperties({'xyz':'xyz'}) >>>> >>>> clones.push(clone) >>>> >>>> >>>> }) >>>> console.log(clones) >>>> transactWFS('update_batch', clones); >>>> >>>> int the transactWFS method, >>>> >>>> transactWFS = function (mode, f) { >>>> >>>> var node; >>>> switch (mode) { >>>> case 'insert': >>>> node = formatWFS.writeTransaction([f], null, null, formatGML); >>>> break; >>>> case 'update': >>>> node = formatWFS.writeTransaction(null, [f], null, formatGML); >>>> break; >>>> case 'update_batch': >>>> node = formatWFS.writeTransaction(null, f, null, formatGML); >>>> break; >>>> case 'delete': >>>> node = formatWFS.writeTransaction(null, null, [f], formatGML); >>>> break; >>>> } >>>> var payload = xs.serializeToString(node); >>>> >>>> $.ajax('http://localhost:8080/geoserver/TEST/ows', { >>>> service: 'WFS', >>>> type: 'POST', >>>> dataType: 'xml', >>>> processData: false, >>>> contentType: 'text/xml', >>>> data: payload, >>>> success: function(data) { >>>> >>>> }, >>>> error: function(e) { >>>> var errorMsg = e? (e.status + ' ' + e.statusText) : ""; >>>> alert('Error saving this feature to GeoServer.<br><br>' >>>> + errorMsg); >>>> } >>>> }).done(function() { >>>> wfsSource.refresh() >>>> >>>> });}; >>>> >>>> Does anyone have a solution? >>>> >>>> Regards, >>>> >>>> Vikram >>>> _______________________________________________ >>>> Geoserver-users mailing list >>>> >>>> Please make sure you read the following two resources before posting to >>>> this list: >>>> - Earning your support instead of buying it, but Ian Turton: >>>> http://www.ianturton.com/talks/foss4g.html#/ >>>> - The GeoServer user list posting guidelines: >>>> http://geoserver.org/comm/userlist-guidelines.html >>>> >>>> If you want to request a feature or an improvement, also see this: >>>> https://github.com/geoserver/geoserver/wiki/Successfully-requesting-and-integrating-new-features-and-improvements-in-GeoServer >>>> >>>> >>>> [email protected] >>>> https://lists.sourceforge.net/lists/listinfo/geoserver-users >>>> >>> >>> >>> -- >>> >>> www.vfonsecaz.pt >>> >>> >> >> -- >> >> www.vfonsecaz.pt >> >> > > -- > > www.vfonsecaz.pt > > -- www.vfonsecaz.pt
_______________________________________________ Geoserver-users mailing list Please make sure you read the following two resources before posting to this list: - Earning your support instead of buying it, but Ian Turton: http://www.ianturton.com/talks/foss4g.html#/ - The GeoServer user list posting guidelines: http://geoserver.org/comm/userlist-guidelines.html If you want to request a feature or an improvement, also see this: https://github.com/geoserver/geoserver/wiki/Successfully-requesting-and-integrating-new-features-and-improvements-in-GeoServer [email protected] https://lists.sourceforge.net/lists/listinfo/geoserver-users
