[Qgis-developer] SymbologyExport parameter

Tim Sutton lists at linfiniti.com
Mon Dec 30 12:46:17 PST 2013


Hi


On Sun, Dec 29, 2013 at 9:32 AM, Pim Verver <pim at travelingo.nl> wrote:

>  Hi Tim,
>
>
>
> I executed an exact copy of your line of code and got the same error’
>
>
>
> This is what I tried:
>
>
>
> canvas = iface.mapCanvas()
>
> aLayer = iface.activeLayer()
>
> if aLayer.dataProvider().name() == 'postgres':
>
>     writer =  QgsVectorFileWriter
>
>     error = writer.writeAsVectorFormat(aLayer, r"/tmp/out.shp", "CP1250",
> None, "ESRI Shapefile", False, None,"","", False, None,
> QgsVectorFileWriter.NoSymbology, 1.0)
>
>
>
> if error == QgsVectorFileWriter.NoError:
>
>     vlayer = QgsVectorLayer(r"D:\Documenten_Travelingo\SkyDrive Pro\Horeca
> routes\Projectbestanden\deBaak Driebergen\Shape bronnen", aLayer.name() +
> ".shp", "ogr")
>
>     QgsMapLayerRegistry.instance().addMapLayer(vlayer)
>
>
>
> And the error: Tceback (most recent call last):
>
>   File "<input>", line 1, in <module>
>
>   File "D:/Documenten_Travelingo/SkyDrive Pro/Horeca
> routes/PostgrestoShape.py", line 5, in <module>
>
>     error = writer.writeAsVectorFormat(aLayer, r"/tmp/out.shp", "CP1250",
> None, "ESRI Shapefile", False, None,"","", False, None,
> QgsVectorFileWriter.NoSymbology, 1.0)
>
> AttributeError: type object 'QgsVectorFileWriter' has no attribute
> 'NoSymbology'
>
>
>
> I work with the console of  a Dufour 64 bits version on a Windows 8.1
> machine. The qgis_core.dll is present in C:\Program Files\QGIS
> Dufour\apps\qgis\bin. Can it be that the windows version is an old
> compilation because as I understand the SymbologyExport parameter was just
> recently added to the source code?
>
>
>

I think the last two parameters were added with DXF export coming in 2.2 so
for 2.0 this should work for you:

error = writer.writeAsVectorFormat(aLayer, r"/tmp/out.shp", "CP1250", None,
"ESRI Shapefile", False, None,"","", False, None)
aLayer.saveNamedStyle("/tmp/out.qml")

Regards

Tim


>  Kind regards
>
> *Van:* Tim Sutton [mailto:lists at linfiniti.com]
> *Verzonden:* zaterdag 28 december 2013 22:19
> *Aan:* Pim Verver
> *CC:* qgis-developer at lists.osgeo.org
> *Onderwerp:* Re: [Qgis-developer] SymbologyExport parameter
>
>
>
> Hi
>
>
>
> I'm not sure why the Symbology flag is not working (havent time to look
> sorry) but a quick fix might be to do this (which worked for me in a quick
> test):
>
>
>
> error = writer.writeAsVectorFormat(aLayer, r"/tmp/out.shp", "CP1250",
> None, "ESRI Shapefile", False, None,"","", False, None,
> QgsVectorFileWriter.NoSymbology, 1.0)
>
> aLayer.saveNamedStyle("/tmp/out.qml")
>
>
>
> (u'Created default style file as /tmp/out.qml', True)
>
>
>
> Hope that helps!
>
>
>
> Regards
>
>
>
> Tim
>
>
>
>
>
> On Sat, Dec 28, 2013 at 4:25 PM, Pim Verver <pim at travelingo.nl> wrote:
>
>  Hi,
>
> I am using the QGis python console for the use of exporting an active
> layer from postgist to a shape file layer.  I want to include the
> symbology as is possible through the GUI of QGis 2 (Dufour).
> I am using the writeAsVectorFormat<http://www.qgis.org/api/classQgsVectorFileWriter.html#a289af78b5b609fbcb0572aaf505f2822>method of the QgsVectorFileWriter class, but keep getting the message that
> there are “Too many arguments” as if the parameter doesn´t exist. That
> seems correct given the fact that the mouse popup for the parameters
> doesn’t indicate a Symbology parameter. However in the  official QGis API
> the parameter is mentioned:
> http://www.qgis.org/api/classQgsVectorFileWriter.html#a1aac90d30d811d2888d1aab4098ad63c.
> The symbology parameter seems tob e added in the latest release (QGis 2)
>
> Am I using it the wrong way or is someting else going on?
>
> The alternative would be save the style als SLD and import the style file
> after creating the shape layer, but if I can avoid that …
>
> The console code sofar:
>
> canvas = iface.mapCanvas()
>
> aLayer = iface.activeLayer()
>
> if aLayer.dataProvider().name() == 'postgres':
>
>     writer =  QgsVectorFileWriter
>
>     error = writer.writeAsVectorFormat(aLayer,
> r"D:\Documenten_Travelingo\SkyDrive Pro\Horeca
> routes\Projectbestanden\deBaak Driebergen\Shape bronnen\\"+ aLayer.name() +
> ".shp", "CP1250", None, "ESRI Shapefile", False, None,"","", False, None,
> "NoSymbology", 1.0)
>
> #    then import the shape file in a new layer
>
> if error == QgsVectorFileWriter.NoError:
>
>     vlayer = QgsVectorLayer(r"D:\Documenten_Travelingo\SkyDrive Pro\Horeca
> routes\Projectbestanden\deBaak Driebergen\Shape bronnen", aLayer.name() +
> ".shp", "ogr")
>
>     QgsMapLayerRegistry.instance().addMapLayer(vlayer)
>
> Th error is raised at the writeAsVectorFormat method and its parameter
> NoSymbology.
>
> Thanx in advance
>
> Kinds regards,
>
> Pim Verver
>
>
>
>
> _______________________________________________
> Qgis-developer mailing list
> Qgis-developer at lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/qgis-developer
>
>
>
>
>
> --
>
> Tim Sutton - QGIS Project Steering Committee Member
> ==============================================
> Please do not email me off-list with technical
> support questions. Using the lists will gain
> more exposure for your issues and the knowledge
> surrounding your issue will be shared with all.
>
> Irc: timlinux on #qgis at freenode.net
> ==============================================
>



-- 
Tim Sutton - QGIS Project Steering Committee Member
==============================================
Please do not email me off-list with technical
support questions. Using the lists will gain
more exposure for your issues and the knowledge
surrounding your issue will be shared with all.

Irc: timlinux on #qgis at freenode.net
==============================================
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/qgis-developer/attachments/20131230/958681cb/attachment.html>


More information about the Qgis-developer mailing list