@arcgis/core
Version:
ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API
66 lines (64 loc) • 3.93 kB
TypeScript
import type Accessor from "../../../core/Accessor.js";
import type BuildingSceneLayer from "../../../layers/BuildingSceneLayer.js";
import type CSVLayer from "../../../layers/CSVLayer.js";
import type FeatureLayer from "../../../layers/FeatureLayer.js";
import type GeoJSONLayer from "../../../layers/GeoJSONLayer.js";
import type GraphicsLayer from "../../../layers/GraphicsLayer.js";
import type MapNotesLayer from "../../../layers/MapNotesLayer.js";
import type SceneLayer from "../../../layers/SceneLayer.js";
import type WFSLayer from "../../../layers/WFSLayer.js";
import type SubtypeSublayer from "../../../layers/support/SubtypeSublayer.js";
import type { FeatureSnappingSupportedLayer } from "./types.js";
export interface FeatureSnappingLayerSourceProperties<T extends FeatureSnappingSupportedLayer = BuildingSceneLayer | CSVLayer | FeatureLayer | GeoJSONLayer | GraphicsLayer | MapNotesLayer | SceneLayer | SubtypeSublayer | WFSLayer> extends Partial<Pick<FeatureSnappingLayerSource<T>, "enabled">> {
/**
* The source layer used for snapping.
*
* @see [SnappingOptions](https://developers.arcgis.com/javascript/latest/references/core/views/interactive/snapping/SnappingOptions/)
*/
layer?: T;
}
/**
* The FeatureSnappingLayerSource specifies which layers will be utilized for snapping in the
* [SnappingOptions](https://developers.arcgis.com/javascript/latest/references/core/views/interactive/snapping/SnappingOptions/).
*
* > [!WARNING]
* >
* > **Known Limitations**
* >
* > Layer types currently supported for snapping are: [FeatureLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/FeatureLayer/),
* > [GraphicsLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/GraphicsLayer/) (except Mesh geometries), [GeoJSONLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/GeoJSONLayer/),
* > [WFSLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/WFSLayer/), [CSVLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/CSVLayer/),
* > [SubtypeSublayer](https://developers.arcgis.com/javascript/latest/references/core/layers/support/SubtypeSublayer/) (2D only), [MapNotesLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/MapNotesLayer/) (2D only),
* > [3D Object SceneLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/SceneLayer/) (3D only), and [BuildingSceneLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/BuildingSceneLayer/) (3D only).
*
* @since 4.19
* @see [SnappingOptions](https://developers.arcgis.com/javascript/latest/references/core/views/interactive/snapping/SnappingOptions/)
* @example
* // Create a new instance of Sketch, and set
* // a layer for one of the featureSources property.
* // This enables feature snapping on that layer.
* const Sketch = new Sketch({
* layer: graphicsLayer,
* view: view,
* snappingOptions: { // autocasts to SnappingOptions()
* enabled: true, // global snapping is turned on
* // assigns a collection of FeatureSnappingLayerSource() and enables feature snapping on this layer
* featureSources: [{ layer: graphicsLayer, enabled: true }]
* }
* });
*/
export default class FeatureSnappingLayerSource<T extends FeatureSnappingSupportedLayer = BuildingSceneLayer | CSVLayer | FeatureLayer | GeoJSONLayer | GraphicsLayer | MapNotesLayer | SceneLayer | SubtypeSublayer | WFSLayer> extends Accessor {
constructor(properties?: FeatureSnappingLayerSourceProperties);
/**
* Indicates whether feature snapping is turned on or off.
*
* @default true
*/
accessor enabled: boolean;
/**
* The source layer used for snapping.
*
* @see [SnappingOptions](https://developers.arcgis.com/javascript/latest/references/core/views/interactive/snapping/SnappingOptions/)
*/
get layer(): T;
}