UNPKG

@arcgis/core

Version:

ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API

98 lines (95 loc) 6.04 kB
import type Extent from "../../geometry/Extent.js"; import type Polygon from "../../geometry/Polygon.js"; import type DimensionalDefinition from "./DimensionalDefinition.js"; import type { JSONSupport } from "../../core/JSONSupport.js"; import type { PolygonProperties } from "../../geometry/Polygon.js"; import type { ExtentProperties } from "../../geometry/Extent.js"; import type { DimensionalDefinitionProperties } from "./DimensionalDefinition.js"; /** @since 5.0 */ export interface MultidimensionalSubsetProperties { /** * The spatial area of interest. The area of interest can only be set on an [ImageryLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/ImageryLayer/). * Only the imagery within the area of interest will be available when set. * * > [!WARNING] * > * > **Note:** * > * > This property will not be honored on an [ImageryTileLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/ImageryTileLayer/). */ areaOfInterest?: (ExtentProperties & { type: "extent" }) | (PolygonProperties & { type: "polygon" }) | null; /** * The variable and dimension subset definitions to set the layer. * Only the dimensional definitions defined here will be available on the layer. */ subsetDefinitions?: DimensionalDefinitionProperties[] | null; } /** * A subset of multidimensional raster data created by slicing the data along defined variables and dimensions. * Only dimensional slices that meet the multidimensionalSubset requirements will be available on a multidimensional [ImageryLayer.multidimensionalSubset](https://developers.arcgis.com/javascript/latest/references/core/layers/ImageryLayer/#multidimensionalSubset) * or [ImageryTileLayer.multidimensionalSubset](https://developers.arcgis.com/javascript/latest/references/core/layers/ImageryTileLayer/#multidimensionalSubset) when the `multiDimensionalSubset` property is set on the layer. * For example, if you have an [ImageryLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/ImageryLayer/) that contains 30 years of monthly precipitation data, * and you only want to expose data for each January to see how precipitation has changed for that month, you can set the `multiDimensionalSubset` on the imagery layer. * * When the `multiDimensionalSubset` is defined on a layer, the [ImageryTileLayer.multidimensionalDefinition](https://developers.arcgis.com/javascript/latest/references/core/layers/ImageryTileLayer/#multidimensionalDefinition) * property of the [ImageryTileLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/ImageryTileLayer/#multidimensionaldata) or the [mosaicRule.multidimensionalDefinition](https://developers.arcgis.com/javascript/latest/references/core/layers/ImageryLayer/#mosaicRule) * of the [ImageryLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/ImageryLayer/#multidimensionaldata) must be within the defined `multidimensionalSubset`, otherwise nothing will be displayed on the map or available for analysis. * * @since 4.25 * @see [ImageryLayer - working with multidimensional raster data](https://developers.arcgis.com/javascript/latest/references/core/layers/ImageryLayer/#multidimensionaldata) * @see [ImageryTileLayer - working with multidimensional raster data](https://developers.arcgis.com/javascript/latest/references/core/layers/ImageryTileLayer/#multidimensionaldata) * @see [Sample - Multidimensional ImageryTileLayer](https://developers.arcgis.com/javascript/latest/sample-code/layers-imagery-multidimensional/) */ export default class MultidimensionalSubset extends JSONSupport { constructor(properties?: MultidimensionalSubsetProperties); /** * The spatial area of interest. The area of interest can only be set on an [ImageryLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/ImageryLayer/). * Only the imagery within the area of interest will be available when set. * * > [!WARNING] * > * > **Note:** * > * > This property will not be honored on an [ImageryTileLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/ImageryTileLayer/). */ get areaOfInterest(): Extent | Polygon | null | undefined; set areaOfInterest(value: (ExtentProperties & { type: "extent" }) | (PolygonProperties & { type: "polygon" }) | null | undefined); /** The aggregated dimension names and their extents or ranges computed from the [subsetDefinitions](https://developers.arcgis.com/javascript/latest/references/core/layers/support/MultidimensionalSubset/#subsetDefinitions). */ get dimensions(): SubsetDimension[]; /** * The variable and dimension subset definitions to set the layer. * Only the dimensional definitions defined here will be available on the layer. */ get subsetDefinitions(): DimensionalDefinition[] | null | undefined; set subsetDefinitions(value: DimensionalDefinitionProperties[] | null | undefined); /** The aggregated variables list computed from the [subsetDefinitions](https://developers.arcgis.com/javascript/latest/references/core/layers/support/MultidimensionalSubset/#subsetDefinitions). */ get variables(): string[]; /** * Creates a deep clone of the MultidimensionalSubset object. * * @returns A clone of the object that invoked this method. */ clone(): MultidimensionalSubset; } /** * Dimension name and its extent or range computed from the [subsetDefinitions](https://developers.arcgis.com/javascript/latest/references/core/layers/support/MultidimensionalSubset/#subsetDefinitions) and it is added to [dimensions](https://developers.arcgis.com/javascript/latest/references/core/layers/support/MultidimensionalSubset/#dimensions). * * @since 4.25 */ export interface SubsetDimension { /** * The dimension name. * * @since 4.25 */ name: string; /** * The computed extent or ranges for the given dimension. * * @since 4.25 */ extent: [ number, number ]; }