mirror of
https://github.com/qgis/QGIS.git
synced 2025-12-08 00:06:51 -05:00
Fix multipolygon allowing insertion of non polygon geometries
This commit is contained in:
parent
6c328d53aa
commit
9518c90a8b
@ -26,23 +26,18 @@ class QgsMultiPolygonV2: QgsMultiSurface
|
|||||||
|
|
||||||
virtual QgsMultiPolygonV2 *clone() const /Factory/;
|
virtual QgsMultiPolygonV2 *clone() const /Factory/;
|
||||||
|
|
||||||
|
|
||||||
virtual bool fromWkt( const QString &wkt );
|
virtual bool fromWkt( const QString &wkt );
|
||||||
|
|
||||||
|
|
||||||
virtual QDomElement asGML2( QDomDocument &doc, int precision = 17, const QString &ns = "gml" ) const;
|
virtual QDomElement asGML2( QDomDocument &doc, int precision = 17, const QString &ns = "gml" ) const;
|
||||||
|
|
||||||
virtual QDomElement asGML3( QDomDocument &doc, int precision = 17, const QString &ns = "gml" ) const;
|
virtual QDomElement asGML3( QDomDocument &doc, int precision = 17, const QString &ns = "gml" ) const;
|
||||||
|
|
||||||
virtual QString asJSON( int precision = 17 ) const;
|
virtual QString asJSON( int precision = 17 ) const;
|
||||||
|
|
||||||
|
|
||||||
virtual bool addGeometry( QgsAbstractGeometry *g /Transfer/ );
|
virtual bool addGeometry( QgsAbstractGeometry *g /Transfer/ );
|
||||||
|
|
||||||
%Docstring
|
virtual bool insertGeometry( QgsAbstractGeometry *g /Transfer/, int index );
|
||||||
Adds a geometry and takes ownership. Returns true in case of success
|
|
||||||
:rtype: bool
|
|
||||||
%End
|
|
||||||
|
|
||||||
virtual QgsMultiSurface *toCurveType() const /Factory/;
|
virtual QgsMultiSurface *toCurveType() const /Factory/;
|
||||||
|
|
||||||
|
|||||||
@ -148,6 +148,17 @@ bool QgsMultiPolygonV2::addGeometry( QgsAbstractGeometry *g )
|
|||||||
return QgsGeometryCollection::addGeometry( g );
|
return QgsGeometryCollection::addGeometry( g );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool QgsMultiPolygonV2::insertGeometry( QgsAbstractGeometry *g, int index )
|
||||||
|
{
|
||||||
|
if ( !g || !qgsgeometry_cast< QgsPolygonV2 * >( g ) )
|
||||||
|
{
|
||||||
|
delete g;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return QgsMultiSurface::insertGeometry( g, index );
|
||||||
|
}
|
||||||
|
|
||||||
QgsMultiSurface *QgsMultiPolygonV2::toCurveType() const
|
QgsMultiSurface *QgsMultiPolygonV2::toCurveType() const
|
||||||
{
|
{
|
||||||
QgsMultiSurface *multiSurface = new QgsMultiSurface();
|
QgsMultiSurface *multiSurface = new QgsMultiSurface();
|
||||||
|
|||||||
@ -32,18 +32,12 @@ class CORE_EXPORT QgsMultiPolygonV2: public QgsMultiSurface
|
|||||||
QString geometryType() const override;
|
QString geometryType() const override;
|
||||||
void clear() override;
|
void clear() override;
|
||||||
QgsMultiPolygonV2 *clone() const override SIP_FACTORY;
|
QgsMultiPolygonV2 *clone() const override SIP_FACTORY;
|
||||||
|
|
||||||
bool fromWkt( const QString &wkt ) override;
|
bool fromWkt( const QString &wkt ) override;
|
||||||
|
|
||||||
// inherited: int wkbSize() const;
|
|
||||||
// inherited: unsigned char* asWkb( int& binarySize ) const;
|
|
||||||
// inherited: QString asWkt( int precision = 17 ) const;
|
|
||||||
QDomElement asGML2( QDomDocument &doc, int precision = 17, const QString &ns = "gml" ) const override;
|
QDomElement asGML2( QDomDocument &doc, int precision = 17, const QString &ns = "gml" ) const override;
|
||||||
QDomElement asGML3( QDomDocument &doc, int precision = 17, const QString &ns = "gml" ) const override;
|
QDomElement asGML3( QDomDocument &doc, int precision = 17, const QString &ns = "gml" ) const override;
|
||||||
QString asJSON( int precision = 17 ) const override;
|
QString asJSON( int precision = 17 ) const override;
|
||||||
|
|
||||||
//! Adds a geometry and takes ownership. Returns true in case of success
|
|
||||||
bool addGeometry( QgsAbstractGeometry *g SIP_TRANSFER ) override;
|
bool addGeometry( QgsAbstractGeometry *g SIP_TRANSFER ) override;
|
||||||
|
bool insertGeometry( QgsAbstractGeometry *g SIP_TRANSFER, int index ) override;
|
||||||
|
|
||||||
/** Returns the geometry converted to the more generic curve type QgsMultiSurface
|
/** Returns the geometry converted to the more generic curve type QgsMultiSurface
|
||||||
\returns the converted geometry. Caller takes ownership*/
|
\returns the converted geometry. Caller takes ownership*/
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user