[QGIS-Developer] How to update change the datasource of already existing layer

Ivan Ivanov suricactus at gmail.com
Mon Jun 10 22:05:56 PDT 2019


Hello,


Can you give me some idea why I'm getting two uids in the layer's source?
And also how I can fix this because now the layer just disappears from the
map canvas. (all layers are isValid() = True)

oldLayer.source()
#
MultiLineString?crs=EPSG:32737&field=fid:integer(0,0)&uid={6cd1f176-9c05-4d2a-961a-3143a8fa422b}

newLayer = processing.run('save:selectedfeatures', {
    'INPUT': oldLayer,
    'OUTPUT': 'memory:newLayer'
)

oldLayer.setDataSource(newLayer.source(), oldLayer.name(),
newLayer.dataProvider().name())

newLayer.source()
#
MultiLineString?crs=EPSG:32737&field=fid:integer(0,0)&uid={d36aff88-4248-4ffb-be2f-2ac1891ac26d}
oldLayer.source()

# WRONG, I would expect the same as above. Also, the uid is completely new.
#
MultiLineString?crs=EPSG:32737&field=fid:integer(0,0)&uid={d36aff88-4248-4ffb-be2f-2ac1891ac26d}&uid={3422de07-cf38-4249-af55-23c7d9779daf}


Best,
Ivan
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/qgis-developer/attachments/20190611/cbb8d0b4/attachment.html>


More information about the QGIS-Developer mailing list