#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 | |
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 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()) |
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 QPair< QString, QString > | nameAndGlob (QString driverName) |
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.
NoError | |
ErrDriverNotFound | |
ErrCreateDataSource | |
ErrCreateLayer | |
ErrAttributeTypeUnsupported | |
ErrAttributeCreationFailed | |
ErrProjection | |
ErrFeatureWriteFailed |
Definition at line 47 of file qgsvectorfilewriter.h.
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() | |||
) |
create shapefile and initialize it
Definition at line 46 of file qgsvectorfilewriter.cpp.
References createEmptyGeometry(), deleteShapeFile(), ErrAttributeCreationFailed, ErrAttributeTypeUnsupported, ErrCreateDataSource, ErrCreateLayer, ErrDriverNotFound, mAttrIdxToOgrIdx, mCodec, mDS, mError, mErrorMessage, mFields, mGeom, mLayer, mWkbType, QgsField::name(), QgsDebugMsg, QgsApplication::registerOgrDrivers(), QgsCoordinateReferenceSystem::toWkt(), and QgsField::type().
Referenced by writeAsVectorFormat().
QgsVectorFileWriter::~QgsVectorFileWriter | ( | ) |
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.
Definition at line 512 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() | |||
) | [static] |
Write contents of vector layer to an (OGR supported) vector formt.
Definition at line 525 of file qgsvectorfilewriter.cpp.
References addFeature(), ErrFeatureWriteFailed, errorMessage(), ErrProjection, QgsFeature::geometry(), hasError(), QgsFeature::id(), QgsCoordinateReferenceSystem::isValid(), QgsVectorLayer::nextFeature(), NoError, QgsVectorLayer::pendingAllAttributesList(), QgsVectorLayer::pendingFields(), QgsVectorFileWriter(), QgsVectorLayer::select(), QgsVectorLayer::selectedFeaturesIds(), QgsMapLayer::srs(), QgsGeometry::transform(), QgsFeature::typeName(), QgsLogger::warning(), QgsException::what(), and QgsVectorLayer::wkbType().
Referenced by writeAsShapefile().
QMap< QString, QString > QgsVectorFileWriter::supportedFiltersAndFormats | ( | ) | [static] |
Returns map with format filter string as key and OGR format key as value.
Definition at line 686 of file qgsvectorfilewriter.cpp.
References filterForDriver(), and QgsApplication::registerOgrDrivers().
Referenced by fileFilterString().
QMap< QString, QString > QgsVectorFileWriter::ogrDriverList | ( | ) | [static] |
Returns driver list that can be used for dialogs.
Definition at line 713 of file qgsvectorfilewriter.cpp.
References nameAndGlob(), and QgsApplication::registerOgrDrivers().
QString QgsVectorFileWriter::fileFilterString | ( | ) | [static] |
Returns filter string that can be used for dialogs.
Definition at line 740 of file qgsvectorfilewriter.cpp.
References supportedFiltersAndFormats().
QString QgsVectorFileWriter::filterForDriver | ( | const QString & | driverName | ) | [static] |
Creates a filter for an OGR driver key.
Definition at line 755 of file qgsvectorfilewriter.cpp.
References nameAndGlob().
Referenced by supportedFiltersAndFormats().
QgsVectorFileWriter::WriterError QgsVectorFileWriter::hasError | ( | ) |
checks whether there were any errors in constructor
Definition at line 354 of file qgsvectorfilewriter.cpp.
References mError.
Referenced by writeAsVectorFormat().
QString QgsVectorFileWriter::errorMessage | ( | ) |
retrieves error message
Definition at line 359 of file qgsvectorfilewriter.cpp.
References mErrorMessage.
Referenced by writeAsVectorFormat().
bool QgsVectorFileWriter::addFeature | ( | QgsFeature & | feature | ) |
add feature to the currently opened shapefile
Definition at line 364 of file qgsvectorfilewriter.cpp.
References QgsGeometry::asWkb(), QgsFeature::attributeMap(), createEmptyGeometry(), ErrFeatureWriteFailed, QgsFeature::geometry(), mAttrIdxToOgrIdx, mCodec, mError, mErrorMessage, mFields, mGeom, mLayer, mWkbType, QgsDebugMsg, QgsGeometry::wkbSize(), and QgsGeometry::wkbType().
Referenced by QgsGeometryAnalyzer::bufferFeature(), QgsGeometryAnalyzer::centroidFeature(), QgsOverlayAnalyzer::intersectFeature(), QgsGeometryAnalyzer::simplifyFeature(), and writeAsVectorFormat().
bool QgsVectorFileWriter::deleteShapeFile | ( | QString | theFileName | ) | [static] |
Delete a shapefile (and its accompanying shx / dbf / prf).
theFileName | /path/to/file.shp |
Definition at line 661 of file qgsvectorfilewriter.cpp.
References QgsDebugMsg.
Referenced by QgsVectorFileWriter().
OGRGeometryH QgsVectorFileWriter::createEmptyGeometry | ( | QGis::WkbType | wkbType | ) | [protected] |
Definition at line 348 of file qgsvectorfilewriter.cpp.
Referenced by addFeature(), and QgsVectorFileWriter().
QPair< QString, QString > QgsVectorFileWriter::nameAndGlob | ( | QString | driverName | ) | [static, private] |
Definition at line 765 of file qgsvectorfilewriter.cpp.
Referenced by filterForDriver(), and ogrDriverList().
OGRDataSourceH QgsVectorFileWriter::mDS [protected] |
Definition at line 131 of file qgsvectorfilewriter.h.
Referenced by QgsVectorFileWriter(), and ~QgsVectorFileWriter().
OGRLayerH QgsVectorFileWriter::mLayer [protected] |
Definition at line 132 of file qgsvectorfilewriter.h.
Referenced by addFeature(), and QgsVectorFileWriter().
OGRGeometryH QgsVectorFileWriter::mGeom [protected] |
Definition at line 133 of file qgsvectorfilewriter.h.
Referenced by addFeature(), QgsVectorFileWriter(), and ~QgsVectorFileWriter().
QgsFieldMap QgsVectorFileWriter::mFields [protected] |
Definition at line 135 of file qgsvectorfilewriter.h.
Referenced by addFeature(), and QgsVectorFileWriter().
WriterError QgsVectorFileWriter::mError [protected] |
contains error value if construction was not successful
Definition at line 138 of file qgsvectorfilewriter.h.
Referenced by addFeature(), hasError(), and QgsVectorFileWriter().
QString QgsVectorFileWriter::mErrorMessage [protected] |
Definition at line 139 of file qgsvectorfilewriter.h.
Referenced by addFeature(), errorMessage(), and QgsVectorFileWriter().
QTextCodec* QgsVectorFileWriter::mCodec [protected] |
Definition at line 141 of file qgsvectorfilewriter.h.
Referenced by addFeature(), and QgsVectorFileWriter().
QGis::WkbType QgsVectorFileWriter::mWkbType [protected] |
geometry type which is being used
Definition at line 144 of file qgsvectorfilewriter.h.
Referenced by addFeature(), and QgsVectorFileWriter().
QMap<int, int> QgsVectorFileWriter::mAttrIdxToOgrIdx [protected] |
map attribute indizes to OGR field indexes
Definition at line 147 of file qgsvectorfilewriter.h.
Referenced by addFeature(), and QgsVectorFileWriter().