Skip To Content ArcGIS for Developers Sign In Dashboard

RasterLayer Class

class Esri::ArcGISRuntime::RasterLayer

Displays raster data in a map or scene. More...

Header: #include <RasterLayer>
Since: Esri::ArcGISRuntime 100.0
Inherits: Esri::ArcGISRuntime::ImageAdjustmentLayer, Esri::ArcGISRuntime::PopupSource, and Esri::ArcGISRuntime::TimeAware

This class was introduced in Esri::ArcGISRuntime 100.0.

Public Functions

RasterLayer(Esri::ArcGISRuntime::Item *item, QObject *parent = nullptr)
RasterLayer(Esri::ArcGISRuntime::Raster *raster, QObject *parent = nullptr)
virtual ~RasterLayer() override
Esri::ArcGISRuntime::Raster *raster() const
Esri::ArcGISRuntime::RasterRenderer *renderer() const
void setRenderer(Esri::ArcGISRuntime::RasterRenderer *renderer)

Reimplemented Public Functions

virtual Esri::ArcGISRuntime::TimeExtent fullTimeExtent() const override
virtual bool isPopupEnabled() const override
virtual bool isSupportsTimeFiltering() const override
virtual bool isTimeFilteringEnabled() const override
virtual Esri::ArcGISRuntime::PopupDefinition *popupDefinition() const override
virtual void setPopupDefinition(Esri::ArcGISRuntime::PopupDefinition *popupDefinition) override
virtual void setPopupEnabled(bool popupEnabled) override
virtual void setTimeFilteringEnabled(bool timeFilteringEnabled) override
virtual void setTimeOffset(const Esri::ArcGISRuntime::TimeValue &timeOffset) override
virtual Esri::ArcGISRuntime::TimeValue timeInterval() const override
virtual Esri::ArcGISRuntime::TimeValue timeOffset() const override

Signals

Detailed Description

RasterLayer adopts the loadable pattern; many of its properties are initialized asynchronously. See Loadable for more information.

In its simplest form, raster data consists of a matrix of cells (or pixels) organized into rows and columns (or a grid), where each cell contains a value representing information. RasterLayer can support these main raster data sources:

You can change how a raster layer is visualized by creating a RasterRenderer and applying it to the layer. Each raster layer supports identify on its individual cells when it is displayed in a MapView or SceneView.

If a raster dataset has just one value associated with each cell it is called a single- band raster. For example, in a digital elevation model (DEM) each cell contains one value representing the elevation at that location.

A satellite image, however, commonly has multiple bands representing different wavelengths of the electromagnetic spectrum. Landsat imagery, for example, contains seven bands that represent data from the visible and infrared parts of the spectrum. Rasters are particularly useful for remote sensing tasks, such as monitoring vegetation and seeing through smoke to analyze an active fire.

Raster datasets can be large. The size of the dataset depends on:

  • The geographic extent of the data
  • The size of the cells used (resolution)
  • The number of bands

As with any data consumed locally, file size can be an issue for storage as well as for transferring datasets over the network.

Note: The RasterLayer will automatically re-project on-the-fly. For example, this would mean that a RasterLayer that is in WKID 4326 could be added to a Map that is in WKID 3857, and the RasterLayer would project on-the-fly to WKID 3857.

Learn more about rasters from the ArcGIS Desktop documentation.

For samples, see:

See also Layer, ImageAdjustmentLayer, Raster, ImageServiceRaster, GeoPackageRaster, and MosaicDatasetRaster.

Member Function Documentation

RasterLayer::RasterLayer(Esri::ArcGISRuntime::Item *item, QObject *parent = nullptr)

Constructs a RasterLayer with the given image service raster portal item (item) and an optional parent.

RasterLayer::RasterLayer(Esri::ArcGISRuntime::Raster *raster, QObject *parent = nullptr)

Constructs a RasterLayer with the provided raster and an optional parent.

[signal] void RasterLayer::fullTimeExtentChanged()

Signal emitted when the fullTimeExtent changes.

See also TimeAware.

[override virtual] RasterLayer::~RasterLayer()

Destructor.

[override virtual] Esri::ArcGISRuntime::TimeExtent RasterLayer::fullTimeExtent() const

Reimplements: TimeAware::fullTimeExtent() const.

Returns the full time extent of the layer.

This function was introduced in Esri::ArcGISRuntime 100.3.

[override virtual] bool RasterLayer::isPopupEnabled() const

Reimplements: PopupSource::isPopupEnabled() const.

Returns whether the Popup is enabled on the PopupSource.

[override virtual] bool RasterLayer::isSupportsTimeFiltering() const

Reimplements: TimeAware::isSupportsTimeFiltering() const.

Returns whether the layer supports filtering its contents by time values.

This function was introduced in Esri::ArcGISRuntime 100.3.

[override virtual] bool RasterLayer::isTimeFilteringEnabled() const

Reimplements: TimeAware::isTimeFilteringEnabled() const.

Returns whether the layer participates in filtering based on the time extent of its geo view.

This function was introduced in Esri::ArcGISRuntime 100.3.

[override virtual] Esri::ArcGISRuntime::PopupDefinition *RasterLayer::popupDefinition() const

Reimplements: PopupSource::popupDefinition() const.

See PopupSource.

See also setPopupDefinition().

Esri::ArcGISRuntime::Raster *RasterLayer::raster() const

Returns the Raster with which the layer was constructed.

Esri::ArcGISRuntime::RasterRenderer *RasterLayer::renderer() const

Returns the raster renderer for this layer.

See also setRenderer().

[override virtual] void RasterLayer::setPopupDefinition(Esri::ArcGISRuntime::PopupDefinition *popupDefinition)

Reimplements: PopupSource::setPopupDefinition(Esri::ArcGISRuntime::PopupDefinition *popupDefinition).

Sets the popup definition to popupDefinition.

See also popupDefinition() and PopupSource.

[override virtual] void RasterLayer::setPopupEnabled(bool popupEnabled)

Reimplements: PopupSource::setPopupEnabled(bool popupEnabled).

Sets whether the PopupSource is enabled to popupEnabled.

See also isPopupEnabled() and PopupSource.

void RasterLayer::setRenderer(Esri::ArcGISRuntime::RasterRenderer *renderer)

Sets the raster renderer for this layer.

See also renderer().

[override virtual] void RasterLayer::setTimeFilteringEnabled(bool timeFilteringEnabled)

Reimplements: TimeAware::setTimeFilteringEnabled(bool timeFilteringEnabled).

Sets whether the layer uses the time range defined on the geo view to timeFilteringEnabled.

This function was introduced in Esri::ArcGISRuntime 100.3.

See also isTimeFilteringEnabled().

[override virtual] void RasterLayer::setTimeOffset(const Esri::ArcGISRuntime::TimeValue &timeOffset)

Reimplements: TimeAware::setTimeOffset(const Esri::ArcGISRuntime::TimeValue &timeOffset).

Sets the time offset of the layer to timeOffset.

The time offset is subtracted from the time extent set on the layer's geo view. This can be used to overlay data from different periods of time for comparison.

This function was introduced in Esri::ArcGISRuntime 100.3.

See also timeOffset().

[override virtual] Esri::ArcGISRuntime::TimeValue RasterLayer::timeInterval() const

Reimplements: TimeAware::timeInterval() const.

Returns a time interval that represents the suggested step size for use when manipulating the time extent.

This information can be used to set the step size for a time slider control.

This function was introduced in Esri::ArcGISRuntime 100.3.

[override virtual] Esri::ArcGISRuntime::TimeValue RasterLayer::timeOffset() const

Reimplements: TimeAware::timeOffset() const.

Returns the applied time offset.

This function was introduced in Esri::ArcGISRuntime 100.3.

See also setTimeOffset().


Feedback on this topic?