AnnotationLayer Class

  • AnnotationLayer
  • class Esri::ArcGISRuntime::AnnotationLayer

    A layer that can visualize annotation text data. More...

    Header: #include <AnnotationLayer.h>
    Since: Esri::ArcGISRuntime 100.5
    Inherits: Esri::ArcGISRuntime::Layer and Esri::ArcGISRuntime::RemoteResource

    Public Functions

    AnnotationLayer(Esri::ArcGISRuntime::Item *item, qint64 serviceLayerId, QObject *parent = nullptr)
    AnnotationLayer(Esri::ArcGISRuntime::Item *item, qint64 serviceLayerId, Esri::ArcGISRuntime::Credential *credential, QObject *parent = nullptr)
    AnnotationLayer(Esri::ArcGISRuntime::ArcGISFeatureTable *featureTable, QObject *parent = nullptr)
    AnnotationLayer(Esri::ArcGISRuntime::ArcGISFeatureTable *featureTable, Esri::ArcGISRuntime::Credential *credential, QObject *parent = nullptr)
    AnnotationLayer(const QUrl &url, QObject *parent = nullptr)
    AnnotationLayer(const QUrl &url, Esri::ArcGISRuntime::Credential *credential, QObject *parent = nullptr)
    virtual ~AnnotationLayer() override
    Esri::ArcGISRuntime::LabelBarrierWeight barrierWeight() const
    void clearSelection()
    QString definitionExpression() const
    Esri::ArcGISRuntime::ArcGISFeatureTable *featureTable() const
    double referenceScale() const
    void resetFeaturesVisible()
    void selectFeature(Esri::ArcGISRuntime::Feature *feature)
    void selectFeatures(const QList<Esri::ArcGISRuntime::Feature *> &features)
    QFuture<Esri::ArcGISRuntime::FeatureQueryResult *> selectFeaturesAsync(const Esri::ArcGISRuntime::QueryParameters &parameters, Esri::ArcGISRuntime::SelectionMode mode, QObject *parent = nullptr)
    QFuture<Esri::ArcGISRuntime::FeatureQueryResult *> selectedFeaturesAsync(QObject *parent = nullptr)
    qint64 serviceLayerId() const
    void setBarrierWeight(Esri::ArcGISRuntime::LabelBarrierWeight barrierWeight)
    void setDefinitionExpression(const QString &definitionExpression)
    void setFeatureVisible(Esri::ArcGISRuntime::Feature *feature, bool visible)
    void setFeaturesVisible(const QList<Esri::ArcGISRuntime::Feature *> &features, bool visible)
    void unselectFeature(Esri::ArcGISRuntime::Feature *feature)
    void unselectFeatures(const QList<Esri::ArcGISRuntime::Feature *> &features)

    Reimplemented Public Functions

    virtual Esri::ArcGISRuntime::Credential *credential() const override
    virtual Esri::ArcGISRuntime::RequestConfiguration requestConfiguration() const override
    virtual void setRequestConfiguration(const Esri::ArcGISRuntime::RequestConfiguration &requestConfiguration) override
    virtual QUrl url() const override

    Detailed Description

    Annotation can be used to symbolize text on your maps as described in the ArcGIS Pro "Annotation" documentation. Annotation is defined using a text string, geographical location, and display properties such as font, size, and color. This information is stored in an annotation feature class in a geodatabase.

    There are two kinds of annotation:

    • Standard annotation is not formally associated with features in the geodatabase. An example of standard annotation is the text on a map for a mountain range. No specific feature represents the mountain range, but it is an area you want to mark. Standard annotation is read-only.
    • Feature-linked annotation is associated with a specific feature in another feature class in the geodatabase. The text in feature-linked annotation reflects the value of a field or fields from the feature to which it is linked. For example, the water transmission mains in a water network can be annotated with their names, which are stored in a field in the transmission mains feature class. If you edit the attributes and/or geographical position of the feature associated with the feature-linked annotation, any changes will be applied to the annotation feature table, and visible changes to the annotation will be reflected in the MapView. If the feature-linked annotation is stored in an Enterprise server, its feature and annotation tables must contain global object ids.

    You can construct an annotation layer using any of the following:

    Each annotation layer is partitioned into annotation sublayers. Each annotation sublayer corresponds to the label class of the original labels that were used to publish the annotation. In ArcGIS Pro, the annotation sublayers are known as annotation classes. Annotation sublayers offer greater control over the annotation:

    • An author can set different visual properties on the sublayer compared to the parent annotation layer. For example, font, size, color, or different minimum and maximum scale ranges.
    • You can access the annotation sublayer metadata information, such as the legend information, and set the visibility of each annotation sublayer.

    Annotation respects the reference scale defined by the map, so annotation will always be presented to the user at the correct size and position, as defined by the annotation author.

    Annotation layers can be taken offline from a feature service hosted on ArcGIS Enterprise 10.7.1 or later, using the GeodatabaseSyncTask. Annotation layers are also supported in mobile map packages created in ArcGIS Pro 2.3 or later.

    If your annotation feature class was created with ArcGIS Desktop, it will not display in an AnnotationLayer. To display the annotation data, you must upgrade the annotation dataset using the ArcGIS Pro Data Management tool called Upgrade Dataset before you publish it. For more information see the Managing annotation feature classes documentation.

    Relevant samples:

    Member Function Documentation

    AnnotationLayer::AnnotationLayer(Esri::ArcGISRuntime::Item *item, qint64 serviceLayerId, QObject *parent = nullptr)

    Creates a new annotation layer from a feature service portal item.

    • item - A feature service PortalItem.
    • serviceLayerId - The layer ID for which to create the layer.
    • parent - An optional parent QObject.

    See also Layer::item.

    [since Esri::ArcGISRuntime 100.13] AnnotationLayer::AnnotationLayer(Esri::ArcGISRuntime::Item *item, qint64 serviceLayerId, Esri::ArcGISRuntime::Credential *credential, QObject *parent = nullptr)

    Creates a new annotation layer from a feature service portal item.

    • item - a feature service PortalItem.
    • serviceLayerId - the layer ID for which to create the layer.
    • credential - The credential used to access the remote resource.
    • parent - An optional parent QObject.

    This function was introduced in Esri::ArcGISRuntime 100.13.

    [explicit, since Esri::ArcGISRuntime 100.6] AnnotationLayer::AnnotationLayer(Esri::ArcGISRuntime::ArcGISFeatureTable *featureTable, QObject *parent = nullptr)

    Creates a new annotation layer from a feature service table.

    If the feature table does not contain annotation data then the AnnotationLayer will fail to load. ArcGISFeatureTable::layerInfo and ArcGISFeatureLayerInfo::serviceType can be checked to verify the feature type, before attempting to create a Layer.

    This function was introduced in Esri::ArcGISRuntime 100.6.

    [since Esri::ArcGISRuntime 100.13] AnnotationLayer::AnnotationLayer(Esri::ArcGISRuntime::ArcGISFeatureTable *featureTable, Esri::ArcGISRuntime::Credential *credential, QObject *parent = nullptr)

    Creates a new annotation layer from a feature service table.

    If the feature table does not contain annotation data then the AnnotationLayer will fail to load. ArcGISFeatureTable::layerInfo and ArcGISFeatureLayerInfo::serviceType can be checked to verify the feature type, before attempting to create a Layer.

    • featureTable - a feature table ArcGISFeatureTable.
    • credential - The credential used to access the remote resource.
    • parent - An optional parent QObject.

    This function was introduced in Esri::ArcGISRuntime 100.13.

    [explicit] AnnotationLayer::AnnotationLayer(const QUrl &url, QObject *parent = nullptr)

    Creates a new annotation layer from a feature service URL.

    • url - The URL to the feature service layer.
    • parent - An optional parent QObject.

    If the specified URL is not a valid ArcGIS feature service endpoint, then it will fail to load.

    [since Esri::ArcGISRuntime 100.13] AnnotationLayer::AnnotationLayer(const QUrl &url, Esri::ArcGISRuntime::Credential *credential, QObject *parent = nullptr)

    Creates a new annotation layer from a feature service URL.

    • url - The URL to the feature service layer.
    • credential - The credential used to access the remote resource.
    • parent - An optional parent QObject.

    If the specified URL is not a valid ArcGIS feature service endpoint, then it will fail to load.

    This function was introduced in Esri::ArcGISRuntime 100.13.

    [override virtual] AnnotationLayer::~AnnotationLayer()

    Destructor.

    [since Esri::ArcGISRuntime 100.14] Esri::ArcGISRuntime::LabelBarrierWeight AnnotationLayer::barrierWeight() const

    Returns the weight of annotation features when considered as barriers to labeling.

    The default is LabelBarrierWeight::High.

    This function was introduced in Esri::ArcGISRuntime 100.14.

    See also setBarrierWeight().

    [since Esri::ArcGISRuntime 100.12] void AnnotationLayer::clearSelection()

    Updates any selected features in the layer back to the un-selected state.

    This function was introduced in Esri::ArcGISRuntime 100.12.

    [override virtual, since Esri::ArcGISRuntime 100.13] Esri::ArcGISRuntime::Credential *AnnotationLayer::credential() const

    Reimplements: RemoteResource::credential() const.

    Returns security credentials to access the remote resource.

    Only applicable if the resource is secured.

    This function was introduced in Esri::ArcGISRuntime 100.13.

    [since Esri::ArcGISRuntime 100.12] QString AnnotationLayer::definitionExpression() const

    Returns a SQL statement where clause that stipulates a subset of features to be displayed.

    The definition expression string uses the SQL-92 WHERE clause syntax: (https://en.wikipedia.org/wiki/SQL-92). The default value is an empty string, which will allow all annotation features in the data source to be used by the AnnotationLayer.

    This function was introduced in Esri::ArcGISRuntime 100.12.

    See also setDefinitionExpression().

    [since Esri::ArcGISRuntime 100.6] Esri::ArcGISRuntime::ArcGISFeatureTable *AnnotationLayer::featureTable() const

    Returns the feature table associated with this layer.

    This function was introduced in Esri::ArcGISRuntime 100.6.

    double AnnotationLayer::referenceScale() const

    Returns the reference scale for the layer.

    The reference scale of the layer is the scale at which a client should view the layer for the text to appear at its authored size.

    If the client changes the viewing scale, then text will grow or shrink to keep a consistent size on the map (not the screen).

    For a valid layer, the reference scale will always be a finite value, greater than zero. Until the layer is loaded, the reference scale will be zero.

    [override virtual, since Esri::ArcGISRuntime 100.13] Esri::ArcGISRuntime::RequestConfiguration AnnotationLayer::requestConfiguration() const

    Reimplements: RemoteResource::requestConfiguration() const.

    Returns the RequestConfiguration used to customize the request to this RemoteResource.

    This function was introduced in Esri::ArcGISRuntime 100.13.

    See also setRequestConfiguration().

    [since Esri::ArcGISRuntime 100.12] void AnnotationLayer::resetFeaturesVisible()

    Resets the visibility of the layer's features to the original visibility loaded from the data source.

    This function was introduced in Esri::ArcGISRuntime 100.12.

    [since Esri::ArcGISRuntime 100.12] void AnnotationLayer::selectFeature(Esri::ArcGISRuntime::Feature *feature)

    Selects the given feature and adds it to the current list of selected features.

    • feature - The feature.

    This function was introduced in Esri::ArcGISRuntime 100.12.

    [since Esri::ArcGISRuntime 100.12] void AnnotationLayer::selectFeatures(const QList<Esri::ArcGISRuntime::Feature *> &features)

    Selects the features in the list and adds them to the current list of selected features.

    This function was introduced in Esri::ArcGISRuntime 100.12.

    [since Esri::ArcGISRuntime 200.2] QFuture<Esri::ArcGISRuntime::FeatureQueryResult *> AnnotationLayer::selectFeaturesAsync(const Esri::ArcGISRuntime::QueryParameters &parameters, Esri::ArcGISRuntime::SelectionMode mode, QObject *parent = nullptr)

    Selects the features that match the criteria in the QueryParameters object and adds them to the current list of selected features.

    • parameters - The definition of the query to submit to the feature table.
    • mode - Defines how the list of currently selected features will be updated
    • parent - The optional parent QObject with the features returned from the query.

    This method returns a QFuture for the asynchronous operation. Use future.then() to continue processing when the operation completes. Use future.onFailed() to handle exceptions of type ErrorException.

    See Working with QFuture for further details.

    This function was introduced in Esri::ArcGISRuntime 200.2.

    [since Esri::ArcGISRuntime 200.2] QFuture<Esri::ArcGISRuntime::FeatureQueryResult *> AnnotationLayer::selectedFeaturesAsync(QObject *parent = nullptr)

    Returns a list of the currently selected features.

    • parent - The optional parent QObject

    This method returns a QFuture for the asynchronous operation. Use future.then() to continue processing when the operation completes. Use future.onFailed() to handle exceptions of type ErrorException.

    See Working with QFuture for further details.

    This function was introduced in Esri::ArcGISRuntime 200.2.

    qint64 AnnotationLayer::serviceLayerId() const

    Returns the layer ID that defines the layer within the feature service portal item.

    See also Layer::item.

    [since Esri::ArcGISRuntime 100.14] void AnnotationLayer::setBarrierWeight(Esri::ArcGISRuntime::LabelBarrierWeight barrierWeight)

    Sets the barrierWeight to barrierWeight.

    This function was introduced in Esri::ArcGISRuntime 100.14.

    See also barrierWeight.

    [since Esri::ArcGISRuntime 100.12] void AnnotationLayer::setDefinitionExpression(const QString &definitionExpression)

    Sets the definitionExpression to definitionExpression.

    This function was introduced in Esri::ArcGISRuntime 100.12.

    See also definitionExpression.

    [since Esri::ArcGISRuntime 100.12] void AnnotationLayer::setFeatureVisible(Esri::ArcGISRuntime::Feature *feature, bool visible)

    Sets the visibility of the given feature.

    • feature - The feature.
    • visible - true to show, false to hide.

    This function was introduced in Esri::ArcGISRuntime 100.12.

    [since Esri::ArcGISRuntime 100.12] void AnnotationLayer::setFeaturesVisible(const QList<Esri::ArcGISRuntime::Feature *> &features, bool visible)

    Sets the visibility of the features in the QList.

    • features - A QList of Feature. Contents of the QList are copied.
    • visible - true to show, false to hide.

    This function was introduced in Esri::ArcGISRuntime 100.12.

    [override virtual, since Esri::ArcGISRuntime 100.13] void AnnotationLayer::setRequestConfiguration(const Esri::ArcGISRuntime::RequestConfiguration &requestConfiguration)

    Reimplements: RemoteResource::setRequestConfiguration(const Esri::ArcGISRuntime::RequestConfiguration &requestConfiguration).

    Sets the RequestConfiguration, which is used to customize the request to this RemoteResource, to requestConfiguration.

    This function was introduced in Esri::ArcGISRuntime 100.13.

    See also requestConfiguration().

    [since Esri::ArcGISRuntime 100.12] void AnnotationLayer::unselectFeature(Esri::ArcGISRuntime::Feature *feature)

    Unselects the given feature and removes it from the current list of selected features.

    • feature - The feature.

    This function was introduced in Esri::ArcGISRuntime 100.12.

    [since Esri::ArcGISRuntime 100.12] void AnnotationLayer::unselectFeatures(const QList<Esri::ArcGISRuntime::Feature *> &features)

    Unselects the features in the given list and removes them from the current list of selected features.

    This function was introduced in Esri::ArcGISRuntime 100.12.

    [override virtual] QUrl AnnotationLayer::url() const

    Reimplements: RemoteResource::url() const.

    Returns the Feature Service URL for the layer.

    Your browser is no longer supported. Please upgrade your browser for the best experience. See our browser deprecation post for more details.