Quantum GIS API Documentation  1.7.5-Wroclaw
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | Static Private Member Functions | List of all members
QgsVectorFileWriter Class Reference

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

#include <qgsvectorfilewriter.h>

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 More...
 
WriterError hasError ()
 checks whether there were any errors in constructor More...
 
QString errorMessage ()
 retrieves error message More...
 
bool addFeature (QgsFeature &feature)
 add feature to the currently opened shapefile More...
 
 ~QgsVectorFileWriter ()
 close opened shapefile for writing More...
 

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. More...
 
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. More...
 
static QMap< QString, QString > supportedFiltersAndFormats ()
 Returns map with format filter string as key and OGR format key as value. More...
 
static QMap< QString, QString > ogrDriverList ()
 Returns driver list that can be used for dialogs. 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 bool deleteShapeFile (QString theFileName)
 Delete a shapefile (and its accompanying shx / dbf / prf) More...
 

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 More...
 
QString mErrorMessage
 
QTextCodec * mCodec
 
QGis::WkbType mWkbType
 geometry type which is being used More...
 
QMap< int, int > mAttrIdxToOgrIdx
 map attribute indizes to OGR field indexes More...
 

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() 
)
QgsVectorFileWriter::~QgsVectorFileWriter ( )

close opened shapefile for writing

Definition at line 542 of file qgsvectorfilewriter.cpp.

References mDS, and mGeom.

Member Function Documentation

bool QgsVectorFileWriter::addFeature ( QgsFeature feature)
OGRGeometryH QgsVectorFileWriter::createEmptyGeometry ( QGis::WkbType  wkbType)
protected

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 
)
staticprivate

Definition at line 822 of file qgsvectorfilewriter.cpp.

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

QString QgsVectorFileWriter::errorMessage ( )

retrieves error message

Note
added in 1.5

Definition at line 401 of file qgsvectorfilewriter.cpp.

References mErrorMessage.

Referenced by writeAsVectorFormat().

QString QgsVectorFileWriter::fileFilterString ( )
static

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().

QgsVectorFileWriter::WriterError QgsVectorFileWriter::hasError ( )

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().

OGRDataSourceH QgsVectorFileWriter::mDS
protected

Definition at line 132 of file qgsvectorfilewriter.h.

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

WriterError QgsVectorFileWriter::mError
protected

contains error value if construction was not successful

Definition at line 139 of file qgsvectorfilewriter.h.

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

QString QgsVectorFileWriter::mErrorMessage
protected

Definition at line 140 of file qgsvectorfilewriter.h.

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

QgsFieldMap QgsVectorFileWriter::mFields
protected

Definition at line 136 of file qgsvectorfilewriter.h.

Referenced by addFeature(), and QgsVectorFileWriter().

OGRGeometryH QgsVectorFileWriter::mGeom
protected

Definition at line 134 of file qgsvectorfilewriter.h.

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

OGRLayerH QgsVectorFileWriter::mLayer
protected

Definition at line 133 of file qgsvectorfilewriter.h.

Referenced by addFeature(), and QgsVectorFileWriter().

QGis::WkbType QgsVectorFileWriter::mWkbType
protected

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: