mirror of
https://github.com/qgis/QGIS.git
synced 2025-04-15 00:04:00 -04:00
Fix multi line string allowing insertion of non line geometries
This commit is contained in:
parent
6d95ba0a5b
commit
f5004ed7ef
@ -20,29 +20,25 @@ class QgsMultiLineString: QgsMultiCurve
|
|||||||
%End
|
%End
|
||||||
public:
|
public:
|
||||||
QgsMultiLineString();
|
QgsMultiLineString();
|
||||||
|
|
||||||
virtual QString geometryType() const;
|
virtual QString geometryType() const;
|
||||||
|
|
||||||
virtual QgsMultiLineString *clone() const /Factory/;
|
virtual QgsMultiLineString *clone() const /Factory/;
|
||||||
|
|
||||||
|
|
||||||
virtual void clear();
|
virtual void clear();
|
||||||
|
|
||||||
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 QgsMultiCurve *toCurveType() const /Factory/;
|
virtual QgsMultiCurve *toCurveType() const /Factory/;
|
||||||
|
|
||||||
|
@ -20,37 +20,29 @@ class QgsMultiPointV2: QgsGeometryCollection
|
|||||||
%End
|
%End
|
||||||
public:
|
public:
|
||||||
QgsMultiPointV2();
|
QgsMultiPointV2();
|
||||||
|
|
||||||
virtual QString geometryType() const;
|
virtual QString geometryType() const;
|
||||||
|
|
||||||
virtual QgsMultiPointV2 *clone() const /Factory/;
|
virtual QgsMultiPointV2 *clone() const /Factory/;
|
||||||
|
|
||||||
virtual QgsMultiPointV2 *toCurveType() const /Factory/;
|
virtual QgsMultiPointV2 *toCurveType() const /Factory/;
|
||||||
|
|
||||||
|
|
||||||
virtual bool fromWkt( const QString &wkt );
|
virtual bool fromWkt( const QString &wkt );
|
||||||
|
|
||||||
virtual void clear();
|
virtual void clear();
|
||||||
|
|
||||||
|
|
||||||
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 int nCoordinates() const;
|
virtual int nCoordinates() const;
|
||||||
|
|
||||||
|
|
||||||
virtual bool addGeometry( QgsAbstractGeometry *g /Transfer/ );
|
virtual bool addGeometry( QgsAbstractGeometry *g /Transfer/ );
|
||||||
|
|
||||||
%Docstring
|
|
||||||
Adds a geometry and takes ownership. Returns true in case of success
|
|
||||||
:rtype: bool
|
|
||||||
%End
|
|
||||||
virtual bool insertGeometry( QgsAbstractGeometry *g /Transfer/, int index );
|
virtual bool insertGeometry( QgsAbstractGeometry *g /Transfer/, int index );
|
||||||
|
|
||||||
|
|
||||||
virtual QgsAbstractGeometry *boundary() const /Factory/;
|
virtual QgsAbstractGeometry *boundary() const /Factory/;
|
||||||
|
|
||||||
|
|
||||||
|
@ -125,6 +125,14 @@ bool QgsMultiLineString::addGeometry( QgsAbstractGeometry *g )
|
|||||||
return QgsGeometryCollection::addGeometry( g );
|
return QgsGeometryCollection::addGeometry( g );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool QgsMultiLineString::insertGeometry( QgsAbstractGeometry *g, int index )
|
||||||
|
{
|
||||||
|
if ( !g || QgsWkbTypes::flatType( g->wkbType() ) != QgsWkbTypes::LineString )
|
||||||
|
return false;
|
||||||
|
|
||||||
|
return QgsGeometryCollection::insertGeometry( g, index );
|
||||||
|
}
|
||||||
|
|
||||||
QgsMultiCurve *QgsMultiLineString::toCurveType() const
|
QgsMultiCurve *QgsMultiLineString::toCurveType() const
|
||||||
{
|
{
|
||||||
QgsMultiCurve *multiCurve = new QgsMultiCurve();
|
QgsMultiCurve *multiCurve = new QgsMultiCurve();
|
||||||
|
@ -29,18 +29,16 @@ class CORE_EXPORT QgsMultiLineString: public QgsMultiCurve
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
QgsMultiLineString();
|
QgsMultiLineString();
|
||||||
|
|
||||||
QString geometryType() const override;
|
QString geometryType() const override;
|
||||||
QgsMultiLineString *clone() const override SIP_FACTORY;
|
QgsMultiLineString *clone() const override SIP_FACTORY;
|
||||||
|
|
||||||
void clear() override;
|
void clear() override;
|
||||||
bool fromWkt( const QString &wkt ) override;
|
bool fromWkt( const QString &wkt ) override;
|
||||||
|
|
||||||
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 QgsMultiCurve
|
/** Returns the geometry converted to the more generic curve type QgsMultiCurve
|
||||||
\returns the converted geometry. Caller takes ownership*/
|
\returns the converted geometry. Caller takes ownership*/
|
||||||
|
@ -29,26 +29,18 @@ class CORE_EXPORT QgsMultiPointV2: public QgsGeometryCollection
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
QgsMultiPointV2();
|
QgsMultiPointV2();
|
||||||
|
|
||||||
QString geometryType() const override;
|
QString geometryType() const override;
|
||||||
QgsMultiPointV2 *clone() const override SIP_FACTORY;
|
QgsMultiPointV2 *clone() const override SIP_FACTORY;
|
||||||
QgsMultiPointV2 *toCurveType() const override SIP_FACTORY;
|
QgsMultiPointV2 *toCurveType() const override SIP_FACTORY;
|
||||||
|
|
||||||
bool fromWkt( const QString &wkt ) override;
|
bool fromWkt( const QString &wkt ) override;
|
||||||
void clear() override;
|
void clear() 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;
|
||||||
|
|
||||||
int nCoordinates() const override;
|
int nCoordinates() 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;
|
bool insertGeometry( QgsAbstractGeometry *g SIP_TRANSFER, int index ) override;
|
||||||
|
|
||||||
QgsAbstractGeometry *boundary() const override SIP_FACTORY;
|
QgsAbstractGeometry *boundary() const override SIP_FACTORY;
|
||||||
|
|
||||||
#ifndef SIP_RUN
|
#ifndef SIP_RUN
|
||||||
|
Loading…
x
Reference in New Issue
Block a user