Navigation Menu

Skip to content

Commit

Permalink
vector file writer: assume shapefiles contain multitype data (fixes #…
Browse files Browse the repository at this point in the history
  • Loading branch information
jef-n committed Oct 22, 2014
1 parent 372c3ce commit 528c4ca
Showing 1 changed file with 9 additions and 1 deletion.
10 changes: 9 additions & 1 deletion src/core/qgsvectorfilewriter.cpp
Expand Up @@ -1852,6 +1852,8 @@ QgsVectorFileWriter::WriterError QgsVectorFileWriter::writeAsVectorFormat( QgsVe
outputCRS = &layer->crs(); outputCRS = &layer->crs();
} }


QGis::WkbType wkbType = layer->wkbType();

if ( layer->providerType() == "ogr" ) if ( layer->providerType() == "ogr" )
{ {
QStringList theURIParts = layer->dataProvider()->dataSourceUri().split( "|" ); QStringList theURIParts = layer->dataProvider()->dataSourceUri().split( "|" );
Expand All @@ -1863,10 +1865,16 @@ QgsVectorFileWriter::WriterError QgsVectorFileWriter::writeAsVectorFormat( QgsVe
*errorMessage = QObject::tr( "Cannot overwrite a OGR layer in place" ); *errorMessage = QObject::tr( "Cannot overwrite a OGR layer in place" );
return ErrCreateDataSource; return ErrCreateDataSource;
} }

// Shapefiles might contain multi types although wkbType() only reports singles
if ( layer->storageType() == "ESRI Shapefile" )
{
wkbType = QGis::multiType( wkbType );
}
} }


QgsVectorFileWriter* writer = QgsVectorFileWriter* writer =
new QgsVectorFileWriter( fileName, fileEncoding, skipAttributeCreation ? QgsFields() : layer->pendingFields(), layer->wkbType(), outputCRS, driverName, datasourceOptions, layerOptions, newFilename, symbologyExport ); new QgsVectorFileWriter( fileName, fileEncoding, skipAttributeCreation ? QgsFields() : layer->pendingFields(), wkbType, outputCRS, driverName, datasourceOptions, layerOptions, newFilename, symbologyExport );
writer->setSymbologyScaleDenominator( symbologyScale ); writer->setSymbologyScaleDenominator( symbologyScale );


if ( newFilename ) if ( newFilename )
Expand Down

0 comments on commit 528c4ca

Please sign in to comment.