Quantum GIS API Documentation  1.8
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,
  ErrInvalidLayer
}

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(), QString *newFilename=0)
 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
QMap< int, int > attrIdxToOgrIdx ()
 ~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, QString *newFilename=0)
 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 42 of file qgsvectorfilewriter.h.


Member Enumeration Documentation

Enumerator:
NoError 
ErrDriverNotFound 
ErrCreateDataSource 
ErrCreateLayer 
ErrAttributeTypeUnsupported 
ErrAttributeCreationFailed 
ErrProjection 
ErrFeatureWriteFailed 
ErrInvalidLayer 

Definition at line 46 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(),
QString *  newFilename = 0 
)

close opened shapefile for writing

Definition at line 557 of file qgsvectorfilewriter.cpp.

References mDS, and mGeom.


Member Function Documentation

QMap<int, int> QgsVectorFileWriter::attrIdxToOgrIdx ( ) [inline]

Definition at line 121 of file qgsvectorfilewriter.h.

Definition at line 397 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 734 of file qgsvectorfilewriter.cpp.

References file, and QgsDebugMsg.

Referenced by QgsVectorFileWriter().

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

Definition at line 843 of file qgsvectorfilewriter.cpp.

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

retrieves error message

Note:
added in 1.5

Definition at line 408 of file qgsvectorfilewriter.cpp.

References mErrorMessage.

Referenced by writeAsVectorFormat().

Returns filter string that can be used for dialogs.

Definition at line 816 of file qgsvectorfilewriter.cpp.

References supportedFiltersAndFormats().

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

Creates a filter for an OGR driver key.

Definition at line 831 of file qgsvectorfilewriter.cpp.

References driverMetadata().

Referenced by supportedFiltersAndFormats().

checks whether there were any errors in constructor

Definition at line 403 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 786 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 759 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 574 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,
QString *  newFilename = 0 
) [static]

Member Data Documentation

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

map attribute indizes to OGR field indexes

Definition at line 152 of file qgsvectorfilewriter.h.

Referenced by addFeature(), and QgsVectorFileWriter().

QTextCodec* QgsVectorFileWriter::mCodec [protected]

Definition at line 146 of file qgsvectorfilewriter.h.

Referenced by addFeature(), and QgsVectorFileWriter().

Definition at line 136 of file qgsvectorfilewriter.h.

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

contains error value if construction was not successful

Definition at line 143 of file qgsvectorfilewriter.h.

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

Definition at line 144 of file qgsvectorfilewriter.h.

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

Definition at line 140 of file qgsvectorfilewriter.h.

Referenced by addFeature(), and QgsVectorFileWriter().

Definition at line 138 of file qgsvectorfilewriter.h.

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

Definition at line 137 of file qgsvectorfilewriter.h.

Referenced by addFeature(), and QgsVectorFileWriter().

geometry type which is being used

Definition at line 149 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