QGIS API Documentation  2.99.0-Master (9caa722)
Classes | Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
QgsVectorFileWriter Class Reference

A convenience class for writing vector files to disk. More...

#include <qgsvectorfilewriter.h>

Inheritance diagram for QgsVectorFileWriter:
Inheritance graph
[legend]

Classes

class  BoolOption
 
class  FieldValueConverter
 Interface to convert raw field values to their user-friendly value. More...
 
class  HiddenOption
 
class  IntOption
 
struct  MetaData
 
class  Option
 
class  SaveVectorOptions
 Options to pass to writeAsVectorFormat() More...
 
class  SetOption
 
class  StringOption
 

Public Types

enum  ActionOnExistingFile { CreateOrOverwriteFile, CreateOrOverwriteLayer, AppendToLayerNoNewFields, AppendToLayerAddFields }
 Combination of CanAddNewLayer, CanAppendToExistingLayer, CanAddNewFieldsToExistingLayer or CanDeleteLayer. More...
 
enum  EditionCapability { CanAddNewLayer = 1 << 0, CanAppendToExistingLayer = 1 << 1, CanAddNewFieldsToExistingLayer = 1 << 2, CanDeleteLayer = 1 << 3 }
 Edition capability flags. More...
 
enum  OptionType { Set, String, Int, Hidden }
 
enum  SymbologyExport { NoSymbology = 0, FeatureSymbology, SymbolLayerSymbology }
 
enum  WriterError {
  NoError = 0, ErrDriverNotFound, ErrCreateDataSource, ErrCreateLayer,
  ErrAttributeTypeUnsupported, ErrAttributeCreationFailed, ErrProjection, ErrFeatureWriteFailed,
  ErrInvalidLayer, Canceled
}
 
- Public Types inherited from QgsFeatureSink
enum  Flag { FastInsert = 1 << 1 }
 Flags controlling how features are added to a sink. More...
 

Public Member Functions

 QgsVectorFileWriter (const QString &vectorFileName, const QString &fileEncoding, const QgsFields &fields, QgsWkbTypes::Type geometryType, const QgsCoordinateReferenceSystem &srs=QgsCoordinateReferenceSystem(), const QString &driverName="ESRI Shapefile", const QStringList &datasourceOptions=QStringList(), const QStringList &layerOptions=QStringList(), QString *newFilename=nullptr, QgsVectorFileWriter::SymbologyExport symbologyExport=QgsVectorFileWriter::NoSymbology)
 Create a new vector file writer. More...
 
 QgsVectorFileWriter (const QString &vectorFileName, const QString &fileEncoding, const QgsFields &fields, QgsWkbTypes::Type geometryType, const QgsCoordinateReferenceSystem &srs, const QString &driverName, const QStringList &datasourceOptions, const QStringList &layerOptions, QString *newFilename, QgsVectorFileWriter::SymbologyExport symbologyExport, QgsVectorFileWriter::FieldValueConverter *fieldValueConverter, const QString &layerName, QgsVectorFileWriter::ActionOnExistingFile action)
 Create a new vector file writer. More...
 
 QgsVectorFileWriter (const QgsVectorFileWriter &rh)=delete
 QgsVectorFileWriter cannot be copied. More...
 
 ~QgsVectorFileWriter ()
 Close opened shapefile for writing. More...
 
bool addFeature (QgsFeature &feature, QgsFeatureSink::Flags flags=0) override
 Adds a single feature to the sink. More...
 
bool addFeatures (QgsFeatureList &features, QgsFeatureSink::Flags flags=0) override
 Adds a list of features to the sink. More...
 
bool addFeatureWithStyle (QgsFeature &feature, QgsFeatureRenderer *renderer, QgsUnitTypes::DistanceUnit outputUnit=QgsUnitTypes::DistanceMeters)
 Adds a feature to the currently opened data source, using the style from a specified renderer. More...
 
QMap< int, int > attrIdxToOgrIdx ()
 
QString errorMessage ()
 Retrieves error message. More...
 
QgsVectorFileWriter::WriterError hasError ()
 Checks whether there were any errors in constructor. More...
 
QgsVectorFileWriteroperator= (const QgsVectorFileWriter &rh)=delete
 QgsVectorFileWriter cannot be copied. More...
 
void setSymbologyExport (QgsVectorFileWriter::SymbologyExport symExport)
 
void setSymbologyScale (double scale)
 Set reference scale for output. More...
 
QgsVectorFileWriter::SymbologyExport symbologyExport () const
 
double symbologyScale () const
 Returns the reference scale for output. More...
 
- Public Member Functions inherited from QgsFeatureSink
virtual ~QgsFeatureSink ()=default
 
virtual bool addFeatures (QgsFeatureIterator &iterator, QgsFeatureSink::Flags flags=0)
 Adds all features from the specified iterator to the sink. More...
 
virtual bool flushBuffer ()
 Flushes any internal buffer which may exist in the sink, causing any buffered features to be added to the sink's destination. More...
 

Static Public Member Functions

static bool areThereNewFieldsToCreate (const QString &datasetName, const QString &layerName, QgsVectorLayer *layer, const QgsAttributeList &attributes)
 Returns whether there are among the attributes specified some that do not exist yet in the layer. More...
 
static QString convertCodecNameForEncodingOption (const QString &codecName)
 Converts codec name to string passed to ENCODING layer creation option of OGR Shapefile. More...
 
static QStringList defaultDatasetOptions (const QString &driverName)
 Returns a list of the default dataset options for a specified driver. More...
 
static QStringList defaultLayerOptions (const QString &driverName)
 Returns a list of the default layer options for a specified driver. More...
 
static bool deleteShapeFile (const QString &fileName)
 Delete a shapefile (and its accompanying shx / dbf / prf) More...
 
static QString driverForExtension (const QString &extension)
 Returns the OGR driver name for a specified file extension. More...
 
static bool driverMetadata (const QString &driverName, MetaData &driverMetadata)
 
static QgsVectorFileWriter::EditionCapabilities editionCapabilities (const QString &datasetName)
 Return edition capabilities for an existing dataset name. More...
 
static QString fileFilterString ()
 Returns filter string that can be used for dialogs. More...
 
static QString filterForDriver (const QString &driverName)
 Creates a filter for an OGR driver key. More...
 
static QMap< QString, QString > ogrDriverList ()
 Returns driver list that can be used for dialogs. More...
 
static OGRwkbGeometryType ogrTypeFromWkbType (QgsWkbTypes::Type type)
 Get the ogr geometry type from an internal QGIS wkb type enum. More...
 
static QMap< QString, QString > supportedFiltersAndFormats ()
 Returns a map with format filter string as key and OGR format key as value. More...
 
static QStringList supportedFormatExtensions ()
 Returns a list of file extensions for supported formats. More...
 
static bool targetLayerExists (const QString &datasetName, const QString &layerName)
 Returns whether the target layer already exists. More...
 
static QgsVectorFileWriter::WriterError writeAsVectorFormat (QgsVectorLayer *layer, const QString &fileName, const QString &fileEncoding, const QgsCoordinateReferenceSystem &destCRS=QgsCoordinateReferenceSystem(), const QString &driverName="ESRI Shapefile", bool onlySelected=false, QString *errorMessage=nullptr, const QStringList &datasourceOptions=QStringList(), const QStringList &layerOptions=QStringList(), bool skipAttributeCreation=false, QString *newFilename=nullptr, QgsVectorFileWriter::SymbologyExport symbologyExport=QgsVectorFileWriter::NoSymbology, double symbologyScale=1.0, const QgsRectangle *filterExtent=nullptr, QgsWkbTypes::Type overrideGeometryType=QgsWkbTypes::Unknown, bool forceMulti=false, bool includeZ=false, const QgsAttributeList &attributes=QgsAttributeList(), QgsVectorFileWriter::FieldValueConverter *fieldValueConverter=nullptr)
 Write contents of vector layer to an (OGR supported) vector formt. More...
 
static QgsVectorFileWriter::WriterError writeAsVectorFormat (QgsVectorLayer *layer, const QString &fileName, const QString &fileEncoding, const QgsCoordinateTransform &ct, const QString &driverName="ESRI Shapefile", bool onlySelected=false, QString *errorMessage=nullptr, const QStringList &datasourceOptions=QStringList(), const QStringList &layerOptions=QStringList(), bool skipAttributeCreation=false, QString *newFilename=nullptr, QgsVectorFileWriter::SymbologyExport symbologyExport=QgsVectorFileWriter::NoSymbology, double symbologyScale=1.0, const QgsRectangle *filterExtent=nullptr, QgsWkbTypes::Type overrideGeometryType=QgsWkbTypes::Unknown, bool forceMulti=false, bool includeZ=false, const QgsAttributeList &attributes=QgsAttributeList(), QgsVectorFileWriter::FieldValueConverter *fieldValueConverter=nullptr)
 Writes a layer out to a vector file. More...
 
static QgsVectorFileWriter::WriterError writeAsVectorFormat (QgsVectorLayer *layer, const QString &fileName, const QgsVectorFileWriter::SaveVectorOptions &options, QString *newFilename=nullptr, QString *errorMessage=nullptr)
 Writes a layer out to a vector file. More...
 

Protected Member Functions

OGRGeometryH createEmptyGeometry (QgsWkbTypes::Type wkbType)
 

Protected Attributes

QMap< int, int > mAttrIdxToOgrIdx
 Map attribute indizes to OGR field indexes. More...
 
QTextCodec * mCodec = nullptr
 
OGRDataSourceH mDS = nullptr
 
WriterError mError
 Contains error value if construction was not successful. More...
 
QString mErrorMessage
 
QgsFields mFields
 
FieldValueConvertermFieldValueConverter = nullptr
 Field value converter. More...
 
OGRLayerH mLayer = nullptr
 
QString mOgrDriverName
 
OGRSpatialReferenceH mOgrRef = nullptr
 
QMap< QgsSymbolLayer *, QString > mSymbolLayerTable
 
SymbologyExport mSymbologyExport
 
double mSymbologyScale
 Scale for symbology export (e.g. for symbols units in map units) More...
 
QgsWkbTypes::Type mWkbType
 Geometry type which is being used. More...
 

Detailed Description

A convenience class for writing vector files to disk.

There are two possibilities how to use this class:

  1. static call to QgsVectorFileWriter::writeAsVectorFormat(...) which saves the whole vector layer
  2. create an instance of the class and issue calls to addFeature(...)

Definition at line 44 of file qgsvectorfilewriter.h.

Member Enumeration Documentation

◆ ActionOnExistingFile

Combination of CanAddNewLayer, CanAppendToExistingLayer, CanAddNewFieldsToExistingLayer or CanDeleteLayer.

Since
QGIS 3.0 Enumeration to describe how to handle existing files
QGIS 3.0
Enumerator
CreateOrOverwriteFile 

Create or overwrite file.

CreateOrOverwriteLayer 

Create or overwrite layer.

AppendToLayerNoNewFields 

Append features to existing layer, but do not create new fields.

AppendToLayerAddFields 

Append features to existing layer, and create new fields if needed.

Definition at line 236 of file qgsvectorfilewriter.h.

◆ EditionCapability

Edition capability flags.

Since
QGIS 3.0
Enumerator
CanAddNewLayer 

Flag to indicate that a new layer can be added to the dataset.

CanAppendToExistingLayer 

Flag to indicate that new features can be added to an existing layer.

CanAddNewFieldsToExistingLayer 

Flag to indicate that new fields can be added to an existing layer. Imply CanAppendToExistingLayer.

CanDeleteLayer 

Flag to indicate that an existing layer can be deleted.

Definition at line 214 of file qgsvectorfilewriter.h.

◆ OptionType

Enumerator
Set 
String 
Int 
Hidden 

Definition at line 47 of file qgsvectorfilewriter.h.

◆ SymbologyExport

Enumerator
NoSymbology 
FeatureSymbology 
SymbolLayerSymbology 

Definition at line 174 of file qgsvectorfilewriter.h.

◆ WriterError

Enumerator
NoError 
ErrDriverNotFound 
ErrCreateDataSource 
ErrCreateLayer 
ErrAttributeTypeUnsupported 
ErrAttributeCreationFailed 
ErrProjection 
ErrFeatureWriteFailed 
ErrInvalidLayer 
Canceled 

Writing was interrupted by manual cancelation.

Definition at line 160 of file qgsvectorfilewriter.h.

Constructor & Destructor Documentation

◆ QgsVectorFileWriter() [1/3]

QgsVectorFileWriter::QgsVectorFileWriter ( const QString &  vectorFileName,
const QString &  fileEncoding,
const QgsFields fields,
QgsWkbTypes::Type  geometryType,
const QgsCoordinateReferenceSystem srs = QgsCoordinateReferenceSystem(),
const QString &  driverName = "ESRI Shapefile",
const QStringList &  datasourceOptions = QStringList(),
const QStringList &  layerOptions = QStringList(),
QString *  newFilename = nullptr,
QgsVectorFileWriter::SymbologyExport  symbologyExport = QgsVectorFileWriter::NoSymbology 
)

Create a new vector file writer.

Definition at line 73 of file qgsvectorfilewriter.cpp.

◆ QgsVectorFileWriter() [2/3]

QgsVectorFileWriter::QgsVectorFileWriter ( const QString &  vectorFileName,
const QString &  fileEncoding,
const QgsFields fields,
QgsWkbTypes::Type  geometryType,
const QgsCoordinateReferenceSystem srs,
const QString &  driverName,
const QStringList &  datasourceOptions,
const QStringList &  layerOptions,
QString *  newFilename,
QgsVectorFileWriter::SymbologyExport  symbologyExport,
QgsVectorFileWriter::FieldValueConverter fieldValueConverter,
const QString &  layerName,
QgsVectorFileWriter::ActionOnExistingFile  action 
)

Create a new vector file writer.

Parameters
vectorFileNamefile name to write to
fileEncodingencoding to use
fieldsfields to write
geometryTypegeometry type of output file
srsspatial reference system of output file
driverNameOGR driver to use
datasourceOptionslist of OGR data source creation options
layerOptionslist of OGR layer creation options
newFilenamepotentially modified file name (output parameter)
symbologyExportsymbology to export
fieldValueConverterfield value converter (added in QGIS 2.16)
layerNamelayer name. If let empty, it will be derived from the filename (added in QGIS 3.0)
actionaction on existing file (added in QGIS 3.0)
Note
not available in Python bindings

Definition at line 95 of file qgsvectorfilewriter.cpp.

◆ QgsVectorFileWriter() [3/3]

QgsVectorFileWriter::QgsVectorFileWriter ( const QgsVectorFileWriter rh)
delete

QgsVectorFileWriter cannot be copied.

◆ ~QgsVectorFileWriter()

QgsVectorFileWriter::~QgsVectorFileWriter ( )

Close opened shapefile for writing.

Definition at line 2223 of file qgsvectorfilewriter.cpp.

Member Function Documentation

◆ addFeature()

bool QgsVectorFileWriter::addFeature ( QgsFeature feature,
QgsFeatureSink::Flags  flags = 0 
)
overridevirtual

Adds a single feature to the sink.

Feature addition behavior is controlled by the specified flags.

See also
addFeatures()
Returns
true in case of success and false in case of failure

Reimplemented from QgsFeatureSink.

Definition at line 1899 of file qgsvectorfilewriter.cpp.

◆ addFeatures()

bool QgsVectorFileWriter::addFeatures ( QgsFeatureList features,
QgsFeatureSink::Flags  flags = 0 
)
overridevirtual

Adds a list of features to the sink.

Feature addition behavior is controlled by the specified flags.

See also
addFeature()
Returns
true in case of success and false in case of failure

Implements QgsFeatureSink.

Definition at line 1904 of file qgsvectorfilewriter.cpp.

◆ addFeatureWithStyle()

bool QgsVectorFileWriter::addFeatureWithStyle ( QgsFeature feature,
QgsFeatureRenderer renderer,
QgsUnitTypes::DistanceUnit  outputUnit = QgsUnitTypes::DistanceMeters 
)

Adds a feature to the currently opened data source, using the style from a specified renderer.

Since
QGIS 3.0

Definition at line 1915 of file qgsvectorfilewriter.cpp.

◆ areThereNewFieldsToCreate()

bool QgsVectorFileWriter::areThereNewFieldsToCreate ( const QString &  datasetName,
const QString &  layerName,
QgsVectorLayer layer,
const QgsAttributeList attributes 
)
static

Returns whether there are among the attributes specified some that do not exist yet in the layer.

Since
QGIS 3.0

Definition at line 3296 of file qgsvectorfilewriter.cpp.

◆ attrIdxToOgrIdx()

QMap<int, int> QgsVectorFileWriter::attrIdxToOgrIdx ( )
inline
Note
not available in Python bindings

Definition at line 529 of file qgsvectorfilewriter.h.

◆ convertCodecNameForEncodingOption()

QString QgsVectorFileWriter::convertCodecNameForEncodingOption ( const QString &  codecName)
static

Converts codec name to string passed to ENCODING layer creation option of OGR Shapefile.

Definition at line 2895 of file qgsvectorfilewriter.cpp.

◆ createEmptyGeometry()

OGRGeometryH QgsVectorFileWriter::createEmptyGeometry ( QgsWkbTypes::Type  wkbType)
protected
Note
not available in Python bindings

Definition at line 638 of file qgsvectorfilewriter.cpp.

◆ defaultDatasetOptions()

QStringList QgsVectorFileWriter::defaultDatasetOptions ( const QString &  driverName)
static

Returns a list of the default dataset options for a specified driver.

Parameters
driverNamename of OGR driver
Since
QGIS 3.0
See also
defaultLayerOptions()

Definition at line 1859 of file qgsvectorfilewriter.cpp.

◆ defaultLayerOptions()

QStringList QgsVectorFileWriter::defaultLayerOptions ( const QString &  driverName)
static

Returns a list of the default layer options for a specified driver.

Parameters
driverNamename of OGR driver
Since
QGIS 3.0
See also
defaultDatasetOptions()

Definition at line 1868 of file qgsvectorfilewriter.cpp.

◆ deleteShapeFile()

bool QgsVectorFileWriter::deleteShapeFile ( const QString &  fileName)
static

Delete a shapefile (and its accompanying shx / dbf / prf)

Parameters
fileName/path/to/file.shp
Returns
bool true if the file was deleted successfully

Definition at line 2683 of file qgsvectorfilewriter.cpp.

◆ driverForExtension()

QString QgsVectorFileWriter::driverForExtension ( const QString &  extension)
static

Returns the OGR driver name for a specified file extension.

E.g. the driver name for the ".shp" extension is "ESRI Shapefile". If no suitable drivers are found then an empty string is returned.

Since
QGIS 3.0

Definition at line 2837 of file qgsvectorfilewriter.cpp.

◆ driverMetadata()

bool QgsVectorFileWriter::driverMetadata ( const QString &  driverName,
QgsVectorFileWriter::MetaData driverMetadata 
)
static

Definition at line 1841 of file qgsvectorfilewriter.cpp.

◆ editionCapabilities()

QgsVectorFileWriter::EditionCapabilities QgsVectorFileWriter::editionCapabilities ( const QString &  datasetName)
static

Return edition capabilities for an existing dataset name.

Since
QGIS 3.0

Definition at line 3238 of file qgsvectorfilewriter.cpp.

◆ errorMessage()

QString QgsVectorFileWriter::errorMessage ( )

Retrieves error message.

Definition at line 1894 of file qgsvectorfilewriter.cpp.

◆ fileFilterString()

QString QgsVectorFileWriter::fileFilterString ( )
static

Returns filter string that can be used for dialogs.

Definition at line 2871 of file qgsvectorfilewriter.cpp.

◆ filterForDriver()

QString QgsVectorFileWriter::filterForDriver ( const QString &  driverName)
static

Creates a filter for an OGR driver key.

Definition at line 2886 of file qgsvectorfilewriter.cpp.

◆ hasError()

QgsVectorFileWriter::WriterError QgsVectorFileWriter::hasError ( )

Checks whether there were any errors in constructor.

Definition at line 1889 of file qgsvectorfilewriter.cpp.

◆ ogrDriverList()

QMap< QString, QString > QgsVectorFileWriter::ogrDriverList ( )
static

Returns driver list that can be used for dialogs.

It contains all OGR drivers

  • some additional internal QGIS driver names to distinguish between more supported formats of the same OGR driver

Definition at line 2771 of file qgsvectorfilewriter.cpp.

◆ ogrTypeFromWkbType()

OGRwkbGeometryType QgsVectorFileWriter::ogrTypeFromWkbType ( QgsWkbTypes::Type  type)
static

Get the ogr geometry type from an internal QGIS wkb type enum.

Will drop M values and convert Z to 2.5D where required.

Note
not available in Python bindings

Definition at line 1877 of file qgsvectorfilewriter.cpp.

◆ operator=()

QgsVectorFileWriter& QgsVectorFileWriter::operator= ( const QgsVectorFileWriter rh)
delete

QgsVectorFileWriter cannot be copied.

◆ setSymbologyExport()

void QgsVectorFileWriter::setSymbologyExport ( QgsVectorFileWriter::SymbologyExport  symExport)
inline

Definition at line 541 of file qgsvectorfilewriter.h.

◆ setSymbologyScale()

void QgsVectorFileWriter::setSymbologyScale ( double  scale)

Set reference scale for output.

The scale value indicates the scale denominator, e.g. 1000.0 for a 1:1000 map.

Since
QGIS 3.0
See also
symbologyScale()

Definition at line 2709 of file qgsvectorfilewriter.cpp.

◆ supportedFiltersAndFormats()

QMap< QString, QString > QgsVectorFileWriter::supportedFiltersAndFormats ( )
static

Returns a map with format filter string as key and OGR format key as value.

See also
supportedOutputVectorLayerExtensions()

Definition at line 2715 of file qgsvectorfilewriter.cpp.

◆ supportedFormatExtensions()

QStringList QgsVectorFileWriter::supportedFormatExtensions ( )
static

Returns a list of file extensions for supported formats.

Since
QGIS 3.0
See also
supportedFiltersAndFormats()

Definition at line 2742 of file qgsvectorfilewriter.cpp.

◆ symbologyExport()

QgsVectorFileWriter::SymbologyExport QgsVectorFileWriter::symbologyExport ( ) const
inline

Definition at line 540 of file qgsvectorfilewriter.h.

◆ symbologyScale()

double QgsVectorFileWriter::symbologyScale ( ) const
inline

Returns the reference scale for output.

The scale value indicates the scale denominator, e.g. 1000.0 for a 1:1000 map.

Since
QGIS 3.0
See also
setSymbologyScale()

Definition at line 549 of file qgsvectorfilewriter.h.

◆ targetLayerExists()

bool QgsVectorFileWriter::targetLayerExists ( const QString &  datasetName,
const QString &  layerName 
)
static

Returns whether the target layer already exists.

Since
QGIS 3.0

Definition at line 3278 of file qgsvectorfilewriter.cpp.

◆ writeAsVectorFormat() [1/3]

QgsVectorFileWriter::WriterError QgsVectorFileWriter::writeAsVectorFormat ( QgsVectorLayer layer,
const QString &  fileName,
const QString &  fileEncoding,
const QgsCoordinateReferenceSystem destCRS = QgsCoordinateReferenceSystem(),
const QString &  driverName = "ESRI Shapefile",
bool  onlySelected = false,
QString *  errorMessage = nullptr,
const QStringList &  datasourceOptions = QStringList(),
const QStringList &  layerOptions = QStringList(),
bool  skipAttributeCreation = false,
QString *  newFilename = nullptr,
QgsVectorFileWriter::SymbologyExport  symbologyExport = QgsVectorFileWriter::NoSymbology,
double  symbologyScale = 1.0,
const QgsRectangle filterExtent = nullptr,
QgsWkbTypes::Type  overrideGeometryType = QgsWkbTypes::Unknown,
bool  forceMulti = false,
bool  includeZ = false,
const QgsAttributeList attributes = QgsAttributeList(),
QgsVectorFileWriter::FieldValueConverter fieldValueConverter = nullptr 
)
static

Write contents of vector layer to an (OGR supported) vector formt.

Parameters
layerlayer to write
fileNamefile name to write to
fileEncodingencoding to use
destCRSCRS to reproject exported geometries to, or invalid CRS for no reprojection
driverNameOGR driver to use
onlySelectedwrite only selected features of layer
errorMessagepointer to buffer fo error message
datasourceOptionslist of OGR data source creation options
layerOptionslist of OGR layer creation options
skipAttributeCreationonly write geometries
newFilenameQString pointer which will contain the new file name created (in case it is different to fileName).
symbologyExportsymbology to export
symbologyScalescale of symbology
filterExtentif not a null pointer, only features intersecting the extent will be saved (added in QGIS 2.4)
overrideGeometryTypeset to a valid geometry type to override the default geometry type for the layer. This parameter allows for conversion of geometryless tables to null geometries, etc (added in QGIS 2.14)
forceMultiset to true to force creation of multi* geometries (added in QGIS 2.14)
includeZset to true to include z dimension in output. This option is only valid if overrideGeometryType is set. (added in QGIS 2.14)
attributesattributes to export (empty means all unless skipAttributeCreation is set)
fieldValueConverterfield value converter (added in QGIS 2.16)

Definition at line 2237 of file qgsvectorfilewriter.cpp.

◆ writeAsVectorFormat() [2/3]

QgsVectorFileWriter::WriterError QgsVectorFileWriter::writeAsVectorFormat ( QgsVectorLayer layer,
const QString &  fileName,
const QString &  fileEncoding,
const QgsCoordinateTransform ct,
const QString &  driverName = "ESRI Shapefile",
bool  onlySelected = false,
QString *  errorMessage = nullptr,
const QStringList &  datasourceOptions = QStringList(),
const QStringList &  layerOptions = QStringList(),
bool  skipAttributeCreation = false,
QString *  newFilename = nullptr,
QgsVectorFileWriter::SymbologyExport  symbologyExport = QgsVectorFileWriter::NoSymbology,
double  symbologyScale = 1.0,
const QgsRectangle filterExtent = nullptr,
QgsWkbTypes::Type  overrideGeometryType = QgsWkbTypes::Unknown,
bool  forceMulti = false,
bool  includeZ = false,
const QgsAttributeList attributes = QgsAttributeList(),
QgsVectorFileWriter::FieldValueConverter fieldValueConverter = nullptr 
)
static

Writes a layer out to a vector file.

Parameters
layerlayer to write
fileNamefile name to write to
fileEncodingencoding to use
ctcoordinate transform to reproject exported geometries with, or invalid transform for no transformation
driverNameOGR driver to use
onlySelectedwrite only selected features of layer
errorMessagepointer to buffer fo error message
datasourceOptionslist of OGR data source creation options
layerOptionslist of OGR layer creation options
skipAttributeCreationonly write geometries
newFilenameQString pointer which will contain the new file name created (in case it is different to fileName).
symbologyExportsymbology to export
symbologyScalescale of symbology
filterExtentif not a null pointer, only features intersecting the extent will be saved (added in QGIS 2.4)
overrideGeometryTypeset to a valid geometry type to override the default geometry type for the layer. This parameter allows for conversion of geometryless tables to null geometries, etc (added in QGIS 2.14)
forceMultiset to true to force creation of multi* geometries (added in QGIS 2.14)
includeZset to true to include z dimension in output. This option is only valid if overrideGeometryType is set. (added in QGIS 2.14)
attributesattributes to export (empty means all unless skipAttributeCreation is set)
fieldValueConverterfield value converter (added in QGIS 2.16)
Since
QGIS 2.2

Definition at line 2271 of file qgsvectorfilewriter.cpp.

◆ writeAsVectorFormat() [3/3]

QgsVectorFileWriter::WriterError QgsVectorFileWriter::writeAsVectorFormat ( QgsVectorLayer layer,
const QString &  fileName,
const QgsVectorFileWriter::SaveVectorOptions options,
QString *  newFilename = nullptr,
QString *  errorMessage = nullptr 
)
static

Writes a layer out to a vector file.

Parameters
layersource layer to write
fileNamefile name to write to
optionsoptions.
newFilenameQString pointer which will contain the new file name created (in case it is different to fileName).
errorMessagepointer to buffer fo error message
Since
QGIS 3.0

Definition at line 2333 of file qgsvectorfilewriter.cpp.

Member Data Documentation

◆ mAttrIdxToOgrIdx

QMap<int, int> QgsVectorFileWriter::mAttrIdxToOgrIdx
protected

Map attribute indizes to OGR field indexes.

Definition at line 625 of file qgsvectorfilewriter.h.

◆ mCodec

QTextCodec* QgsVectorFileWriter::mCodec = nullptr
protected

Definition at line 619 of file qgsvectorfilewriter.h.

◆ mDS

OGRDataSourceH QgsVectorFileWriter::mDS = nullptr
protected

Definition at line 609 of file qgsvectorfilewriter.h.

◆ mError

WriterError QgsVectorFileWriter::mError
protected

Contains error value if construction was not successful.

Definition at line 616 of file qgsvectorfilewriter.h.

◆ mErrorMessage

QString QgsVectorFileWriter::mErrorMessage
protected

Definition at line 617 of file qgsvectorfilewriter.h.

◆ mFields

QgsFields QgsVectorFileWriter::mFields
protected

Definition at line 613 of file qgsvectorfilewriter.h.

◆ mFieldValueConverter

FieldValueConverter* QgsVectorFileWriter::mFieldValueConverter = nullptr
protected

Field value converter.

Definition at line 637 of file qgsvectorfilewriter.h.

◆ mLayer

OGRLayerH QgsVectorFileWriter::mLayer = nullptr
protected

Definition at line 610 of file qgsvectorfilewriter.h.

◆ mOgrDriverName

QString QgsVectorFileWriter::mOgrDriverName
protected

Definition at line 634 of file qgsvectorfilewriter.h.

◆ mOgrRef

OGRSpatialReferenceH QgsVectorFileWriter::mOgrRef = nullptr
protected

Definition at line 611 of file qgsvectorfilewriter.h.

◆ mSymbolLayerTable

QMap< QgsSymbolLayer *, QString > QgsVectorFileWriter::mSymbolLayerTable
protected

Definition at line 629 of file qgsvectorfilewriter.h.

◆ mSymbologyExport

SymbologyExport QgsVectorFileWriter::mSymbologyExport
protected

Definition at line 627 of file qgsvectorfilewriter.h.

◆ mSymbologyScale

double QgsVectorFileWriter::mSymbologyScale
protected

Scale for symbology export (e.g. for symbols units in map units)

Definition at line 632 of file qgsvectorfilewriter.h.

◆ mWkbType

QgsWkbTypes::Type QgsVectorFileWriter::mWkbType
protected

Geometry type which is being used.

Definition at line 622 of file qgsvectorfilewriter.h.


The documentation for this class was generated from the following files: