mirror of
https://github.com/qgis/QGIS.git
synced 2025-04-14 00:07:35 -04:00
[ogr] return multipart geometry for multipart datasets in feature iterator
This commit is contained in:
parent
1aa0091e7a
commit
5b149fb389
@ -25,6 +25,7 @@
|
||||
#include "qgsmessagelog.h"
|
||||
#include "qgssettings.h"
|
||||
#include "qgsexception.h"
|
||||
#include "qgswkbtypes.h"
|
||||
|
||||
#include <QTextCodec>
|
||||
#include <QFile>
|
||||
@ -334,7 +335,15 @@ bool QgsOgrFeatureIterator::readFeature( OGRFeatureH fet, QgsFeature &feature )
|
||||
|
||||
if ( geom )
|
||||
{
|
||||
feature.setGeometry( QgsOgrUtils::ogrGeometryToQgsGeometry( geom ) );
|
||||
QgsGeometry g = QgsOgrUtils::ogrGeometryToQgsGeometry( geom );
|
||||
|
||||
// Insure that multipart datasets return multipart geometry
|
||||
if ( QgsWkbTypes::isMultiType( mSource->mWkbType ) && !g.isMultipart() )
|
||||
{
|
||||
g.convertToMultiType();
|
||||
}
|
||||
|
||||
feature.setGeometry( g );
|
||||
}
|
||||
else
|
||||
feature.clearGeometry();
|
||||
@ -390,6 +399,7 @@ QgsOgrFeatureSource::QgsOgrFeatureSource( const QgsOgrProvider *p )
|
||||
, mOgrGeometryTypeFilter( QgsOgrProvider::ogrWkbSingleFlatten( p->mOgrGeometryTypeFilter ) )
|
||||
, mDriverName( p->ogrDriverName )
|
||||
, mCrs( p->crs() )
|
||||
, mWkbType( p->wkbType() )
|
||||
{
|
||||
for ( int i = ( p->mFirstFieldIsFid ) ? 1 : 0; i < mFields.size(); i++ )
|
||||
mFieldsWithoutFid.append( mFields.at( i ) );
|
||||
|
@ -44,6 +44,7 @@ class QgsOgrFeatureSource : public QgsAbstractFeatureSource
|
||||
OGRwkbGeometryType mOgrGeometryTypeFilter;
|
||||
QString mDriverName;
|
||||
QgsCoordinateReferenceSystem mCrs;
|
||||
QgsWkbTypes::Type mWkbType = QgsWkbTypes::Unknown;
|
||||
|
||||
friend class QgsOgrFeatureIterator;
|
||||
friend class QgsOgrExpressionCompiler;
|
||||
|
Loading…
x
Reference in New Issue
Block a user