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

classic Classic list List threaded Threaded
8 messages Options
Reply | Threaded
Open this post in threaded view
|

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

Ivan Ivanov
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

_______________________________________________
QGIS-Developer mailing list
[hidden email]
List info: https://lists.osgeo.org/mailman/listinfo/qgis-developer
Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-developer
Reply | Threaded
Open this post in threaded view
|

Re: How to update change the datasource of already existing layer

Nyall Dawson
On Tue, 11 Jun 2019 at 15:06, Ivan Ivanov <[hidden email]> wrote:

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

Hi Ivan,

Your code seems incomplete and has some syntax errors -- maybe it
wasn't copied correctly? Can you repost please?

Nyall
_______________________________________________
QGIS-Developer mailing list
[hidden email]
List info: https://lists.osgeo.org/mailman/listinfo/qgis-developer
Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-developer
Reply | Threaded
Open this post in threaded view
|

Re: How to update change the datasource of already existing layer

Ivan Ivanov
I fixed it. Sorry for the inconvenience:

layer1 = QgsVectorLayer('Polygon?crs=epsg:32612', 'layer2', 'memory')  
layer2 = QgsVectorLayer('Polygon?crs=epsg:32612', 'layer1', 'memory')  

print(layer1.source())
print(layer2.source())
layer1.setDataSource(layer2.source(), layer2.name(), layer2.dataProvider().name())
print(layer1.source())

On Wed, 12 Jun 2019 at 00:28, Nyall Dawson <[hidden email]> wrote:
On Tue, 11 Jun 2019 at 15:06, Ivan Ivanov <[hidden email]> wrote:
>
> 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}

Hi Ivan,

Your code seems incomplete and has some syntax errors -- maybe it
wasn't copied correctly? Can you repost please?

Nyall

_______________________________________________
QGIS-Developer mailing list
[hidden email]
List info: https://lists.osgeo.org/mailman/listinfo/qgis-developer
Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-developer
Reply | Threaded
Open this post in threaded view
|

Re: How to update change the datasource of already existing layer

Nyall Dawson
On Wed, 12 Jun 2019 at 10:09, Ivan Ivanov <[hidden email]> wrote:

>
> I fixed it. Sorry for the inconvenience:
>
> layer1 = QgsVectorLayer('Polygon?crs=epsg:32612', 'layer2', 'memory')
> layer2 = QgsVectorLayer('Polygon?crs=epsg:32612', 'layer1', 'memory')
>
> print(layer1.source())
> print(layer2.source())
> layer1.setDataSource(layer2.source(), layer2.name(), layer2.dataProvider().name())
> print(layer1.source())

I agree that the results of this output look odd - but what exactly
are you trying to achieve here?

Nyall

>
> On Wed, 12 Jun 2019 at 00:28, Nyall Dawson <[hidden email]> wrote:
>>
>> On Tue, 11 Jun 2019 at 15:06, Ivan Ivanov <[hidden email]> wrote:
>> >
>> > 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}
>>
>> Hi Ivan,
>>
>> Your code seems incomplete and has some syntax errors -- maybe it
>> wasn't copied correctly? Can you repost please?
>>
>> Nyall
_______________________________________________
QGIS-Developer mailing list
[hidden email]
List info: https://lists.osgeo.org/mailman/listinfo/qgis-developer
Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-developer
Reply | Threaded
Open this post in threaded view
|

Re: How to update change the datasource of already existing layer

Ivan Ivanov
Hi, Nyall,

I'm developing a plugin with a lot of internal layers, that are being (re)created on user interaction. 

There are multiple event listeners attached to a layer, as well as passed around to different functions and might have custom styles. At some point, I want to replace the layer entirely with another one (result from an algorithm). 

To solve this, I came up with three solutions, maybe there are more:
One option to achieve this is to copy all the features from the new layer and put them in the first one, but the layers might be very big and I'm afraid it would be a problem. 
The second option that I'm currently using is to recreate all the event listeners on the new layer and replace it from the layer tree. This is okayish and it works.
The third option is to set a new data source, as I thought it's the most optimal one, however, when the layer has two uids it's practically broken.

directly editing the XML but the result is the same - double ids. I checked this plugin because I'm sure it used to work in 3.2 (currently having 3.6.3 on Ubuntu). 

Best,
Ivan



On Fri, 14 Jun 2019 at 01:21, Nyall Dawson <[hidden email]> wrote:
On Wed, 12 Jun 2019 at 10:09, Ivan Ivanov <[hidden email]> wrote:
>
> I fixed it. Sorry for the inconvenience:
>
> layer1 = QgsVectorLayer('Polygon?crs=epsg:32612', 'layer2', 'memory')
> layer2 = QgsVectorLayer('Polygon?crs=epsg:32612', 'layer1', 'memory')
>
> print(layer1.source())
> print(layer2.source())
> layer1.setDataSource(layer2.source(), layer2.name(), layer2.dataProvider().name())
> print(layer1.source())

I agree that the results of this output look odd - but what exactly
are you trying to achieve here?

Nyall

>
> On Wed, 12 Jun 2019 at 00:28, Nyall Dawson <[hidden email]> wrote:
>>
>> On Tue, 11 Jun 2019 at 15:06, Ivan Ivanov <[hidden email]> wrote:
>> >
>> > 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}
>>
>> Hi Ivan,
>>
>> Your code seems incomplete and has some syntax errors -- maybe it
>> wasn't copied correctly? Can you repost please?
>>
>> Nyall

_______________________________________________
QGIS-Developer mailing list
[hidden email]
List info: https://lists.osgeo.org/mailman/listinfo/qgis-developer
Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-developer
Reply | Threaded
Open this post in threaded view
|

Re: How to update change the datasource of already existing layer

Nyall Dawson
On Fri, 14 Jun 2019 at 09:41, Ivan Ivanov <[hidden email]> wrote:

>
> Hi, Nyall,
>
> I'm developing a plugin with a lot of internal layers, that are being (re)created on user interaction.
>
> There are multiple event listeners attached to a layer, as well as passed around to different functions and might have custom styles. At some point, I want to replace the layer entirely with another one (result from an algorithm).
>
> To solve this, I came up with three solutions, maybe there are more:
> One option to achieve this is to copy all the features from the new layer and put them in the first one, but the layers might be very big and I'm afraid it would be a problem.
> The second option that I'm currently using is to recreate all the event listeners on the new layer and replace it from the layer tree. This is okayish and it works.
> The third option is to set a new data source, as I thought it's the most optimal one, however, when the layer has two uids it's practically broken.

Well, this approach will work perfectly fine for everything BUT memory
layers. The features from memory layers can't be shared between two
layers, so resetting the data source here really doesn't have any
meaning. There's just no way to duplicate a memory layer except for
copy all the features and adding to a new layer.

Nyall

>
> I got some inspiration from here: https://github.com/enricofer/changeDataSource/blob/master/setdatasource.py#L175-L206
> directly editing the XML but the result is the same - double ids. I checked this plugin because I'm sure it used to work in 3.2 (currently having 3.6.3 on Ubuntu).
>
> Best,
> Ivan
>
>
>
> On Fri, 14 Jun 2019 at 01:21, Nyall Dawson <[hidden email]> wrote:
>>
>> On Wed, 12 Jun 2019 at 10:09, Ivan Ivanov <[hidden email]> wrote:
>> >
>> > I fixed it. Sorry for the inconvenience:
>> >
>> > layer1 = QgsVectorLayer('Polygon?crs=epsg:32612', 'layer2', 'memory')
>> > layer2 = QgsVectorLayer('Polygon?crs=epsg:32612', 'layer1', 'memory')
>> >
>> > print(layer1.source())
>> > print(layer2.source())
>> > layer1.setDataSource(layer2.source(), layer2.name(), layer2.dataProvider().name())
>> > print(layer1.source())
>>
>> I agree that the results of this output look odd - but what exactly
>> are you trying to achieve here?
>>
>> Nyall
>>
>> >
>> > On Wed, 12 Jun 2019 at 00:28, Nyall Dawson <[hidden email]> wrote:
>> >>
>> >> On Tue, 11 Jun 2019 at 15:06, Ivan Ivanov <[hidden email]> wrote:
>> >> >
>> >> > 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}
>> >>
>> >> Hi Ivan,
>> >>
>> >> Your code seems incomplete and has some syntax errors -- maybe it
>> >> wasn't copied correctly? Can you repost please?
>> >>
>> >> Nyall
_______________________________________________
QGIS-Developer mailing list
[hidden email]
List info: https://lists.osgeo.org/mailman/listinfo/qgis-developer
Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-developer
Reply | Threaded
Open this post in threaded view
|

Re: How to update change the datasource of already existing layer

Ivan Ivanov
Okay, thanks, all clear now.

Maybe documenting that setDataSource is useless in case of memory layers would prevent future questions like this.
Thanks again!

On Fri, 14 Jun 2019 at 01:49, Nyall Dawson <[hidden email]> wrote:
On Fri, 14 Jun 2019 at 09:41, Ivan Ivanov <[hidden email]> wrote:
>
> Hi, Nyall,
>
> I'm developing a plugin with a lot of internal layers, that are being (re)created on user interaction.
>
> There are multiple event listeners attached to a layer, as well as passed around to different functions and might have custom styles. At some point, I want to replace the layer entirely with another one (result from an algorithm).
>
> To solve this, I came up with three solutions, maybe there are more:
> One option to achieve this is to copy all the features from the new layer and put them in the first one, but the layers might be very big and I'm afraid it would be a problem.
> The second option that I'm currently using is to recreate all the event listeners on the new layer and replace it from the layer tree. This is okayish and it works.
> The third option is to set a new data source, as I thought it's the most optimal one, however, when the layer has two uids it's practically broken.

Well, this approach will work perfectly fine for everything BUT memory
layers. The features from memory layers can't be shared between two
layers, so resetting the data source here really doesn't have any
meaning. There's just no way to duplicate a memory layer except for
copy all the features and adding to a new layer.

Nyall

>
> I got some inspiration from here: https://github.com/enricofer/changeDataSource/blob/master/setdatasource.py#L175-L206
> directly editing the XML but the result is the same - double ids. I checked this plugin because I'm sure it used to work in 3.2 (currently having 3.6.3 on Ubuntu).
>
> Best,
> Ivan
>
>
>
> On Fri, 14 Jun 2019 at 01:21, Nyall Dawson <[hidden email]> wrote:
>>
>> On Wed, 12 Jun 2019 at 10:09, Ivan Ivanov <[hidden email]> wrote:
>> >
>> > I fixed it. Sorry for the inconvenience:
>> >
>> > layer1 = QgsVectorLayer('Polygon?crs=epsg:32612', 'layer2', 'memory')
>> > layer2 = QgsVectorLayer('Polygon?crs=epsg:32612', 'layer1', 'memory')
>> >
>> > print(layer1.source())
>> > print(layer2.source())
>> > layer1.setDataSource(layer2.source(), layer2.name(), layer2.dataProvider().name())
>> > print(layer1.source())
>>
>> I agree that the results of this output look odd - but what exactly
>> are you trying to achieve here?
>>
>> Nyall
>>
>> >
>> > On Wed, 12 Jun 2019 at 00:28, Nyall Dawson <[hidden email]> wrote:
>> >>
>> >> On Tue, 11 Jun 2019 at 15:06, Ivan Ivanov <[hidden email]> wrote:
>> >> >
>> >> > 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}
>> >>
>> >> Hi Ivan,
>> >>
>> >> Your code seems incomplete and has some syntax errors -- maybe it
>> >> wasn't copied correctly? Can you repost please?
>> >>
>> >> Nyall

_______________________________________________
QGIS-Developer mailing list
[hidden email]
List info: https://lists.osgeo.org/mailman/listinfo/qgis-developer
Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-developer
Reply | Threaded
Open this post in threaded view
|

Re: How to update change the datasource of already existing layer

Nyall Dawson
On Fri, 14 Jun 2019 at 09:54, Ivan Ivanov <[hidden email]> wrote:
>
> Okay, thanks, all clear now.
>
> Maybe documenting that setDataSource is useless in case of memory layers would prevent future questions like this.
> Thanks again!

Sure -- pull requests with code documentation notes like this will
always be very welcome! (Send them in *whenever* you hit anything you
think "that should have been mentioned in the API docs")

Nyall

>
> On Fri, 14 Jun 2019 at 01:49, Nyall Dawson <[hidden email]> wrote:
>>
>> On Fri, 14 Jun 2019 at 09:41, Ivan Ivanov <[hidden email]> wrote:
>> >
>> > Hi, Nyall,
>> >
>> > I'm developing a plugin with a lot of internal layers, that are being (re)created on user interaction.
>> >
>> > There are multiple event listeners attached to a layer, as well as passed around to different functions and might have custom styles. At some point, I want to replace the layer entirely with another one (result from an algorithm).
>> >
>> > To solve this, I came up with three solutions, maybe there are more:
>> > One option to achieve this is to copy all the features from the new layer and put them in the first one, but the layers might be very big and I'm afraid it would be a problem.
>> > The second option that I'm currently using is to recreate all the event listeners on the new layer and replace it from the layer tree. This is okayish and it works.
>> > The third option is to set a new data source, as I thought it's the most optimal one, however, when the layer has two uids it's practically broken.
>>
>> Well, this approach will work perfectly fine for everything BUT memory
>> layers. The features from memory layers can't be shared between two
>> layers, so resetting the data source here really doesn't have any
>> meaning. There's just no way to duplicate a memory layer except for
>> copy all the features and adding to a new layer.
>>
>> Nyall
>>
>> >
>> > I got some inspiration from here: https://github.com/enricofer/changeDataSource/blob/master/setdatasource.py#L175-L206
>> > directly editing the XML but the result is the same - double ids. I checked this plugin because I'm sure it used to work in 3.2 (currently having 3.6.3 on Ubuntu).
>> >
>> > Best,
>> > Ivan
>> >
>> >
>> >
>> > On Fri, 14 Jun 2019 at 01:21, Nyall Dawson <[hidden email]> wrote:
>> >>
>> >> On Wed, 12 Jun 2019 at 10:09, Ivan Ivanov <[hidden email]> wrote:
>> >> >
>> >> > I fixed it. Sorry for the inconvenience:
>> >> >
>> >> > layer1 = QgsVectorLayer('Polygon?crs=epsg:32612', 'layer2', 'memory')
>> >> > layer2 = QgsVectorLayer('Polygon?crs=epsg:32612', 'layer1', 'memory')
>> >> >
>> >> > print(layer1.source())
>> >> > print(layer2.source())
>> >> > layer1.setDataSource(layer2.source(), layer2.name(), layer2.dataProvider().name())
>> >> > print(layer1.source())
>> >>
>> >> I agree that the results of this output look odd - but what exactly
>> >> are you trying to achieve here?
>> >>
>> >> Nyall
>> >>
>> >> >
>> >> > On Wed, 12 Jun 2019 at 00:28, Nyall Dawson <[hidden email]> wrote:
>> >> >>
>> >> >> On Tue, 11 Jun 2019 at 15:06, Ivan Ivanov <[hidden email]> wrote:
>> >> >> >
>> >> >> > 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}
>> >> >>
>> >> >> Hi Ivan,
>> >> >>
>> >> >> Your code seems incomplete and has some syntax errors -- maybe it
>> >> >> wasn't copied correctly? Can you repost please?
>> >> >>
>> >> >> Nyall
_______________________________________________
QGIS-Developer mailing list
[hidden email]
List info: https://lists.osgeo.org/mailman/listinfo/qgis-developer
Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-developer