import ElevationSampler from "@arcgis/core/layers/support/ElevationSampler.js";const ElevationSampler = await $arcgis.import("@arcgis/core/layers/support/ElevationSampler.js");- Inheritance:
- ElevationSampler→
Accessor
- Since
- ArcGIS Maps SDK for JavaScript 4.7
A cache of elevation values created from an elevation service or the GroundView used for synchronously querying elevation information for geometries. This class does not have a constructor. You can create an instance of this class by using ElevationLayer.createElevationSampler() or Ground.createElevationSampler() methods. The elevation sampler created from the Ground will sample data from the first elevation layer that has data available. To control the layer used for elevation sampling and the sampling resolution, use ElevationLayer.createElevationSampler().
map.ground.load() .then(function() { // create an elevation sampler from a given extent return view.map.ground.createElevationSampler(extent); }) .then(function(elevationSampler) { // use the elevation sampler to get z-values for a point, multipoint or polyline geometry let zEnrichedGeometry = elevationSampler.queryElevation(geometry); });An instance of this class is also available in GroundView.elevationSampler. This can be used when the elevation values need to reflect the elevation currently displayed in the view.
let elevationSampler = view.groundView.elevationSampler;// listen for elevation changes in the viewelevationSampler.on('changed', function() { // enrich geometry with z-values from the elevation displayed in the view let zEnrichedGeometry = elevationSampler.queryElevation(point);});Properties
| Property | Type | Class |
|---|---|---|
declaredClass readonly inherited | ||
demResolution readonly | | |
extent readonly | | |
noDataValue readonly | | |
spatialReference readonly | |
spatialReference
- Type
- SpatialReference
- Since
- ArcGIS Maps SDK for JavaScript 4.24
The spatial reference of the sampler.
Methods
| Method | Signature | Class |
|---|---|---|
elevationAt(x: number, y: number): number | | |
emit inherited | emit<Type extends EventNames<this>>(type: Type, event?: this["@eventTypes"][Type]): boolean | |
hasEventListener inherited | hasEventListener<Type extends EventNames<this>>(type: Type): boolean | |
on inherited | on<Type extends EventNames<this>>(type: Type, listener: EventedCallback<this["@eventTypes"][Type]>): ResourceHandle | |
queryElevation(geometry: Point): Point | null | undefined | | |
queryElevation(geometry: Multipoint): Multipoint | null | undefined | | |
queryElevation(geometry: Polyline): Polyline | null | undefined | | |
queryElevation(geometry: Point | Polyline | Multipoint): Point | Polyline | Multipoint | null | undefined | |
elevationAt
- Signature
-
elevationAt (x: number, y: number): number
- Since
- ArcGIS Maps SDK for JavaScript 4.24
Get elevation for a coordinate specified in the spatial reference of the sampler. This is typically faster than queryElevation() when getting elevation for many coordinates that are guaranteed to be in the spatial reference of the sampler. If the coordinate is outside of the elevation sampler extent, then the samplers noDataValue will be returned.
- Returns
- number
the elevation at the provided location. If no data could be sampled at the location, then the samplers noDataValue will be returned.
emit
- Signature
-
emit <Type extends EventNames<this>>(type: Type, event?: this["@eventTypes"][Type]): boolean
- Type parameters
- <Type extends EventNames<this>>
Emits an event on the instance. This method should only be used when creating subclasses of this class.
hasEventListener
- Signature
-
hasEventListener <Type extends EventNames<this>>(type: Type): boolean
- Type parameters
- <Type extends EventNames<this>>
Indicates whether there is an event listener on the instance that matches the provided event name.
Parameters
| Parameter | Type | Description | Required |
|---|---|---|---|
| type | Type | The name of the event. | |
- Returns
- boolean
Returns true if the class supports the input event.
on
- Signature
-
on <Type extends EventNames<this>>(type: Type, listener: EventedCallback<this["@eventTypes"][Type]>): ResourceHandle
- Type parameters
- <Type extends EventNames<this>>
Registers an event handler on the instance. Call this method to hook an event with a listener.
Parameters
| Parameter | Type | Description | Required |
|---|---|---|---|
| type | Type | An event or an array of events to listen for. | |
| listener | EventedCallback<this["@eventTypes"][Type]> | The function to call when the event fires. | |
- Returns
- ResourceHandle
Returns an event handler with a
remove()method that should be called to stop listening for the event(s).Property Type Description remove Function When called, removes the listener from the event.
Example
view.on("click", function(event){ // event is the event handle returned after the event fires. console.log(event.mapPoint);}); queryElevation
- Signature
-
queryElevation (geometry: Multipoint): Multipoint | null | undefined
Parameters
| Parameter | Type | Description | Required |
|---|---|---|---|
| geometry | | |
- Returns
- Multipoint | null | undefined
queryElevation
- Signature
-
queryElevation (geometry: Point | Polyline | Multipoint): Point | Polyline | Multipoint | null | undefined
Query elevation for a Point, Polyline or Multipoint geometry. A query will return a new geometry for which the z-values for each coordinate in the geometry are obtained from the elevation sampler. If the geometry used for the query is outside of the elevation sampler extent, then the returned geometry has the samplers noDataValue as z-values.
Parameters
| Parameter | Type | Description | Required |
|---|---|---|---|
| geometry | Point | Polyline | Multipoint | The geometry to use for sampling elevation data. | |
- Returns
- Point | Polyline | Multipoint | null | undefined
The sampled geometry.
Events
| Name | Type |
|---|---|
changed
changed: CustomEvent<Record<never, never>> Fires when the data in the sampler has changed. This event is only relevant for dynamic elevation samplers such as the elevation sampler on the GroundView.
Example
view.groundView.elevationSampler.on("changed", function(evt) { console.log("elevation has changed");});