[Qgis-developer] Cleanly create memory layer in Python?
Martin Dobias
wonder.sk at gmail.com
Fri Jan 7 13:05:57 EST 2011
On Thu, Jan 6, 2011 at 9:16 PM, Chris Crook <ccrook at linz.govt.nz> wrote:
> Hi All
>
> I'm wanting to create a memory provider in Python without invoking the CRS selection dialog (even if the QGIS settings are set to "Prompt for CRS when a new layer is created".
>
> At the moment my code looks like:
>
> settings = QSettings()
> prjSetting = settings.value("/Projections/defaultBehaviour")
> settings.setValue("/Projections/defaultBehaviour", QVariant(""))
> layer = QgsVectorLayer("point",name,"memory")
> if prjSetting:
> settings.setValue("/Projections/defaultBehaviour",prjSetting)
>
> This does work, but it seems a bit cumbersome (at first glance it doesn't even look like creating a vector layer!), so I'm wondering if there is a cleaner approach..
Hi Chris
I agree this is cumbersome. A possible solution would be to extend the
URI for memory provider - currently it accepts only a string with
geometry type. New syntax could be introduced that would explicitly
set layer CRS, e.g. "geometry=point&crs=4326". Any thoughts and
patches are welcome.
Regards
Martin
More information about the Qgis-developer
mailing list