QGIS API Documentation  2.6.0-Brighton
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
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>

Classes

class  BoolOption
class  HiddenOption
class  IntOption
struct  MetaData
class  Option
class  SetOption
class  StringOption

Public Types

enum  OptionType { Set, String, Int, Hidden }
enum  WriterError {
  NoError = 0, ErrDriverNotFound, ErrCreateDataSource, ErrCreateLayer,
  ErrAttributeTypeUnsupported, ErrAttributeCreationFailed, ErrProjection, ErrFeatureWriteFailed,
  ErrInvalidLayer
}
enum  SymbologyExport { NoSymbology = 0, FeatureSymbology, SymbolLayerSymbology }

Public Member Functions

 QgsVectorFileWriter (const QString &vectorFileName, const QString &fileEncoding, const QgsFields &fields, QGis::WkbType geometryType, const QgsCoordinateReferenceSystem *srs, const QString &driverName="ESRI Shapefile", const QStringList &datasourceOptions=QStringList(), const QStringList &layerOptions=QStringList(), QString *newFilename=0, SymbologyExport symbologyExport=NoSymbology)
 create shapefile and initialize it
WriterError hasError ()
 checks whether there were any errors in constructor
QString errorMessage ()
 retrieves error message
bool addFeature (QgsFeature &feature, QgsFeatureRendererV2 *renderer=0, QGis::UnitType outputUnit=QGis::Meters)
 add feature to the currently opened shapefile
QMap< int, int > attrIdxToOgrIdx ()
 ~QgsVectorFileWriter ()
 close opened shapefile for writing
SymbologyExport symbologyExport () const
void setSymbologyExport (SymbologyExport symExport)
double symbologyScaleDenominator () const
void setSymbologyScaleDenominator (double d)

Static Public Member Functions

static WriterError writeAsVectorFormat (QgsVectorLayer *layer, const QString &fileName, const QString &fileEncoding, const QgsCoordinateReferenceSystem *destCRS, const QString &driverName="ESRI Shapefile", bool onlySelected=false, QString *errorMessage=0, const QStringList &datasourceOptions=QStringList(), const QStringList &layerOptions=QStringList(), bool skipAttributeCreation=false, QString *newFilename=0, SymbologyExport symbologyExport=NoSymbology, double symbologyScale=1.0, const QgsRectangle *filterExtent=0)
 Write contents of vector layer to an (OGR supported) vector formt.
static WriterError writeAsVectorFormat (QgsVectorLayer *layer, const QString &fileName, const QString &fileEncoding, const QgsCoordinateTransform *ct, const QString &driverName="ESRI Shapefile", bool onlySelected=false, QString *errorMessage=0, const QStringList &datasourceOptions=QStringList(), const QStringList &layerOptions=QStringList(), bool skipAttributeCreation=false, QString *newFilename=0, SymbologyExport symbologyExport=NoSymbology, double symbologyScale=1.0, const QgsRectangle *filterExtent=0)
static QMap< QString, QString > supportedFiltersAndFormats ()
 Returns map with format filter string as key and OGR format key as value.
static QMap< QString, QString > ogrDriverList ()
 Returns driver list that can be used for dialogs.
static QString fileFilterString ()
 Returns filter string that can be used for dialogs.
static QString filterForDriver (const QString &driverName)
 Creates a filter for an OGR driver key.
static QString convertCodecNameForEncodingOption (const QString &codecName)
 Converts codec name to string passed to ENCODING layer creation option of OGR Shapefile.
static bool deleteShapeFile (QString theFileName)
 Delete a shapefile (and its accompanying shx / dbf / prf)
static bool driverMetadata (const QString &driverName, MetaData &driverMetadata)

Protected Member Functions

OGRGeometryH createEmptyGeometry (QGis::WkbType wkbType)

Protected Attributes

OGRDataSourceH mDS
OGRLayerH mLayer
OGRGeometryH mGeom
QgsFields mFields
WriterError mError
 contains error value if construction was not successful
QString mErrorMessage
QTextCodec * mCodec
QGis::WkbType mWkbType
 geometry type which is being used
QMap< int, int > mAttrIdxToOgrIdx
 map attribute indizes to OGR field indexes
SymbologyExport mSymbologyExport
double mSymbologyScaleDenominator
 Scale for symbology export (e.g.

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::writeAsShapefile(...) which saves the whole vector layer
  2. create an instance of the class and issue calls to addFeature(...)

Currently supports only writing to shapefiles, but shouldn't be a problem to add capability to support other OGR-writable formats.

Member Enumeration Documentation

Enumerator:
Set 
String 
Int 
Hidden 
Enumerator:
NoSymbology 
FeatureSymbology 
SymbolLayerSymbology 
Enumerator:
NoError 
ErrDriverNotFound 
ErrCreateDataSource 
ErrCreateLayer 
ErrAttributeTypeUnsupported 
ErrAttributeCreationFailed 
ErrProjection 
ErrFeatureWriteFailed 
ErrInvalidLayer 

Constructor & Destructor Documentation

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

create shapefile and initialize it

QgsVectorFileWriter::~QgsVectorFileWriter ( )

close opened shapefile for writing

Member Function Documentation

bool QgsVectorFileWriter::addFeature ( QgsFeature feature,
QgsFeatureRendererV2 renderer = 0,
QGis::UnitType  outputUnit = QGis::Meters 
)

add feature to the currently opened shapefile

QMap<int, int> QgsVectorFileWriter::attrIdxToOgrIdx ( )
inline
Note
not available in python bindings
QString QgsVectorFileWriter::convertCodecNameForEncodingOption ( const QString &  codecName)
static

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

OGRGeometryH QgsVectorFileWriter::createEmptyGeometry ( QGis::WkbType  wkbType)
protected
Note
not available in python bindings
bool QgsVectorFileWriter::deleteShapeFile ( QString  theFileName)
static

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

Parameters
theFileName/path/to/file.shp
Returns
bool true if the file was deleted successfully
bool QgsVectorFileWriter::driverMetadata ( const QString &  driverName,
QgsVectorFileWriter::MetaData driverMetadata 
)
static
QString QgsVectorFileWriter::errorMessage ( )

retrieves error message

QString QgsVectorFileWriter::fileFilterString ( )
static

Returns filter string that can be used for dialogs.

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

Creates a filter for an OGR driver key.

QgsVectorFileWriter::WriterError QgsVectorFileWriter::hasError ( )

checks whether there were any errors in constructor

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
void QgsVectorFileWriter::setSymbologyExport ( SymbologyExport  symExport)
inline
void QgsVectorFileWriter::setSymbologyScaleDenominator ( double  d)
inline
QMap< QString, QString > QgsVectorFileWriter::supportedFiltersAndFormats ( )
static

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

SymbologyExport QgsVectorFileWriter::symbologyExport ( ) const
inline
double QgsVectorFileWriter::symbologyScaleDenominator ( ) const
inline
QgsVectorFileWriter::WriterError QgsVectorFileWriter::writeAsVectorFormat ( QgsVectorLayer layer,
const QString &  fileName,
const QString &  fileEncoding,
const QgsCoordinateReferenceSystem destCRS,
const QString &  driverName = "ESRI Shapefile",
bool  onlySelected = false,
QString *  errorMessage = 0,
const QStringList &  datasourceOptions = QStringList(),
const QStringList &  layerOptions = QStringList(),
bool  skipAttributeCreation = false,
QString *  newFilename = 0,
SymbologyExport  symbologyExport = NoSymbology,
double  symbologyScale = 1.0,
const QgsRectangle filterExtent = 0 
)
static

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

Parameters
layerlayer to write
fileNamefile name to write to
fileEncodingencoding to use
destCRSpointer to CRS to reproject exported geometries to
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
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 = 0,
const QStringList &  datasourceOptions = QStringList(),
const QStringList &  layerOptions = QStringList(),
bool  skipAttributeCreation = false,
QString *  newFilename = 0,
SymbologyExport  symbologyExport = NoSymbology,
double  symbologyScale = 1.0,
const QgsRectangle filterExtent = 0 
)
static
Note
added in v2.2

Member Data Documentation

QMap<int, int> QgsVectorFileWriter::mAttrIdxToOgrIdx
protected

map attribute indizes to OGR field indexes

QTextCodec* QgsVectorFileWriter::mCodec
protected
OGRDataSourceH QgsVectorFileWriter::mDS
protected
WriterError QgsVectorFileWriter::mError
protected

contains error value if construction was not successful

QString QgsVectorFileWriter::mErrorMessage
protected
QgsFields QgsVectorFileWriter::mFields
protected
OGRGeometryH QgsVectorFileWriter::mGeom
protected
OGRLayerH QgsVectorFileWriter::mLayer
protected
SymbologyExport QgsVectorFileWriter::mSymbologyExport
protected
double QgsVectorFileWriter::mSymbologyScaleDenominator
protected

Scale for symbology export (e.g.

for symbols units in map units)

QGis::WkbType QgsVectorFileWriter::mWkbType
protected

geometry type which is being used


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