|
Quantum GIS API Documentation
master-693a1fe
|
The feature class encapsulates a single feature including its id, geometry and a list of field/values attributes. More...
#include <qgsfeature.h>
Collaboration diagram for QgsFeature:Public Member Functions | |
| QgsFeature (QgsFeatureId id=QgsFeatureId()) | |
| Constructor. | |
| QgsFeature (const QgsFields &fields, QgsFeatureId id=QgsFeatureId()) | |
| QgsFeature (const QgsFeature &rhs) | |
| copy ctor needed due to internal pointer | |
| ~QgsFeature () | |
| Destructor. | |
| QVariant | attribute (const QString &name) const |
| Lookup attribute value from attribute name. | |
| QVariant | attribute (int fieldIdx) const |
| Lookup attribute value from its index. | |
| const QgsAttributes & | attributes () const |
| QgsAttributes & | attributes () |
| void | deleteAttribute (int field) |
| Deletes an attribute and its value. | |
| bool | deleteAttribute (const QString &name) |
| Remove an attribute value. | |
| int | fieldNameIndex (const QString &fieldName) const |
| Utility method to get attribute index from name. | |
| const QgsFields * | fields () const |
| Get associated field map. | |
| QgsGeometry * | geometry () const |
| Get the geometry object associated with this feature. | |
| QgsGeometry * | geometryAndOwnership () |
| Get the geometry object associated with this feature The caller assumes responsibility for the QgsGeometry*'s destruction. | |
| QgsFeatureId | id () const |
| Get the feature id for this feature. | |
| void | initAttributes (int fieldCount) |
| bool | isValid () const |
| Return the validity of this feature. | |
| QgsFeature & | operator= (QgsFeature const &rhs) |
| assignment operator needed due to internal pointer | |
| bool | setAttribute (int field, const QVariant &attr) |
| bool | setAttribute (const QString &name, QVariant value) |
| Insert a value into attribute. | |
| void | setAttributes (const QgsAttributes &attrs) |
| void | setFeatureId (QgsFeatureId id) |
| Set the feature id for this feature. | |
| void | setFields (const QgsFields *fields) |
| Assign a field map with the feature to allow attribute access by attribute name. | |
| void | setGeometry (const QgsGeometry &geom) |
| Set this feature's geometry from another QgsGeometry object (deep copy) | |
| void | setGeometry (QgsGeometry *geom) |
| Set this feature's geometry (takes geometry ownership) | |
| void | setGeometryAndOwnership (unsigned char *geom, size_t length) |
| Set this feature's geometry from WKB. | |
| void | setValid (bool validity) |
| Set the validity of the feature. | |
Private Attributes | |
| QgsAttributes | mAttributes |
| attributes accessed by field index | |
| QgsFeatureId | mFid |
| feature id | |
| const QgsFields * | mFields |
| Optional field map for name-based attribute lookups. | |
| QgsGeometry * | mGeometry |
| pointer to geometry in binary WKB format | |
| bool | mOwnsGeometry |
| Indicator if the mGeometry is owned by this QgsFeature. | |
| bool | mValid |
| Flag to indicate if this feature is valid. | |
The feature class encapsulates a single feature including its id, geometry and a list of field/values attributes.
Encapsulates a spatial feature with attributes.
Definition at line 114 of file qgsfeature.h.
| QgsFeature::QgsFeature | ( | QgsFeatureId | id = QgsFeatureId() | ) |
Constructor.
Definition at line 27 of file qgsfeature.cpp.
| QgsFeature::QgsFeature | ( | const QgsFields & | fields, |
| QgsFeatureId | id = QgsFeatureId() |
||
| ) |
Definition at line 37 of file qgsfeature.cpp.
References QgsFields::count(), and initAttributes().
| QgsFeature::QgsFeature | ( | const QgsFeature & | rhs | ) |
copy ctor needed due to internal pointer
Definition at line 47 of file qgsfeature.cpp.
References mGeometry, and setGeometry().
| QVariant QgsFeature::attribute | ( | const QString & | name | ) | const |
Lookup attribute value from attribute name.
Returns invalid variant if attribute name could not be converted to index. Field map must be associated to make this work.
Definition at line 222 of file qgsfeature.cpp.
References fieldNameIndex(), and mAttributes.
Referenced by QgsGeometryAnalyzer::addEventLayerFeature(), QgsVectorLayerFeatureIterator::addJoinedAttributes(), QgsGeometryAnalyzer::bufferFeature(), QgsInterpolator::cacheBaseData(), QgsAttributeEditor::createAttributeEditor(), QgsVectorFileWriter::createFeature(), QgsGraduatedSymbolRendererV2::createRenderer(), QgsAttributeTableModel::data(), QgsAttributeAction::doAction(), QgsExpression::NodeColumnRef::eval(), QgsGeometryAnalyzer::eventLayer(), QgsMapTip::fetchFeature(), QgsLabel::fieldValue(), QgsSearchQueryBuilder::getFieldValues(), QgsTINInterpolator::insertData(), QgsAttributeTableModel::loadAttributes(), QgsLineVectorLayerDirector::makeGraph(), QgsVectorLayer::maximumValue(), QgsVectorLayer::minimumValue(), QgsAttributeTableModel::prefetchColumnData(), QgsVectorLayerUndoCommandDeleteAttribute::QgsVectorLayerUndoCommandDeleteAttribute(), QgsPalLabeling::registerDiagramFeature(), QgsPalLayerSettings::registerFeature(), QgsVectorFieldSymbolLayer::renderPoint(), QgsSingleSymbolRendererV2::symbolForFeature(), QgsVectorLayerUndoCommandChangeAttribute::undo(), QgsVectorDataProvider::uniqueValues(), and QgsVectorLayer::uniqueValues().
| QVariant QgsFeature::attribute | ( | int | fieldIdx | ) | const |
Lookup attribute value from its index.
Returns invalid variant if the index does not exist.
Definition at line 214 of file qgsfeature.cpp.
References mAttributes.
| const QgsAttributes& QgsFeature::attributes | ( | ) | const [inline] |
Definition at line 143 of file qgsfeature.h.
Referenced by QgsVectorLayerEditBuffer::addFeature(), QgsVectorLayerImport::addFeature(), QgsVectorLayerFeatureIterator::addJoinedAttributes(), QgsVectorLayerFeatureIterator::FetchJoinInfo::addJoinedAttributesDirect(), QgsOfflineEditing::applyFeaturesAdded(), QgsAtlasComposition::beginRender(), QgsGeometryAnalyzer::bufferFeature(), QgsVectorLayerJoinBuffer::cacheJoinLayer(), QgsGeometryAnalyzer::centroidFeature(), QgsOfflineEditing::copyVectorLayer(), QgsFormAnnotationItem::createDesignerWidget(), QgsVectorDataProvider::fillMinMaxCache(), QgsComposerAttributeTable::getFeatureAttributes(), QgsPointDisplacementRenderer::getLabel(), QgsOverlayAnalyzer::intersectFeature(), QgsAttributeDialog::QgsAttributeDialog(), QgsPalLabeling::registerDiagramFeature(), QgsDualView::saveEditChanges(), QgsGeometryAnalyzer::simplifyFeature(), QgsGraduatedSymbolRendererV2::symbolForFeature(), QgsCategorizedSymbolRendererV2::symbolForFeature(), QgsVectorLayerEditBuffer::updateChangedAttributes(), QgsVectorLayer::updateFeature(), QgsVectorLayerFeatureIterator::useAddedFeature(), and QgsVectorLayerFeatureIterator::useChangedAttributeFeature().
| QgsAttributes& QgsFeature::attributes | ( | ) | [inline] |
Definition at line 144 of file qgsfeature.h.
| void QgsFeature::deleteAttribute | ( | int | field | ) |
Deletes an attribute and its value.
Definition at line 107 of file qgsfeature.cpp.
References mAttributes.
| bool QgsFeature::deleteAttribute | ( | const QString & | name | ) |
Remove an attribute value.
Returns false if attribute name could not be converted to index. Field map must be associated to make this work.
Definition at line 204 of file qgsfeature.cpp.
References fieldNameIndex(), and mAttributes.
| int QgsFeature::fieldNameIndex | ( | const QString & | fieldName | ) | const |
Utility method to get attribute index from name.
Returns -1 if field does not exist or field map is not associated. Field map must be associated to make this work.
Definition at line 231 of file qgsfeature.cpp.
References QgsFields::at(), QgsFields::count(), mFields, and QgsField::name().
Referenced by attribute(), deleteAttribute(), and setAttribute().
| const QgsFields* QgsFeature::fields | ( | ) | const [inline] |
Get associated field map.
may be NULL
Definition at line 199 of file qgsfeature.h.
| QgsGeometry * QgsFeature::geometry | ( | ) | const |
Get the geometry object associated with this feature.
Definition at line 113 of file qgsfeature.cpp.
References mGeometry.
Referenced by QgsVectorLayerImport::addFeature(), QgsVectorLayerEditUtils::addPart(), QgsVectorLayerEditUtils::addRing(), QgsVectorLayer::boundingBoxOfSelected(), QgsGeometryAnalyzer::bufferFeature(), QgsInterpolator::cacheBaseData(), QgsGml::calculateExtentFromFeatures(), QgsZonalStatistics::calculateStatistics(), QgsGeometryAnalyzer::centroidFeature(), QgsGeometryAnalyzer::convexFeature(), QgsPointDisplacementRenderer::createDisplacementGroups(), QgsVectorFileWriter::createFeature(), QgsGeometryAnalyzer::dissolveFeature(), QgsVectorLayer::drawRendererV2(), QgsVectorLayer::drawRendererV2Levels(), QgsGeometryAnalyzer::eventLayer(), QgsVectorFileWriter::exportFeaturesSymbolLevels(), QgsVectorLayer::extent(), fcnGeomArea(), fcnGeometry(), fcnGeomLength(), fcnGeomPerimeter(), QgsMapToolIdentify::featureDerivedAttributes(), QgsSpatialIndex::featureInfo(), QgsVectorLayerImport::importLayer(), QgsTINInterpolator::insertData(), QgsOverlayAnalyzer::intersectFeature(), QgsLabel::labelPoint(), QgsLineVectorLayerDirector::makeGraph(), QgsAtlasComposition::prepareForFeature(), QgsAttributeDialog::QgsAttributeDialog(), QgsVectorLayerUndoCommandAddFeature::redo(), QgsPalLabeling::registerDiagramFeature(), QgsPalLayerSettings::registerFeature(), QgsVectorLayer::removePolygonIntersections(), QgsPointDisplacementRenderer::renderFeature(), QgsFeatureRendererV2::renderFeatureWithSymbol(), QgsGeometryAnalyzer::simplifyFeature(), QgsVectorLayer::snapWithContext(), QgsVectorLayerEditUtils::translateFeature(), QgsVectorLayerUndoCommandAddFeature::undo(), QgsVectorLayerUndoCommandChangeGeometry::undo(), QgsVectorLayer::updateFeature(), QgsVectorLayerFeatureIterator::useAddedFeature(), and QgsVectorFileWriter::writeAsVectorFormat().
Get the geometry object associated with this feature The caller assumes responsibility for the QgsGeometry*'s destruction.
Definition at line 118 of file qgsfeature.cpp.
References mGeometry, and mOwnsGeometry.
| QgsFeatureId QgsFeature::id | ( | ) | const |
Get the feature id for this feature.
Definition at line 101 of file qgsfeature.cpp.
References mFid.
Referenced by QgsVectorLayerEditUtils::addRing(), QgsAttributeTableModel::attributeValueChanged(), QgsAtlasComposition::beginRender(), QgsVectorLayer::boundingBoxOfSelected(), QgsVectorLayerCache::cacheFeature(), QgsZonalStatistics::calculateStatistics(), QgsOfflineEditing::copyVectorLayer(), QgsPointDisplacementRenderer::createDisplacementGroups(), QgsVectorFileWriter::createFeature(), QgsFeatureListModel::data(), QgsAttributeTableModel::data(), QgsVectorLayer::drawRendererV2(), QgsVectorLayer::drawRendererV2Levels(), QgsGml::endElement(), QgsGeometryAnalyzer::eventLayer(), fcnFeatureId(), QgsSpatialIndex::featureInfo(), QgsAttributeTableFilterModel::generateListOfVisibleFeatures(), QgsVectorLayerImport::importLayer(), QgsVectorLayer::invertSelection(), QgsVectorLayer::invertSelectionInRectangle(), QgsAttributeTableModel::loadLayer(), QgsVectorLayerFeatureIterator::nextFeature(), QgsCachedFeatureWriterIterator::nextFeature(), QgsExpressionSelectionDialog::on_mActionAddToSelection_triggered(), QgsExpressionSelectionDialog::on_mActionRemoveFromSelection_triggered(), QgsExpressionSelectionDialog::on_mActionSelect_triggered(), QgsExpressionSelectionDialog::on_mActionSelectInstersect_triggered(), QgsAttributeTableModel::prefetchColumnData(), QgsAttributeDialog::QgsAttributeDialog(), QgsVectorLayerUndoCommandDeleteAttribute::QgsVectorLayerUndoCommandDeleteAttribute(), QgsVectorLayerUndoCommandAddFeature::redo(), QgsPalLabeling::registerDiagramFeature(), QgsPalLayerSettings::registerFeature(), QgsVectorLayer::removePolygonIntersections(), QgsPointDisplacementRenderer::renderFeature(), QgsFeatureRendererV2::renderFeatureWithSymbol(), QgsDualView::saveEditChanges(), QgsVectorLayer::select(), QgsFormAnnotationItem::setFeatureForMapPosition(), QgsHtmlAnnotationItem::setFeatureForMapPosition(), setFeatureId(), QgsVectorLayer::snapWithContext(), QgsVectorLayerUndoCommandAddFeature::undo(), QgsVectorLayerUndoCommandDeleteFeature::undo(), QgsVectorLayerUndoCommandDeleteAttribute::undo(), QgsVectorLayerEditBuffer::updateChangedAttributes(), QgsVectorLayer::updateFeature(), QgsVectorLayerEditBuffer::updateFeatureGeometry(), QgsOfflineEditing::updateFidLookup(), QgsVectorLayerFeatureIterator::useAddedFeature(), and QgsVectorFileWriter::writeAsVectorFormat().
| void QgsFeature::initAttributes | ( | int | fieldCount | ) |
Definition at line 173 of file qgsfeature.cpp.
References mAttributes.
Referenced by QgsVectorLayerImport::addFeature(), QgsAttributeTableModel::feature(), QgsVectorLayerImport::importLayer(), QgsFeature(), and QgsVectorFileWriter::writeAsVectorFormat().
| bool QgsFeature::isValid | ( | ) | const |
Return 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.
Definition at line 163 of file qgsfeature.cpp.
References mValid.
Referenced by QgsAttributeTableModel::data(), QgsDualView::on_mFeatureList_currentEditSelectionChanged(), and QgsExpressionBuilderWidget::on_txtExpressionString_textChanged().
| QgsFeature & QgsFeature::operator= | ( | QgsFeature const & | rhs | ) |
assignment operator needed due to internal pointer
Definition at line 64 of file qgsfeature.cpp.
References mAttributes, mFid, mFields, mGeometry, mOwnsGeometry, mValid, and setGeometry().
| bool QgsFeature::setAttribute | ( | int | field, |
| const QVariant & | attr | ||
| ) |
Definition at line 182 of file qgsfeature.cpp.
References QgsMessageLog::logMessage(), mAttributes, tr, and QgsMessageLog::WARNING.
Referenced by QgsAttributeDialog::accept(), QgsVectorLayerImport::addFeature(), QgsVectorLayerFeatureIterator::FetchJoinInfo::addJoinedAttributesCached(), QgsVectorLayerFeatureIterator::FetchJoinInfo::addJoinedAttributesDirect(), QgsVectorLayerCache::attributeValueChanged(), QgsGml::endElement(), QgsAttributeTableModel::feature(), and QgsVectorLayerUndoCommandDeleteAttribute::undo().
| bool QgsFeature::setAttribute | ( | const QString & | name, |
| QVariant | value | ||
| ) |
Insert a value into attribute.
Returns false if attribute name could not be converted to index. Field map must be associated to make this work.
Definition at line 194 of file qgsfeature.cpp.
References fieldNameIndex(), and mAttributes.
| void QgsFeature::setAttributes | ( | const QgsAttributes & | attrs | ) | [inline] |
Definition at line 145 of file qgsfeature.h.
Referenced by QgsOfflineEditing::applyFeaturesAdded(), QgsGeometryAnalyzer::bufferFeature(), QgsGeometryAnalyzer::centroidFeature(), QgsGeometryAnalyzer::convexHull(), QgsOfflineEditing::copyVectorLayer(), QgsGeometryAnalyzer::dissolve(), QgsGeometryAnalyzer::extent(), QgsOverlayAnalyzer::intersectFeature(), QgsGeometryAnalyzer::simplifyFeature(), QgsVectorLayerEditUtils::splitFeatures(), QgsGml::startElement(), QgsVectorLayerFeatureIterator::useAddedFeature(), and QgsVectorLayerFeatureIterator::useChangedAttributeFeature().
| void QgsFeature::setFeatureId | ( | QgsFeatureId | id | ) |
Set the feature id for this feature.
Set the feature id.
| id | Feature id |
Definition at line 129 of file qgsfeature.cpp.
Referenced by QgsAttributeTableModel::feature(), QgsAttributeTableModel::QgsAttributeTableModel(), QgsVectorLayerUndoCommandAddFeature::QgsVectorLayerUndoCommandAddFeature(), QgsAttributeTableModel::reload(), QgsVectorLayerFeatureIterator::useAddedFeature(), and QgsVectorLayerFeatureIterator::useChangedAttributeFeature().
| void QgsFeature::setFields | ( | const QgsFields * | fields | ) | [inline] |
Assign a field map with the feature to allow attribute access by attribute name.
Definition at line 194 of file qgsfeature.h.
Referenced by QgsVectorLayerFeatureIterator::nextFeature(), QgsVectorLayerFeatureIterator::useAddedFeature(), and QgsVectorLayerFeatureIterator::useChangedAttributeFeature().
| void QgsFeature::setGeometry | ( | const QgsGeometry & | geom | ) |
Set this feature's geometry from another QgsGeometry object (deep copy)
Definition at line 135 of file qgsfeature.cpp.
Referenced by QgsGeometryAnalyzer::addEventLayerFeature(), QgsVectorLayerImport::addFeature(), QgsGeometryAnalyzer::buffer(), QgsGeometryAnalyzer::bufferFeature(), QgsGeometryAnalyzer::centroidFeature(), QgsGeometryAnalyzer::convexHull(), QgsGeometryAnalyzer::dissolve(), QgsGml::endElement(), QgsGeometryAnalyzer::extent(), QgsVectorLayerCache::geometryChanged(), QgsOverlayAnalyzer::intersectFeature(), operator=(), QgsAttributeDialog::QgsAttributeDialog(), QgsFeature(), setGeometryAndOwnership(), QgsGeometryAnalyzer::simplifyFeature(), QgsVectorLayerEditUtils::splitFeatures(), QgsVectorLayerEditBuffer::updateFeatureGeometry(), QgsVectorLayerFeatureIterator::useAddedFeature(), and QgsVectorLayerFeatureIterator::useChangedAttributeFeature().
| void QgsFeature::setGeometry | ( | QgsGeometry * | geom | ) |
Set this feature's geometry (takes geometry ownership)
Definition at line 140 of file qgsfeature.cpp.
References mGeometry, and mOwnsGeometry.
| void QgsFeature::setGeometryAndOwnership | ( | unsigned char * | geom, |
| size_t | length | ||
| ) |
Set this feature's geometry from WKB.
Set the pointer to the feature geometry.
This feature assumes responsibility for destroying geom.
Definition at line 155 of file qgsfeature.cpp.
References QgsGeometry::fromWkb(), and setGeometry().
Referenced by QgsGml::endElement().
| void QgsFeature::setValid | ( | bool | validity | ) |
Set the validity of the feature.
Definition at line 168 of file qgsfeature.cpp.
References mValid.
Referenced by QgsAttributeTableModel::attributeValueChanged(), QgsGml::endElement(), QgsVectorLayerFeatureIterator::nextFeature(), QgsVectorLayerFeatureIterator::useAddedFeature(), and QgsVectorLayerFeatureIterator::useChangedAttributeFeature().
QgsAttributes QgsFeature::mAttributes [private] |
attributes accessed by field index
Definition at line 236 of file qgsfeature.h.
Referenced by attribute(), deleteAttribute(), initAttributes(), operator=(), and setAttribute().
QgsFeatureId QgsFeature::mFid [private] |
feature id
Definition at line 233 of file qgsfeature.h.
Referenced by id(), operator=(), and setFeatureId().
const QgsFields* QgsFeature::mFields [private] |
Optional field map for name-based attribute lookups.
Definition at line 253 of file qgsfeature.h.
Referenced by fieldNameIndex(), and operator=().
QgsGeometry* QgsFeature::mGeometry [private] |
pointer to geometry in binary WKB format
This is usually set by a call to OGRGeometry::exportToWkb()
Definition at line 242 of file qgsfeature.h.
Referenced by geometry(), geometryAndOwnership(), operator=(), QgsFeature(), setGeometry(), and ~QgsFeature().
bool QgsFeature::mOwnsGeometry [private] |
Indicator if the mGeometry is owned by this QgsFeature.
If so, this QgsFeature takes responsibility for the mGeometry's destruction.
Definition at line 247 of file qgsfeature.h.
Referenced by geometryAndOwnership(), operator=(), setGeometry(), and ~QgsFeature().
bool QgsFeature::mValid [private] |
Flag to indicate if this feature is valid.
Definition at line 250 of file qgsfeature.h.
Referenced by isValid(), operator=(), and setValid().