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 |
This class was introduced in Esri::ArcGISRuntime 100.0.
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 Runtime work very similarly to the ArcGIS REST API. The following workflow is a common way to render a raster using a raster function:
- 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 the ArcGIS Runtime JSON format and syntax for the different raster functions, please see the Guide topic Add raster data.
- Construct a RasterFunction object with the JSON created in step 1.
- Get the RasterFunctionArguments with arguments.
- Add rasters to the RasterFunctionArguments.
- Create a new Raster object with this RasterFunction.
- Create a new RasterLayer with the Raster object.
- 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
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.