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

Reply via email to