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
_______________________________________________
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

Reply via email to