RasterFunction Class

  • RasterFunction
  • class Esri::ArcGISRuntime::RasterFunction

    An operation that can be performed on one or more rasters or a mosaic dataset by applying on-the-fly processing. More...

    Header: #include <RasterFunction.h>
    Since: Esri::ArcGISRuntime 100.0
    Inherits: Esri::ArcGISRuntime::Object

    Public Functions

    RasterFunction(const QString &path, QObject *parent = nullptr)
    virtual ~RasterFunction() override
    Esri::ArcGISRuntime::RasterFunctionArguments *arguments() const

    Static Public Members

    Esri::ArcGISRuntime::RasterFunction *fromJson(const QString &json, QObject *parent = nullptr)

    Detailed Description

    Examples of RasterFunctions include Hillshade, Stretch, Colormap, Mask, and ShadedRelief, among others.

    RasterFunctions in ArcGIS Maps SDK work very similarly to the ArcGIS REST API. The following workflow is a common way to render a raster using a raster function:

    1. Create a raster function via JSON. For example, the following JSON could be used for a Pansharpen function:
      {
        "raster_function":{"type":"Pansharpen_function"},
        "raster_function_arguments":
        {
          "weights":{"double_array":[0.10000000000000001,0.5,0.40000000000000002,0.29999999999999999],"type":"Raster_function_variable"},
          "pansharpen_type":{"pansharpen_type":"gram_schmidt","type":"Raster_function_variable"},
          "pan_raster":{"name":"pan_raster","is_raster":true,"type":"Raster_function_variable"},
          "raster":{"name":"raster","is_raster":true,"type":"Raster_function_variable"},
          "type":"Raster_function_arguments"
        },
        "type":"Raster_function_template"
      }

      For documentation on this API's JSON format and syntax for the different raster functions, please see the Guide topic Add raster data.

    2. Construct a RasterFunction object with the JSON created in step 1.
    3. Get the RasterFunctionArguments with arguments.
    4. Add rasters to the RasterFunctionArguments.
    5. Create a new Raster object with this RasterFunction.
    6. Create a new RasterLayer with the Raster object.
    7. Add the RasterLayer to a map or scene.

    For further details on raster functions, please see the ArcGIS Desktop documentation.

    Use an ImageServiceRaster as an argument for a raster function:

    RasterFunction* rasterFunction = new RasterFunction(m_dataPath + "/hillshade_simplified.json", this);
    RasterFunctionArguments* arguments = rasterFunction->arguments();
    arguments->setRaster("raster", m_imageServiceRaster);
    
    // create a new raster with the raster function and add to the operational layer
    Raster* raster = new Raster(rasterFunction, this);
    RasterLayer* rasterLayer = new RasterLayer(raster, this);

    You can see the complete code in the C++ sample Raster Function Service.

    Member Function Documentation

    [explicit] RasterFunction::RasterFunction(const QString &path, QObject *parent = nullptr)

    Constructor that takes a path to a local JSON file and an optional parent.

    [override virtual] RasterFunction::~RasterFunction()

    Destructor.

    Esri::ArcGISRuntime::RasterFunctionArguments *RasterFunction::arguments() const

    Returns the arguments of this raster function.

    [static] Esri::ArcGISRuntime::RasterFunction *RasterFunction::fromJson(const QString &json, QObject *parent = nullptr)

    Creates a new RasterFunction from its JSON representation.

    • json - The JSON text.
    • parent - The optional parent.

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