ServiceImageTiledLayer Class

  • ServiceImageTiledLayer
  • class Esri::ArcGISRuntime::ServiceImageTiledLayer

    A base class for all image tiled layers that fetch map tiles from a remote service. More...

    Header: #include <ServiceImageTiledLayer.h>
    Since: Esri::ArcGISRuntime 100.1
    Inherits: Esri::ArcGISRuntime::ImageTiledLayer and Esri::ArcGISRuntime::RemoteResource
    Inherited By:

    Esri::ArcGISRuntime::BingMapsLayer and Esri::ArcGISRuntime::WebTiledLayer

    Public Functions

    ServiceImageTiledLayer(const Esri::ArcGISRuntime::TileInfo &tileInfo, const Esri::ArcGISRuntime::Envelope &fullExtent, QObject *parent = nullptr)
    ServiceImageTiledLayer(const Esri::ArcGISRuntime::TileInfo &tileInfo, const Esri::ArcGISRuntime::Envelope &fullExtent, Esri::ArcGISRuntime::Credential *credential, QObject *parent = nullptr)
    virtual ~ServiceImageTiledLayer() override

    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

    Signals

    void tileUrlRequest(const Esri::ArcGISRuntime::TileKey &tileKey)

    Protected Functions

    void setTileUrl(const Esri::ArcGISRuntime::TileKey &tileKey, const QUrl &url)

    Detailed Description

    This is an abstract class that must be derived to implement your own service tile data scheme.

    Creating a custom service image tiled layer

    To implement your own custom ServiceImageTiledLayer, for example to load your own online tiles, you should derive from this type and supply the URL for each tile as it is requested.

    To do this, connect to the tileUrlRequest signal and call the protected method setTileUrl for each TileKey which is requested:

    The tile info parameter defines the format of images (image format, DPI, width and height) returned by remote service, and the limits of extent and scale factor for requests.

    CustomServiceTiledLayer::CustomServiceTiledLayer(const TileInfo& tileInfo, const Envelope& fullExtent, QObject* parent) :
      ServiceImageTiledLayer(tileInfo, fullExtent, parent)
    {
      connect(this, &CustomServiceTiledLayer::tileUrlRequest, this, [this](const TileKey& tileKey)
      {
        setTileUrl(tileKey, QUrl(QString("http://tile.openstreetmap.org/%1/%2/%3.png").arg(
                              QString::number(tileKey.level()),
                              QString::number(tileKey.column()),
                              QString::number(tileKey.row()))));
      });
    }

    Network requesting, downloading images and rendering are done internally.

    Note: The URL supplied must be a valid online image URL. If the URL is not valid or if the image format does not match the tile info, ServiceImageTiledLayer will emit an error.

    See also TileInfo.

    Member Function Documentation

    [since Esri::ArcGISRuntime 100.2] ServiceImageTiledLayer::ServiceImageTiledLayer(const Esri::ArcGISRuntime::TileInfo &tileInfo, const Esri::ArcGISRuntime::Envelope &fullExtent, QObject *parent = nullptr)

    Constructor that accepts a tile info (tileInfo), an extent (fullExtent), and an optional parent.

    This function was introduced in Esri::ArcGISRuntime 100.2.

    [since Esri::ArcGISRuntime 100.2] ServiceImageTiledLayer::ServiceImageTiledLayer(const Esri::ArcGISRuntime::TileInfo &tileInfo, const Esri::ArcGISRuntime::Envelope &fullExtent, Esri::ArcGISRuntime::Credential *credential, QObject *parent = nullptr)

    Constructor that accepts a tile info (tileInfo), an extent (fullExtent), a credential, and an optional parent.

    This function was introduced in Esri::ArcGISRuntime 100.2.

    [override virtual] ServiceImageTiledLayer::~ServiceImageTiledLayer()

    Destructor.

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

    Reimplements: RemoteResource::credential() const.

    Returns the security credential used to access the layer. Only applicable if the service is secured.

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

    Reimplements: RemoteResource::requestConfiguration() const.

    Returns the RequestConfiguration in use by this layer.

    See also setRequestConfiguration().

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

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

    Sets requestConfiguration used for network requests sent by this layer.

    See also requestConfiguration().

    [protected, since Esri::ArcGISRuntime 100.2] void ServiceImageTiledLayer::setTileUrl(const Esri::ArcGISRuntime::TileKey &tileKey, const QUrl &url)

    Set the URL corresponding to the requested tileKey to url.

    Note: This function should only be called when implementing your own custom service image tiled layer type.

    This function was introduced in Esri::ArcGISRuntime 100.2.

    [signal, since Esri::ArcGISRuntime 100.2] void ServiceImageTiledLayer::tileUrlRequest(const Esri::ArcGISRuntime::TileKey &tileKey)

    Signal emitted when a tile URL is requested.

    • tileKey - The key used to identify the specific tile.

    Note: : React to this signal when implementing your own custom service image tiled layer type.

    This function was introduced in Esri::ArcGISRuntime 100.2.

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

    Reimplements: RemoteResource::url() const.

    Not implemented for ServiceImageTiledLayer.

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