Hi all,
I am writing a processing script in which I get a pair of line vector layer as input and I create a new point vector layer that is a kind of chainage processing with some constraint. So far so good, the algorithm is working like a charm and the output is being generated as expected. I am stumbling on (I think) a simple task. As the input layers don't necessarily have the same CRS as the project, I would like to use for the output the same CRS as the input layers. My problem is in how to do it. I am getting the reference as: CRS = layer.GetSpatialRef() When defining the writer I use: writer = VectorWriter(Outfile, None, fields,\ QGis.WKBPoint, \ CRS) And I get the error: arguments did not match any overloaded call: QgsVectorFileWriter(QString, QString, QgsFields, QGis.WkbType, QgsCoordinateReferenceSystem, QString driverName="ESRI Shapefile", QStringList datasourceOptions=QStringList(), QStringList layerOptions=QStringList(), QString newFilename=None, QgsVectorFileWriter.SymbologyExport symbologyExport=QgsVectorFileWriter.NoSymbology): argument 5 has unexpected type 'SpatialReference' QgsVectorFileWriter(QgsVectorFileWriter): argument 1 has unexpected type 'unicode' See log for more details The traceback in log is: Traceback (most recent call last):| File "/home/roxo/.qgis2/python/plugins/processing/core/GeoAlgorithm.py", line 227, in execute| self.processAlgorithm(progress)| File "/home/roxo/.qgis2/python/plugins/processing/script/ScriptAlgorithm.py", line 271, in processAlgorithm| exec((script), ns)| File "<string>", line 832, in <module>| File "<string>", line 781, in main| File "<string>", line 538, in Creat3D| File "/home/roxo/.qgis2/python/plugins/processing/tools/vector.py", line 435, in __init__| qgsfields, geometryType, crs, OGRCodes[extension])|TypeError: arguments did not match any overloaded call:| QgsVectorFileWriter(QString, QString, QgsFields, QGis.WkbType, QgsCoordinateReferenceSystem, QString driverName="ESRI Shapefile", QStringList datasourceOptions=QStringList(), QStringList layerOptions=QStringList(), QString newFilename=None, QgsVectorFileWriter.SymbologyExport symbologyExport=QgsVectorFileWriter.NoSymbology): argument 5 has unexpected type 'SpatialReference'| QgsVectorFileWriter(QgsVectorFileWriter): argument 1 has unexpected type 'unicode'| The content of CRS is: CRS= PROJCS["SIRGAS_2000_UTM_zone_24S", GEOGCS["SIRGAS 2000", DATUM["Sistema_de_Referencia_Geocentrico_para_las_AmericaS_2000", SPHEROID["GRS 1980",6378137,298.257222101, AUTHORITY["EPSG","7019"]], TOWGS84[0,0,0,0,0,0,0], AUTHORITY["EPSG","6674"]], PRIMEM["Greenwich",0, AUTHORITY["EPSG","8901"]], UNIT["degree",0.0174532925199433, AUTHORITY["EPSG","9122"]], AUTHORITY["EPSG","4674"]], PROJECTION["Transverse_Mercator"], PARAMETER["latitude_of_origin",0], PARAMETER["central_meridian",-39], PARAMETER["scale_factor",0.9996], PARAMETER["false_easting",500000], PARAMETER["false_northing",10000000], UNIT["Meter",1]] If instead of CRS I use : writer = VectorWriter(Outfile, None, fields,\ QGis.WKBPoint, \ QgsCoordinateReferenceSystem(31984, QgsCoordinateReferenceSystem.EpsgCrsId)) Everything works, so I understand that the format of information is not correct. The CRS is : class 'osgeo.osr.SpatialReference' And the convertion above is: class 'qgis._core.QgsCoordinateReferenceSystem' Is there a way to convert from one to the other? BTW: 2.10.1-Pisa in Linux [Xu|U]buntu 14.04.3 64bits. Thanks in advance. Roxo -- ---------------- Non luctari, ludare -------------------+ WYSIWYG Fernando M. Roxo da Motta <pe...@roxo.org> | Editor? Except where explicitly stated I speak on my own behalf.| VI !! ( Usuário Linux registrado #39505 ) | I see text, ------------ Quis custodiet ipsos custodes?-------------+ I get text! _______________________________________________ Qgis-user mailing list Qgis-user@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/qgis-user