PictureMarkerSymbolLayer Class

  • PictureMarkerSymbolLayer
  • class Esri::ArcGISRuntime::PictureMarkerSymbolLayer

    Represents a symbol layer used to place a picture marker on a point geometry. More...

    Header: #include <PictureMarkerSymbolLayer.h>
    Since: Esri::ArcGISRuntime 100.5
    Inherits: Esri::ArcGISRuntime::MarkerSymbolLayer, Esri::ArcGISRuntime::Loadable, and Esri::ArcGISRuntime::RemoteResource

    Public Functions

    PictureMarkerSymbolLayer(const QImage &image, QObject *parent = nullptr)
    PictureMarkerSymbolLayer(const QUrl &url, QObject *parent = nullptr)
    PictureMarkerSymbolLayer(const QUrl &url, Esri::ArcGISRuntime::Credential *credential, QObject *parent = nullptr)
    virtual ~PictureMarkerSymbolLayer() override
    QImage image() const
    void setTintColor(const QColor &tintColor)
    QColor tintColor() const

    Reimplemented Public Functions

    virtual void cancelLoad() override
    virtual Esri::ArcGISRuntime::Credential *credential() const override
    virtual void load() override
    virtual Esri::ArcGISRuntime::Error loadError() const override
    virtual Esri::ArcGISRuntime::LoadStatus loadStatus() const override
    virtual Esri::ArcGISRuntime::RequestConfiguration requestConfiguration() const override
    virtual void retryLoad() override
    virtual void setRequestConfiguration(const Esri::ArcGISRuntime::RequestConfiguration &requestConfiguration) override
    virtual QUrl url() const override

    Signals

    void doneLoading(const Esri::ArcGISRuntime::Error &loadError)
    void loadStatusChanged(Esri::ArcGISRuntime::LoadStatus loadStatus)

    Detailed Description

    A PictureMarkerSymbolLayer represents a symbol layer used to place a picture marker on a point geometry.

    This symbol layer, in a MultilayerPointSymbol, places a picture marker at the location of the point feature. The class supports changing dimensions of the marker, specifying the image (or URL linking to the image) to use as the marker, as well as the general marker options provided by the MarkerSymbolLayer base class.

    This symbol layer is similar to the Web Scene specification's IconSymbol3DLayer, when the IconSymbol3DLayer references an image. PictureMarkerSymbolLayer is also similar to the Web Map specification's PictureMarkerSymbol. As a symbol layer, PictureMarkerSymbolLayer can be combined with other symbol layers in a MultilayerSymbol, whereas PictureMarkerSymbol cannot.

    Example:

    Create a PictureMarkerSymbolLayer and set its URL to an online PNG:

    const QUrl pictureMarkerSymbolLayerUrl("http://static.arcgis.com/images/Symbols/Basic/YellowStickpin.png");
    PictureMarkerSymbolLayer* pictureMarkerSymbolLayer = new PictureMarkerSymbolLayer(pictureMarkerSymbolLayerUrl, this);

    Member Function Documentation

    [explicit] PictureMarkerSymbolLayer::PictureMarkerSymbolLayer(const QImage &image, QObject *parent = nullptr)

    Creates a picture marker symbol layer from a QImage.

    • image - The QImage indicating the desired image.
    • parent - The optional parent QObject.

    This function sets up the following default properties: Anchor at (0, 0), offset of (0, 0), size of 13.33 DIPs (10 points), an angle of 0 degrees, width and height of (0, 0), and an empty URL. If the image is valid, the function sets the image on the symbol layer, and sets the load status of the PictureMarkerSymbolLayer to LoadStatus::Loaded.

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

    Creates a picture marker symbol layer from a URL.

    • url - indicating the URL location of the image to use in the symbol layer.
    • parent - The optional parent QObject.

    This function sets up the following default properties: Anchor at (0, 0), offset of (0, 0), size of 13.33 DIPs (10 points), an angle of 0 degrees, width and height of (0, 0), and a nullptr image. The function sets the URL to the string provided. After creating, call load to load the image from the URL.

    The URL can be provided as a path to a local file ( "file:/<path to file>"), path to a resource image ("qrc:/<path to resource image>"), or a path to an HTTP URL image ("http://path to image").

    PictureMarkerSymbolLayer::PictureMarkerSymbolLayer(const QUrl &url, Esri::ArcGISRuntime::Credential *credential, QObject *parent = nullptr)

    Creates a picture marker symbol layer from a URL.

    • url - indicating the URL location of the image to use in the symbol layer.
    • parent - The optional parent QObject.
    • credential - credential for the secured resource if the image needs authentication to gain access to it.

    This function sets up the following default properties: Anchor at (0, 0), offset of (0, 0), size of 13.33 DIPs (10 points), an angle of 0 degrees, width and height of (0, 0), and a nullptr image. The function sets the URL to the string provided. After creating, call load to load the image from the URL.

    The URL can be provided as a path to a local file ( "file:/<path to file>"), path to a resource image ("qrc:/<path to resource image>"), or a path to an HTTP URL image ("http://path to image").

    [override virtual] PictureMarkerSymbolLayer::~PictureMarkerSymbolLayer()

    Destructor.

    [override virtual] void PictureMarkerSymbolLayer::cancelLoad()

    Reimplements: Loadable::cancelLoad().

    Cancels loading metadata for the object.

    Cancels loading the metadata if the object is loading.

    See Loadable.

    [override virtual] Esri::ArcGISRuntime::Credential *PictureMarkerSymbolLayer::credential() const

    Reimplements: RemoteResource::credential() const.

    Returns security credentials to access the remote resource. Only applicable if the resource is secured.

    [signal] void PictureMarkerSymbolLayer::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.

    See also Loadable and Object.

    QImage PictureMarkerSymbolLayer::image() const

    Returns the image of a picture marker symbol layer.

    Setting the image of a PictureMarkerSymbolLayer modifies the picture used for rendering the marker.

    If a URL was provided for the picture marker symbol, an attempt to load the symbol must occur and succeed, and then the image can be returned from this function. Prior to loading in this case, this will return a null QImage.

    Returned images are in the QImage::Format_ARGB32_Premultiplied format.

    [override virtual] void PictureMarkerSymbolLayer::load()

    Reimplements: Loadable::load().

    Loads the metadata for the object asynchronously.

    Loads the metadata if the object is not loaded.

    See Loadable.

    [override virtual] Esri::ArcGISRuntime::Error PictureMarkerSymbolLayer::loadError() const

    Reimplements: Loadable::loadError() const.

    Returns the load error.

    See Loadable.

    See also Error.

    [override virtual] Esri::ArcGISRuntime::LoadStatus PictureMarkerSymbolLayer::loadStatus() const

    Reimplements: Loadable::loadStatus() const.

    Returns the load status.

    See Loadable.

    See also LoadStatus.

    [signal] void PictureMarkerSymbolLayer::loadStatusChanged(Esri::ArcGISRuntime::LoadStatus loadStatus)

    Signal emitted when the load status changes for this object.

    See also Loadable.

    [override virtual] Esri::ArcGISRuntime::RequestConfiguration PictureMarkerSymbolLayer::requestConfiguration() const

    Reimplements: RemoteResource::requestConfiguration() const.

    Returns the RequestConfiguration in use by this symbol.

    See also setRequestConfiguration().

    [override virtual] void PictureMarkerSymbolLayer::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.

    [override virtual] void PictureMarkerSymbolLayer::setRequestConfiguration(const Esri::ArcGISRuntime::RequestConfiguration &requestConfiguration)

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

    Sets configuration parameters used for network requests sent by this symbol to requestConfiguration.

    See also requestConfiguration().

    [since Esri::ArcGISRuntime 100.6] void PictureMarkerSymbolLayer::setTintColor(const QColor &tintColor)

    Sets the tintColor to tintColor.

    This function was introduced in Esri::ArcGISRuntime 100.6.

    See also tintColor.

    [since Esri::ArcGISRuntime 100.6] QColor PictureMarkerSymbolLayer::tintColor() const

    Returns the tint color of the picture marker symbol layer.

    The tint color is applied to the entire image by multiplying each RGB color channel in the image by the corresponding color channel of the tint color. The default color is white with 100% opacity (RGBA (255, 255, 255, 255)), which when applied leaves the image with its native colors. A white tint color with opacity less than 100% tints the image white, with the reduced opacity respected.

    When getting the tint color from a symbol, the consensus value is reported. If there is no consensus (one or more layers have different tint colors), a null value is reported for the tint color. Likewise, setting a value for tint color on a symbol will apply that tint color to all layers the symbol contains.

    This function was introduced in Esri::ArcGISRuntime 100.6.

    See also setTintColor().

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

    Reimplements: RemoteResource::url() const.

    Returns the URL of the image to be loaded in a picture marker symbol layer.

    Setting the URL changes the URL property of Loadable, from which PictureMarkerSymbolLayer inherits. The URL is an empty string by default. The URL cannot be set after attempting to load. To load the image at the specified URL, call load.

    This could be a local file path, Qt resource path, or HTTP path to the image.

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