QGIS/python/core/qgsfeature.sip

490 lines
12 KiB
Plaintext
Raw Normal View History

/************************************************************************
* This file has been generated automatically from *
* *
* src/core/qgsfeature.h *
* *
* Do not edit manually ! Edit header and run scripts/sipify.pl again *
************************************************************************/
2017-03-27 14:41:33 +02:00
2017-03-27 14:41:33 +02:00
class QgsFeature
{
%Docstring
The feature class encapsulates a single feature including its id,
geometry and a list of field/values attributes.
.. note::
QgsFeature objects are implicitly shared.
2017-03-27 14:41:33 +02:00
%End
%TypeHeaderCode
#include "qgsfeature.h"
2017-04-20 13:48:50 +02:00
2017-03-27 14:41:33 +02:00
#if (SIP_VERSION >= 0x040900 && SIP_VERSION < 0x040c01)
#define sipType_QVariant ((sipWrapperType *) sipTypeAsPyTypeObject (sipType_QVariant))
#endif
%End
public:
2013-08-03 22:42:13 +10:00
SIP_PYOBJECT __iter__();
%MethodCode
2015-05-21 05:49:01 +10:00
QgsAttributes attributes = sipCpp->attributes();
PyObject *attrs = sipConvertFromType( &attributes, sipType_QgsAttributes, Py_None );
2017-03-27 14:41:33 +02:00
sipRes = PyObject_GetIter( attrs );
2013-08-03 22:42:13 +10:00
%End
2017-03-27 14:41:33 +02:00
SIP_PYOBJECT __getitem__( int key );
%MethodCode
2017-03-27 14:41:33 +02:00
QgsAttributes attrs = sipCpp->attributes();
if ( a0 < 0 || a0 >= attrs.count() )
{
PyErr_SetString( PyExc_KeyError, QByteArray::number( a0 ) );
sipIsErr = 1;
}
else
{
QVariant *v = new QVariant( attrs.at( a0 ) );
sipRes = sipConvertFromNewType( v, sipType_QVariant, Py_None );
}
%End
2017-03-27 14:41:33 +02:00
SIP_PYOBJECT __getitem__( const QString &name );
%MethodCode
2017-03-27 14:41:33 +02:00
int fieldIdx = sipCpp->fieldNameIndex( *a0 );
if ( fieldIdx == -1 )
{
PyErr_SetString( PyExc_KeyError, a0->toAscii() );
sipIsErr = 1;
}
else
{
QVariant *v = new QVariant( sipCpp->attribute( fieldIdx ) );
sipRes = sipConvertFromNewType( v, sipType_QVariant, Py_None );
}
%End
2017-03-27 14:41:33 +02:00
void __setitem__( int key, QVariant value /GetWrapper/ );
%MethodCode
2017-03-27 14:41:33 +02:00
bool rv;
2017-03-27 14:41:33 +02:00
if ( a1Wrapper == Py_None )
{
rv = sipCpp->setAttribute( a0, QVariant( QVariant::Int ) );
}
else
{
rv = sipCpp->setAttribute( a0, *a1 );
}
2017-03-27 14:41:33 +02:00
if ( !rv )
{
PyErr_SetString( PyExc_KeyError, QByteArray::number( a0 ) );
sipIsErr = 1;
}
%End
2017-03-27 14:41:33 +02:00
void __setitem__( const QString &key, QVariant value /GetWrapper/ );
%MethodCode
2017-03-27 14:41:33 +02:00
int fieldIdx = sipCpp->fieldNameIndex( *a0 );
if ( fieldIdx == -1 )
{
2017-03-27 14:41:33 +02:00
PyErr_SetString( PyExc_KeyError, a0->toAscii() );
sipIsErr = 1;
}
else
{
2017-03-27 14:41:33 +02:00
if ( a1Wrapper == Py_None )
{
sipCpp->setAttribute( *a0, QVariant( QVariant::Int ) );
}
else
{
sipCpp->setAttribute( fieldIdx, *a1 );
}
}
%End
2017-03-27 14:41:33 +02:00
void __delitem__( int key );
%MethodCode
2017-03-27 14:41:33 +02:00
if ( a0 >= 0 && a0 < sipCpp->attributes().count() )
sipCpp->deleteAttribute( a0 );
else
{
PyErr_SetString( PyExc_KeyError, QByteArray::number( a0 ) );
sipIsErr = 1;
}
%End
2017-03-27 14:41:33 +02:00
void __delitem__( const QString &name );
%MethodCode
2017-03-27 14:41:33 +02:00
int fieldIdx = sipCpp->fieldNameIndex( *a0 );
if ( fieldIdx == -1 )
{
PyErr_SetString( PyExc_KeyError, a0->toAscii() );
sipIsErr = 1;
}
else
sipCpp->deleteAttribute( fieldIdx );
%End
QgsFeature( qint64 id = 0 );
%Docstring
Constructor for QgsFeature
2017-04-03 11:59:45 +10:00
\param id feature id
%End
QgsFeature( const QgsFields &fields, qint64 id = 0 );
%Docstring
Constructor for QgsFeature
2017-04-03 11:59:45 +10:00
\param fields feature's fields
\param id feature id
%End
QgsFeature( const QgsFeature &rhs );
%Docstring
Copy constructor
%End
2017-03-27 14:41:33 +02:00
virtual ~QgsFeature();
QgsFeatureId id() const;
%Docstring
Get the feature ID for this feature.
:return: feature ID
2017-04-30 16:51:18 +02:00
.. seealso:: setId()
:rtype: QgsFeatureId
%End
void setId( QgsFeatureId id );
%Docstring
Sets the feature ID for this feature.
2017-04-03 11:59:45 +10:00
\param id feature id
2017-04-30 16:51:18 +02:00
.. seealso:: id
%End
QgsAttributes attributes() const;
%Docstring
Returns the feature's attributes.
:return: list of feature's attributes
2017-04-30 16:51:18 +02:00
.. seealso:: setAttributes
.. versionadded:: 2.9
.. note::
Alternatively in Python: iterate feature, eg. @code [attr for attr in feature] @endcode
:rtype: QgsAttributes
%End
void setAttributes( const QgsAttributes &attrs );
%Docstring
Sets the feature's attributes.
The feature will be valid after.
2017-04-03 11:59:45 +10:00
\param attrs attribute list
2017-04-30 16:51:18 +02:00
.. seealso:: setAttribute
.. seealso:: attributes
%End
2017-03-27 14:41:33 +02:00
bool setAttribute( int field, const QVariant &attr /GetWrapper/ );
%Docstring
Set an attribute's value by field index.
The feature will be valid if it was successful.
2017-04-03 11:59:45 +10:00
\param field the index of the field to set
\param attr the value of the attribute
:return: false, if the field index does not exist
.. note::
For Python: raises a KeyError exception instead of returning false
.. note::
Alternatively in Python: @code feature[field] = attr @endcode
2017-04-30 16:51:18 +02:00
.. seealso:: setAttributes
:rtype: bool
%End
%MethodCode
2017-03-27 14:41:33 +02:00
bool rv;
2017-03-27 14:41:33 +02:00
if ( a1Wrapper == Py_None )
{
rv = sipCpp->setAttribute( a0, QVariant( QVariant::Int ) );
}
else
{
rv = sipCpp->setAttribute( a0, *a1 );
}
2017-03-27 14:41:33 +02:00
if ( !rv )
{
PyErr_SetString( PyExc_KeyError, QByteArray::number( a0 ) );
sipIsErr = 1;
}
2017-03-27 14:41:33 +02:00
sipRes = rv;
%End
void initAttributes( int fieldCount );
%Docstring
Initialize this feature with the given number of fields. Discard any previously set attribute data.
2017-04-03 11:59:45 +10:00
\param fieldCount Number of fields to initialize
%End
void deleteAttribute( int field );
%Docstring
Deletes an attribute and its value.
2017-04-03 11:59:45 +10:00
\param field the index of the field
2017-04-30 16:51:18 +02:00
.. seealso:: setAttribute
.. note::
For Python: raises a KeyError exception if the field is not found
.. note::
Alternatively in Python: @code del feature[field] @endcode
%End
%MethodCode
2017-03-27 14:41:33 +02:00
if ( a0 >= 0 && a0 < sipCpp->attributes().count() )
sipCpp->deleteAttribute( a0 );
else
{
PyErr_SetString( PyExc_KeyError, QByteArray::number( a0 ) );
sipIsErr = 1;
}
%End
bool isValid() const;
%Docstring
Returns the validity of this feature. This is normally set by
the provider to indicate some problem that makes the feature
invalid or to indicate a null feature.
2017-04-30 16:51:18 +02:00
.. seealso:: setValid
:rtype: bool
%End
void setValid( bool validity );
%Docstring
Sets the validity of the feature.
2017-04-03 11:59:45 +10:00
\param validity set to true if feature is valid
2017-04-30 16:51:18 +02:00
.. seealso:: isValid
%End
bool hasGeometry() const;
%Docstring
Returns true if the feature has an associated geometry.
2017-04-30 16:51:18 +02:00
.. seealso:: geometry()
.. versionadded:: 3.0.
:rtype: bool
%End
QgsGeometry geometry() const;
%Docstring
Returns the geometry associated with this feature. If the feature has no geometry,
an empty QgsGeometry object will be returned.
2017-04-30 16:51:18 +02:00
.. seealso:: hasGeometry()
.. seealso:: setGeometry()
:rtype: QgsGeometry
%End
void setGeometry( const QgsGeometry &geometry );
%Docstring
Set the feature's geometry. The feature will be valid after.
2017-04-03 11:59:45 +10:00
\param geometry new feature geometry
2017-04-30 16:51:18 +02:00
.. seealso:: geometry()
.. seealso:: clearGeometry()
%End
void clearGeometry();
%Docstring
Removes any geometry associated with the feature.
2017-04-30 16:51:18 +02:00
.. seealso:: setGeometry()
.. seealso:: hasGeometry()
.. versionadded:: 3.0
%End
void setFields( const QgsFields &fields, bool initAttributes = true );
%Docstring
Assign a field map with the feature to allow attribute access by attribute name.
2017-04-03 11:59:45 +10:00
\param fields The attribute fields which this feature holds
\param initAttributes If true, attributes are initialized. Clears any data previously assigned.
C++: Defaults to false
Python: Defaults to true
.. versionadded:: 2.9
2017-04-30 16:51:18 +02:00
.. seealso:: fields
%End
QgsFields fields() const;
%Docstring
Returns the field map associated with the feature.
2017-04-30 16:51:18 +02:00
.. seealso:: setFields
:rtype: QgsFields
%End
void setAttribute( const QString &name, const QVariant &value /GetWrapper/ );
%Docstring
Insert a value into attribute. Returns false if attribute name could not be converted to index.
2017-04-03 11:59:45 +10:00
Field map must be associated using setFields() before this method can be used.
The feature will be valid if it was successful
2017-04-03 11:59:45 +10:00
\param name The name of the field to set
\param value The value to set
:return: false if attribute name could not be converted to index (C++ only)
.. note::
For Python: raises a KeyError exception instead of returning false
.. note::
Alternatively in Python: @code feature[name] = attr @endcode
2017-04-30 16:51:18 +02:00
.. seealso:: setFields
%End
%MethodCode
2017-03-27 14:41:33 +02:00
int fieldIdx = sipCpp->fieldNameIndex( *a0 );
if ( fieldIdx == -1 )
{
2017-03-27 14:41:33 +02:00
PyErr_SetString( PyExc_KeyError, a0->toAscii() );
sipIsErr = 1;
}
else
{
2017-03-27 14:41:33 +02:00
if ( a1Wrapper == Py_None )
{
sipCpp->setAttribute( *a0, QVariant( QVariant::Int ) );
}
else
{
sipCpp->setAttribute( fieldIdx, *a1 );
}
}
%End
bool deleteAttribute( const QString &name );
%Docstring
2017-04-03 11:59:45 +10:00
Removes an attribute value by field name. Field map must be associated using setFields()
before this method can be used.
2017-04-03 11:59:45 +10:00
\param name The name of the field to delete
:return: false if attribute name could not be converted to index (C++ only)
.. note::
For Python: raises a KeyError exception instead of returning false
.. note::
Alternatively in Python: @code del feature[name] @endcode
2017-04-30 16:51:18 +02:00
.. seealso:: setFields
:rtype: bool
%End
%MethodCode
2017-03-27 14:41:33 +02:00
int fieldIdx = sipCpp->fieldNameIndex( *a0 );
if ( fieldIdx == -1 )
{
PyErr_SetString( PyExc_KeyError, a0->toAscii() );
sipIsErr = 1;
sipRes = false;
}
else
{
sipCpp->deleteAttribute( fieldIdx );
sipRes = true;
}
%End
SIP_PYOBJECT attribute( const QString &name ) const;
%Docstring
2017-04-03 11:59:45 +10:00
Lookup attribute value from attribute name. Field map must be associated using setFields()
before this method can be used.
2017-04-03 11:59:45 +10:00
\param name The name of the attribute to get
:return: The value of the attribute (C++: Invalid variant if no such name exists )
.. note::
For Python: raises a KeyError exception if the field is not found
.. note::
Alternatively in Python: @code feature[name] @endcode
2017-04-30 16:51:18 +02:00
.. seealso:: setFields
%End
%MethodCode
2017-03-27 14:41:33 +02:00
int fieldIdx = sipCpp->fieldNameIndex( *a0 );
if ( fieldIdx == -1 )
{
2017-03-27 14:41:33 +02:00
PyErr_SetString( PyExc_KeyError, a0->toAscii() );
sipIsErr = 1;
}
else
{
2017-03-27 14:41:33 +02:00
QVariant *v = new QVariant( sipCpp->attribute( fieldIdx ) );
sipRes = sipConvertFromNewType( v, sipType_QVariant, Py_None );
}
2017-03-27 14:41:33 +02:00
%End
SIP_PYOBJECT attribute( int fieldIdx ) const;
%Docstring
2017-04-03 11:59:45 +10:00
Lookup attribute value from its index. Field map must be associated using setFields()
before this method can be used.
2017-04-03 11:59:45 +10:00
\param fieldIdx The index of the attribute to get
:return: The value of the attribute (C++: Invalid variant if no such index exists )
.. note::
For Python: raises a KeyError exception if the field is not found
.. note::
Alternatively in Python: @code feature[fieldIdx] @endcode
2017-04-30 16:51:18 +02:00
.. seealso:: setFields
%End
2017-03-27 14:41:33 +02:00
%MethodCode
{
if ( a0 < 0 || a0 >= sipCpp->attributes().count() )
{
PyErr_SetString( PyExc_KeyError, QByteArray::number( a0 ) );
sipIsErr = 1;
}
else
{
QVariant *v = new QVariant( sipCpp->attribute( a0 ) );
sipRes = sipConvertFromNewType( v, sipType_QVariant, Py_None );
}
}
%End
int fieldNameIndex( const QString &fieldName ) const;
%Docstring
2017-04-03 11:59:45 +10:00
Utility method to get attribute index from name. Field map must be associated using setFields()
before this method can be used.
2017-04-03 11:59:45 +10:00
\param fieldName name of field to get attribute index of
:return: -1 if field does not exist or field map is not associated.
2017-04-30 16:51:18 +02:00
.. seealso:: setFields
:rtype: int
%End
operator QVariant() const;
%Docstring
Allows direct construction of QVariants from features.
%End
}; // class QgsFeature
2017-03-27 14:41:33 +02:00
typedef QMap<qint64, QMap<int, QVariant> > QgsChangedAttributesMap;
2017-05-12 09:47:03 +02:00
2017-03-27 14:41:33 +02:00
typedef QMap<qint64, QgsGeometry> QgsGeometryMap;
typedef QSet<qint64> QgsFeatureIds;
2017-03-27 14:41:33 +02:00
typedef QList<QgsFeature> QgsFeatureList;
/************************************************************************
* This file has been generated automatically from *
* *
* src/core/qgsfeature.h *
* *
* Do not edit manually ! Edit header and run scripts/sipify.pl again *
************************************************************************/