An ArcGIS specific feature stored in an ArcGISFeatureTable. More...
Header: | #include <ArcGISFeature.h> |
Since: | Esri::ArcGISRuntime 100.0 |
Inherits: | Esri::ArcGISRuntime::Feature and Esri::ArcGISRuntime::Loadable |
Public Functions
virtual | ~ArcGISFeature() override |
Esri::ArcGISRuntime::AttachmentListModel * | attachments() const |
Esri::ArcGISRuntime::AttachmentListModel * | attachments(bool enableAutoFetch, bool enableAutoApplyEdits) const |
bool | canEditAttachments() const |
bool | canUpdateGeometry() const |
Esri::ArcGISRuntime::FeatureSubtype | featureSubtype() const |
void | relateFeature(Esri::ArcGISRuntime::ArcGISFeature *feature) |
void | relateFeature(Esri::ArcGISRuntime::ArcGISFeature *feature, const Esri::ArcGISRuntime::RelationshipInfo &relationshipInfo) |
void | unrelateFeature(Esri::ArcGISRuntime::ArcGISFeature *feature) |
Reimplemented Public Functions
virtual void | cancelLoad() override |
virtual void | load() override |
virtual Esri::ArcGISRuntime::Error | loadError() const override |
virtual Esri::ArcGISRuntime::LoadStatus | loadStatus() const override |
virtual void | retryLoad() override |
Signals
void | doneLoading(const Esri::ArcGISRuntime::Error &loadError) |
void | loadStatusChanged(Esri::ArcGISRuntime::LoadStatus loadStatus) |
Detailed Description
ArcGIS features are stored in ArcGIS specific data sources such as a GeodatabaseFeatureTable or ServiceFeatureTable. Since ArcGISFeature is a subclass of Feature, it contains a geometry that defines its location and shape, and a set of attributes that describe the real-world entity it represents.
In addition, ArcGISFeature objects can also contain:
- Feature attachments such as images or documents, that can be edited, updated or deleted.
- Feature subtypes that define different default values or domains for fields.
- The ability to relate this feature to another ArcGISFeature.
- Geometry that has m-values, which are typically used for linear referencing.
If you create a ServiceFeatureTable from the URL of a feature service, features in the table are initially in one of the following states:
- A minimum set of attributes are available in the table, and m-values are omitted. This is an optimization for faster rendering.
- All attributes defined by the service are available in the table, including m-values, which might be
NaN
.
The initial state of features is determined by the feature request mode of the table. For important details, see FeatureRequestMode.
By default, a query on ArcGISFeature objects in a minimum state returns them in the same state. To access all attributes (or the m-values) of features returned by a query, you must load the features. You can do one of the following:
- Call Loadable::load on each feature.
- Call ServiceFeatureTable::loadOrRefreshFeaturesAsync(const QList<Esri::ArcGISRuntime::Feature*>&) and pass a mutable array of the features to be loaded.
- Call ServiceFeatureTable::queryFeaturesAsync(const Esri::ArcGISRuntime::QueryParameters&, Esri::ArcGISRuntime::QueryFeatureFields, QObject*) with the constant QueryFeatureFields::LoadAll, which returns all features in a fully loaded state.
For more information, see the class description for ServiceFeatureTable.
Relevant samples:
- Create mobile geodatabase: Create and share a mobile geodatabase.
- Edit feature attachments: Add, delete, and download attachments for features from a service.
- List related features: List features related to a selected feature.
- Update attributes (feature service): Update feature attributes in an online feature service.
- Validate utility network topology: Demonstrates the workflow of getting the network state and validating the topology of a utility network.
See also Attachment, FeatureSubtype, RelationshipInfo, and ArcGISFeatureTable.
Member Function Documentation
[override virtual]
ArcGISFeature::~ArcGISFeature ()
Destructor.
Esri::ArcGISRuntime::AttachmentListModel *ArcGISFeature::attachments() const
Gets the list of attachments on this feature.
Attachments are returned in descending order based on their id.
[since Esri::ArcGISRuntime 200.4]
Esri::ArcGISRuntime::AttachmentListModel *ArcGISFeature::attachments(bool enableAutoFetch , bool enableAutoApplyEdits ) const
Gets the list of attachments on this feature.
Attachments are returned in descending order based on their id.
- enableAutoFetch - If
true
, the attachments are automatically fetched. Iffalse
, explicitly call fetchAttachmentsAsync to fetch the attachments. - enableAutoApplyEdits - If
true
, the Edits are automatically applied. Iffalse
, explicitly call applyEditsAsync to apply the edits.
This function was introduced in Esri::ArcGISRuntime 200.4.
See also fetchAttachmentsAsync and applyEditsAsync.
bool ArcGISFeature::canEditAttachments () const
Returns true
if the attachments of this feature are editable, otherwise false
.
bool ArcGISFeature::canUpdateGeometry () const
Returns true
if the geometry of this feature can be updated, otherwise false
.
It takes into account the feature table properties, as well as ownership-based access control.
[override virtual]
void ArcGISFeature::cancelLoad ()
Reimplements: Loadable::cancelLoad().
See Loadable.
[signal]
void ArcGISFeature::doneLoading (const Esri::ArcGISRuntime::Error &loadError )
Signal emitted when this object is done loading.
- loadError - Details about any error that may have occurred.
Note: If there is a load error it will also be emitted on the errorOccurred
signal.
[since Esri::ArcGISRuntime 100.9]
Esri::ArcGISRuntime::FeatureSubtype ArcGISFeature::featureSubtype () const
Returns the corresponding FeatureSubtype for this feature.
If this feature belongs to an ArcGISFeatureTable that defines a ArcGISFeatureTable::subtypeField, a FeatureSubtype that matches FeatureSubtype::code with this feature's attribute value for subtype field is returned; otherwise, this will return empty.
This function was introduced in Esri::ArcGISRuntime 100.9.
[override virtual]
void ArcGISFeature::load()
Reimplements: Loadable::load().
Loads the metadata for the object asynchronously.
See Loadable.
[override virtual]
Esri::ArcGISRuntime::Error ArcGISFeature::loadError () const
Reimplements: Loadable::loadError() const.
See Loadable.
[override virtual]
Esri::ArcGISRuntime::LoadStatus ArcGISFeature::loadStatus () const
Reimplements: Loadable::loadStatus() const.
Returns the load status.
See Loadable.
See also LoadStatus.
[signal]
void ArcGISFeature::loadStatusChanged (Esri::ArcGISRuntime::LoadStatus loadStatus )
loadStatus See Loadable.
[since 100.1]
void ArcGISFeature::relateFeature (Esri::ArcGISRuntime::ArcGISFeature *feature)
Sets up a relationship between this feature and a given feature.
If this relationship is keyed on an Object ID or Global ID, and the origin feature in this call has been created locally, first you must call ServiceFeatureTable::applyEditsAsync method on the ServiceFeatureTable::serviceGeodatabase. Next, you must call Feature::refresh to get the new Object ID and Global ID that are generated by the service. Otherwise, the destination feature will refer to an outdated ID rather than the one defined for the relationship.
This function was introduced in Qt 100.1.
[since Esri::ArcGISRuntime 100.1]
void ArcGISFeature::relateFeature (Esri::ArcGISRuntime::ArcGISFeature *feature, const Esri::ArcGISRuntime::RelationshipInfo &relationshipInfo )
Sets up a relationship between this feature and the provided feature based on the given relationshipInfo.
See RelationshipInfo for more details.
- feature - The feature to which this feature should be related.
- relationshipInfo - The relationship information used to relate the two features.
This function was introduced in Esri::ArcGISRuntime 100.1.
[override virtual]
void ArcGISFeature::retryLoad ()
Reimplements: Loadable::retryLoad().
Loads or retries loading metadata for the object asynchronously.
Will retry loading the metadata if the object is failed to load. Will load the object if it is not loaded. Will not retry to load the object if the object is loaded. Will always call the done loading if this is called.
See Loadable.
[since 100.1]
void ArcGISFeature::unrelateFeature (Esri::ArcGISRuntime::ArcGISFeature *feature)
Removes the relationship between this feature and the provided feature.
- feature - The feature from which this feature should remove its relationship.
If there is no existing relationship between the features, an ErrorType::CommonInvalidArgument is thrown.
This function was introduced in Qt 100.1.