Quantum GIS API Documentation  1.7.4
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | Static Private Member Functions
QgsVectorFileWriter Class Reference

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

#include <qgsvectorfilewriter.h>

List of all members.

Public Types

enum  WriterError {
  NoError = 0, ErrDriverNotFound, ErrCreateDataSource, ErrCreateLayer,
  ErrAttributeTypeUnsupported, ErrAttributeCreationFailed, ErrProjection, ErrFeatureWriteFailed
}

Public Member Functions

 QgsVectorFileWriter (const QString &vectorFileName, const QString &fileEncoding, const QgsFieldMap &fields, QGis::WkbType geometryType, const QgsCoordinateReferenceSystem *srs, const QString &driverName="ESRI Shapefile", const QStringList &datasourceOptions=QStringList(), const QStringList &layerOptions=QStringList())
 create shapefile and initialize it
WriterError hasError ()
 checks whether there were any errors in constructor
QString errorMessage ()
 retrieves error message
bool addFeature (QgsFeature &feature)
 add feature to the currently opened shapefile
 ~QgsVectorFileWriter ()
 close opened shapefile for writing

Static Public Member Functions

static Q_DECL_DEPRECATED
WriterError 
writeAsShapefile (QgsVectorLayer *layer, const QString &shapefileName, const QString &fileEncoding, const QgsCoordinateReferenceSystem *destCRS, bool onlySelected=false, QString *errorMessage=0, const QStringList &datasourceOptions=QStringList(), const QStringList &layerOptions=QStringList())
 Write contents of vector layer to a shapefile.
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)
 Write contents of vector layer to an (OGR supported) vector formt.
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 bool deleteShapeFile (QString theFileName)
 Delete a shapefile (and its accompanying shx / dbf / prf)

Protected Member Functions

OGRGeometryH createEmptyGeometry (QGis::WkbType wkbType)

Protected Attributes

OGRDataSourceH mDS
OGRLayerH mLayer
OGRGeometryH mGeom
QgsFieldMap 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

Static Private Member Functions

static bool driverMetadata (QString driverName, QString &longName, QString &trLongName, QString &glob, QString &ext)

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.

Definition at line 43 of file qgsvectorfilewriter.h.


Member Enumeration Documentation

Enumerator:
NoError 
ErrDriverNotFound 
ErrCreateDataSource 
ErrCreateLayer 
ErrAttributeTypeUnsupported 
ErrAttributeCreationFailed 
ErrProjection 
ErrFeatureWriteFailed 

Definition at line 47 of file qgsvectorfilewriter.h.


Constructor & Destructor Documentation

QgsVectorFileWriter::QgsVectorFileWriter ( const QString &  vectorFileName,
const QString &  fileEncoding,
const QgsFieldMap fields,
QGis::WkbType  geometryType,
const QgsCoordinateReferenceSystem srs,
const QString &  driverName = "ESRI Shapefile",
const QStringList &  datasourceOptions = QStringList(),
const QStringList &  layerOptions = QStringList() 
)

close opened shapefile for writing

Definition at line 542 of file qgsvectorfilewriter.cpp.

References mDS, and mGeom.


Member Function Documentation

Definition at line 390 of file qgsvectorfilewriter.cpp.

Referenced by addFeature(), and QgsVectorFileWriter().

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

Definition at line 713 of file qgsvectorfilewriter.cpp.

References QgsDebugMsg.

Referenced by QgsVectorFileWriter().

bool QgsVectorFileWriter::driverMetadata ( QString  driverName,
QString &  longName,
QString &  trLongName,
QString &  glob,
QString &  ext 
) [static, private]

Definition at line 822 of file qgsvectorfilewriter.cpp.

Referenced by filterForDriver(), ogrDriverList(), and QgsVectorFileWriter().

retrieves error message

Note:
added in 1.5

Definition at line 401 of file qgsvectorfilewriter.cpp.

References mErrorMessage.

Referenced by writeAsVectorFormat().

Returns filter string that can be used for dialogs.

Definition at line 795 of file qgsvectorfilewriter.cpp.

References supportedFiltersAndFormats().

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

Creates a filter for an OGR driver key.

Definition at line 810 of file qgsvectorfilewriter.cpp.

References driverMetadata().

Referenced by supportedFiltersAndFormats().

checks whether there were any errors in constructor

Definition at line 396 of file qgsvectorfilewriter.cpp.

References mError.

Referenced by writeAsVectorFormat().

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

Returns driver list that can be used for dialogs.

Definition at line 765 of file qgsvectorfilewriter.cpp.

References driverMetadata(), and QgsApplication::registerOgrDrivers().

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

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

Definition at line 738 of file qgsvectorfilewriter.cpp.

References filterForDriver(), and QgsApplication::registerOgrDrivers().

Referenced by fileFilterString().

QgsVectorFileWriter::WriterError QgsVectorFileWriter::writeAsShapefile ( QgsVectorLayer layer,
const QString &  shapefileName,
const QString &  fileEncoding,
const QgsCoordinateReferenceSystem destCRS,
bool  onlySelected = false,
QString *  errorMessage = 0,
const QStringList &  datasourceOptions = QStringList(),
const QStringList &  layerOptions = QStringList() 
) [static]

Write contents of vector layer to a shapefile.

Deprecated:
Use writeAsVectorFormat instead

Definition at line 559 of file qgsvectorfilewriter.cpp.

References writeAsVectorFormat().

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 
) [static]

Member Data Documentation

QMap<int, int> QgsVectorFileWriter::mAttrIdxToOgrIdx [protected]

map attribute indizes to OGR field indexes

Definition at line 148 of file qgsvectorfilewriter.h.

Referenced by addFeature(), and QgsVectorFileWriter().

QTextCodec* QgsVectorFileWriter::mCodec [protected]

Definition at line 142 of file qgsvectorfilewriter.h.

Referenced by addFeature(), and QgsVectorFileWriter().

Definition at line 132 of file qgsvectorfilewriter.h.

Referenced by QgsVectorFileWriter(), and ~QgsVectorFileWriter().

contains error value if construction was not successful

Definition at line 139 of file qgsvectorfilewriter.h.

Referenced by addFeature(), hasError(), and QgsVectorFileWriter().

Definition at line 140 of file qgsvectorfilewriter.h.

Referenced by addFeature(), errorMessage(), and QgsVectorFileWriter().

Definition at line 136 of file qgsvectorfilewriter.h.

Referenced by addFeature(), and QgsVectorFileWriter().

Definition at line 134 of file qgsvectorfilewriter.h.

Referenced by addFeature(), QgsVectorFileWriter(), and ~QgsVectorFileWriter().

Definition at line 133 of file qgsvectorfilewriter.h.

Referenced by addFeature(), and QgsVectorFileWriter().

geometry type which is being used

Definition at line 145 of file qgsvectorfilewriter.h.

Referenced by addFeature(), and QgsVectorFileWriter().


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines