UNPKG

@arcgis/core

Version:

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

130 lines (128 loc) 10.4 kB
import type Extent from "../../geometry/Extent.js"; import type Multipoint from "../../geometry/Multipoint.js"; import type Point from "../../geometry/Point.js"; import type Polygon from "../../geometry/Polygon.js"; import type Polyline from "../../geometry/Polyline.js"; import type MosaicRule from "../../layers/support/MosaicRule.js"; import type TimeExtent from "../../time/TimeExtent.js"; import type { JSONSupport } from "../../core/JSONSupport.js"; import type { RasterInterpolation } from "../../layers/raster/types.js"; import type { PolygonProperties } from "../../geometry/Polygon.js"; import type { ExtentProperties } from "../../geometry/Extent.js"; import type { PolylineProperties } from "../../geometry/Polyline.js"; import type { MultipointProperties } from "../../geometry/Multipoint.js"; import type { PointProperties } from "../../geometry/Point.js"; import type { MosaicRuleProperties } from "../../layers/support/MosaicRule.js"; import type { TimeExtentProperties } from "../../time/TimeExtent.js"; export interface ImageSampleParametersProperties extends Partial<Pick<ImageSampleParameters, "interpolation" | "outFields" | "returnFirstValueOnly" | "sampleCount" | "sampleDistance" | "sliceId">> { /** * Input geometry that defines the locations to be sampled. * The geometry can be a [Point](https://developers.arcgis.com/javascript/latest/references/core/geometry/Point/), [Multipoint](https://developers.arcgis.com/javascript/latest/references/core/geometry/Multipoint/), * [Polyline](https://developers.arcgis.com/javascript/latest/references/core/geometry/Polyline/), [Extent](https://developers.arcgis.com/javascript/latest/references/core/geometry/Extent/) or * a [Polygon](https://developers.arcgis.com/javascript/latest/references/core/geometry/Polygon/). * * The [locations](https://developers.arcgis.com/javascript/latest/references/core/rest/support/ImageSampleParameters/#locations) property can be used to set an array of [points](https://developers.arcgis.com/javascript/latest/references/core/geometry/Point/) for convenience if the geometry is * a `multipoint`. If you set the `locations` property, the array of points will be converted to a `multipoint` geometry at runtime. */ geometry?: (PointProperties & { type: "point" }) | (MultipointProperties & { type: "multipoint" }) | (PolylineProperties & { type: "polyline" }) | (ExtentProperties & { type: "extent" }) | (PolygonProperties & { type: "polygon" }); /** * When sampling multiple locations, you can use an array of [points](https://developers.arcgis.com/javascript/latest/references/core/geometry/Point/) instead of providing * a [Multipoint](https://developers.arcgis.com/javascript/latest/references/core/geometry/Multipoint/) for the [geometry](https://developers.arcgis.com/javascript/latest/references/core/rest/support/ImageSampleParameters/#geometry) property. The array of points will be converted * to a `multipoint` and used as the [geometry](https://developers.arcgis.com/javascript/latest/references/core/rest/support/ImageSampleParameters/#geometry) at runtime. * The first point's spatial reference is used in `getSamples` operation. */ locations?: PointProperties[] | null; /** * Specifies the [mosaic rule](https://developers.arcgis.com/javascript/latest/references/core/layers/support/MosaicRule/) defining the image sort order and selection. * When a mosaic rule is not specified, the current settings on the [ImageryLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/ImageryLayer/) will be used. */ mosaicRule?: MosaicRuleProperties | null; /** * Specifies the pixel size (or the resolution) that will be used for the sampling. If pixel size is not specified, `pixelSize` will default to the base resolution of the image service. * The raster at the specified pixel size in the mosaic dataset will be used for this operation. */ pixelSize?: PointProperties | null; /** * The [time extent](https://developers.arcgis.com/javascript/latest/references/core/time/TimeExtent/) for which to perform sampling. * This parameter is supported at ArcGIS Server 10.9 and later. */ timeExtent?: TimeExtentProperties | null; } /** * Input parameters for the [ImageryLayer.getSamples()](https://developers.arcgis.com/javascript/latest/references/core/layers/ImageryLayer/#getSamples) * method on [ImageryLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/ImageryLayer/). * * @since 4.20 * @see [ImageryLayer.getSamples()](https://developers.arcgis.com/javascript/latest/references/core/layers/ImageryLayer/#getSamples) * @see [ImageSampleResult](https://developers.arcgis.com/javascript/latest/references/core/rest/support/ImageSampleResult/) */ export default class ImageSampleParameters extends JSONSupport { constructor(properties?: ImageSampleParametersProperties); /** * Input geometry that defines the locations to be sampled. * The geometry can be a [Point](https://developers.arcgis.com/javascript/latest/references/core/geometry/Point/), [Multipoint](https://developers.arcgis.com/javascript/latest/references/core/geometry/Multipoint/), * [Polyline](https://developers.arcgis.com/javascript/latest/references/core/geometry/Polyline/), [Extent](https://developers.arcgis.com/javascript/latest/references/core/geometry/Extent/) or * a [Polygon](https://developers.arcgis.com/javascript/latest/references/core/geometry/Polygon/). * * The [locations](https://developers.arcgis.com/javascript/latest/references/core/rest/support/ImageSampleParameters/#locations) property can be used to set an array of [points](https://developers.arcgis.com/javascript/latest/references/core/geometry/Point/) for convenience if the geometry is * a `multipoint`. If you set the `locations` property, the array of points will be converted to a `multipoint` geometry at runtime. */ get geometry(): Point | Multipoint | Polyline | Extent | Polygon; set geometry(value: (PointProperties & { type: "point" }) | (MultipointProperties & { type: "multipoint" }) | (PolylineProperties & { type: "polyline" }) | (ExtentProperties & { type: "extent" }) | (PolygonProperties & { type: "polygon" })); /** * Defines how to interpolate pixel values. * * @default "nearest" */ accessor interpolation: RasterInterpolation; /** * When sampling multiple locations, you can use an array of [points](https://developers.arcgis.com/javascript/latest/references/core/geometry/Point/) instead of providing * a [Multipoint](https://developers.arcgis.com/javascript/latest/references/core/geometry/Multipoint/) for the [geometry](https://developers.arcgis.com/javascript/latest/references/core/rest/support/ImageSampleParameters/#geometry) property. The array of points will be converted * to a `multipoint` and used as the [geometry](https://developers.arcgis.com/javascript/latest/references/core/rest/support/ImageSampleParameters/#geometry) at runtime. * The first point's spatial reference is used in `getSamples` operation. */ get locations(): Point[] | null | undefined; set locations(value: PointProperties[] | null | undefined); /** * Specifies the [mosaic rule](https://developers.arcgis.com/javascript/latest/references/core/layers/support/MosaicRule/) defining the image sort order and selection. * When a mosaic rule is not specified, the current settings on the [ImageryLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/ImageryLayer/) will be used. */ get mosaicRule(): MosaicRule | null | undefined; set mosaicRule(value: MosaicRuleProperties | null | undefined); /** The list of fields associated with the rasters to be included in the response. */ accessor outFields: string[] | null | undefined; /** * Specifies the pixel size (or the resolution) that will be used for the sampling. If pixel size is not specified, `pixelSize` will default to the base resolution of the image service. * The raster at the specified pixel size in the mosaic dataset will be used for this operation. */ get pixelSize(): Point | null | undefined; set pixelSize(value: PointProperties | null | undefined); /** * When `true`, returns the first valid pixel value that meets specified conditions at each sampling point location. * When `false`, all pixel values are returned. * * @default true */ accessor returnFirstValueOnly: boolean; /** * Specifies the approximate number of locations to sample from the provided geometry when the input geometry is [Polyline](https://developers.arcgis.com/javascript/latest/references/core/geometry/Polyline/), * [Polygon](https://developers.arcgis.com/javascript/latest/references/core/geometry/Polygon/) or [Extent](https://developers.arcgis.com/javascript/latest/references/core/geometry/Extent/). * Either `sampleDistance` or `sampleCount` is needed to perform densification on the input [Polyline](https://developers.arcgis.com/javascript/latest/references/core/geometry/Polyline/) to sample points. * The unit of the geometry's spatial reference will be used for the densification. */ accessor sampleCount: number | null | undefined; /** * Specifies the distance interval to sample points from the provided [geometry](https://developers.arcgis.com/javascript/latest/references/core/rest/support/ImageSampleParameters/#geometry) when input geometry is [Polyline](https://developers.arcgis.com/javascript/latest/references/core/geometry/Polyline/). * Either `sampleDistance` or `sampleCount` is needed to perform densification on the input [Polyline](https://developers.arcgis.com/javascript/latest/references/core/geometry/Polyline/) to sample points. * The unit of the geometry's spatial reference will be used for the densification. */ accessor sampleDistance: number | null | undefined; /** Specifies the slice id of a multidimensional raster. This parameter is supported at ArcGIS Server 10.9 and later. */ accessor sliceId: number | null | undefined; /** * The [time extent](https://developers.arcgis.com/javascript/latest/references/core/time/TimeExtent/) for which to perform sampling. * This parameter is supported at ArcGIS Server 10.9 and later. */ get timeExtent(): TimeExtent | null | undefined; set timeExtent(value: TimeExtentProperties | null | undefined); }