import type PopupTemplate from "../../PopupTemplate.js"; import type Extent from "../../geometry/Extent.js"; import type SpatialReference from "../../geometry/SpatialReference.js"; import type Layer from "../Layer.js"; import type DisplayFilterInfo from "../support/DisplayFilterInfo.js"; import type Field from "../support/Field.js"; import type FieldConfiguration from "../support/FieldConfiguration.js"; import type FieldsIndex from "../support/FieldsIndex.js"; import type GeometryFieldsInfo from "../support/GeometryFieldsInfo.js"; import type LabelClass from "../support/LabelClass.js"; import type OrderByInfo from "../support/OrderByInfo.js"; import type TimeInfo from "../support/TimeInfo.js"; import type AttributeBinsFeatureSet from "../../rest/support/AttributeBinsFeatureSet.js"; import type FeatureSet from "../../rest/support/FeatureSet.js"; import type Query from "../../rest/support/Query.js"; import type ElevationInfo from "../../symbols/support/ElevationInfo.js"; import type AttributeTableTemplate from "../../tables/AttributeTableTemplate.js"; import type TimeExtent from "../../time/TimeExtent.js"; import type TimeInterval from "../../time/TimeInterval.js"; import type { MultiOriginJSONSupportMixin } from "../../core/MultiOriginJSONSupport.js"; import type { FeatureLayerCapabilities, FieldDomainOptions } from "../types.js"; import type { BlendLayer, BlendLayerProperties } from "../mixins/BlendLayer.js"; import type { CustomParameters } from "../mixins/CustomParametersMixin.js"; import type { FeatureEffectLayer, FeatureEffectLayerProperties } from "../mixins/FeatureEffectLayer.js"; import type { ScaleRangeLayer, ScaleRangeLayerProperties } from "../mixins/ScaleRangeLayer.js"; import type { DomainUnion } from "../support/types.js"; import type { RendererUnion } from "../../renderers/types.js"; import type { RequestOptions } from "../../request/types.js"; import type { AttributeBinsQueryProperties } from "../../rest/support/AttributeBinsQuery.js"; import type { QueryProperties } from "../../rest/support/Query.js"; import type { CreatePopupTemplateOptions } from "../../support/popupUtils.js"; import type { TimeZone } from "../../time/types.js"; import type { ObjectId } from "../../views/types.js"; import type { AttributeTableTemplateProperties } from "../../tables/AttributeTableTemplate.js"; import type { ElevationInfoProperties } from "../../symbols/support/ElevationInfo.js"; import type { FieldConfigurationProperties } from "../support/FieldConfiguration.js"; import type { LabelClassProperties } from "../support/LabelClass.js"; import type { PopupTemplateProperties } from "../../PopupTemplate.js"; import type { HeatmapRendererProperties } from "../../renderers/HeatmapRenderer.js"; import type { PieChartRendererProperties } from "../../renderers/PieChartRenderer.js"; import type { DictionaryRendererProperties } from "../../renderers/DictionaryRenderer.js"; import type { DotDensityRendererProperties } from "../../renderers/DotDensityRenderer.js"; import type { UniqueValueRendererProperties } from "../../renderers/UniqueValueRenderer.js"; import type { ClassBreaksRendererProperties } from "../../renderers/ClassBreaksRenderer.js"; import type { SimpleRendererProperties } from "../../renderers/SimpleRenderer.js"; import type { LayerProperties } from "../Layer.js"; export interface CatalogFootprintLayerProperties extends LayerProperties, BlendLayerProperties, FeatureEffectLayerProperties, ScaleRangeLayerProperties, Partial> { /** * This property is used to configure the associated layer's [FeatureTable](https://developers.arcgis.com/javascript/latest/references/core/widgets/FeatureTable/). It is meant to configure how the columns display within the table in regard to visibility, column order, and sorting. * * > [!WARNING] * > * > This property differs from the [FeatureTable's tableTemplate](https://developers.arcgis.com/javascript/latest/references/core/widgets/FeatureTable/support/TableTemplate/) property. The `TableTemplate` provides more fine-grained control over how the table is rendered within the application by offering more advanced configurations such as custom cell rendering, column formatting, and more. `TableTemplate` is useful for application-level development that remains within an application. Use the `attributeTableTemplate` property to access the table's settings across different applications. By using this property, the settings can be saved within a webmap or layer. Please refer to the [AttributeTableTemplate](https://developers.arcgis.com/javascript/latest/references/core/tables/AttributeTableTemplate/) and [TableTemplate](https://developers.arcgis.com/javascript/latest/references/core/widgets/FeatureTable/support/TableTemplate/) documentation for more information. * * @name attributeTableTemplate * @type {module:esri/tables/AttributeTableTemplate | nil} * @instance * @autocast * @since 4.31 */ attributeTableTemplate?: AttributeTableTemplateProperties | null; /** * Specifies how features are placed on the vertical axis (z). This property may only be used * in a [SceneView](https://developers.arcgis.com/javascript/latest/references/core/views/SceneView/). See the [ElevationInfo sample](https://developers.arcgis.com/javascript/latest/sample-code/scene-elevationinfo/) * for an example of how this property may be used. * * > [!WARNING] * > * > If the elevation info is not specified, the effective elevation depends on the context and could vary per graphic. */ elevationInfo?: ElevationInfoProperties | null; /** * An array of [FieldConfiguration](https://developers.arcgis.com/javascript/latest/references/core/layers/support/FieldConfiguration/) objects that control how fields are displayed in popups and other UI elements. Each object specifies options for an individual field, such as its display name, via `alias`, and formatting rules, via `fieldFormat`. Assign this property before the layer loads to ensure the configurations take effect. For more information, see the [FieldConfiguration](https://developers.arcgis.com/javascript/latest/references/core/layers/support/FieldConfiguration/) documentation. * If no field configurations are provided, they are automatically created when a [popupTemplate](https://developers.arcgis.com/javascript/latest/references/core/layers/catalog/CatalogFootprintLayer/#popupTemplate) is assigned to the layer. If no [popupTemplate](https://developers.arcgis.com/javascript/latest/references/core/layers/catalog/CatalogFootprintLayer/#popupTemplate) is set, you can manually define field configurations to customize how fields are shown. * > [!WARNING] * > * > Support is limited in version 5.1. For details, see the [FieldConfiguration](https://developers.arcgis.com/javascript/latest/references/core/layers/support/FieldConfiguration/) documentation. * * To modify field configurations, clone [fieldConfigurations](https://developers.arcgis.com/javascript/latest/references/core/layers/catalog/CatalogFootprintLayer/#fieldConfigurations), make the changes, and then reassign the updated clone back to [fieldConfigurations](https://developers.arcgis.com/javascript/latest/references/core/layers/catalog/CatalogFootprintLayer/#fieldConfigurations). * * @since 5.1 * @see [CatalogFootprintLayer.getFieldConfiguration](https://developers.arcgis.com/javascript/latest/references/core/layers/catalog/CatalogFootprintLayer/#getFieldConfiguration) * @see [CatalogFootprintLayer.getFieldAlias](https://developers.arcgis.com/javascript/latest/references/core/layers/catalog/CatalogFootprintLayer/#getFieldAlias) * @example * ```js * // Adding a new field configuration * const addNewConfig = (layer, fieldName, alias, fieldFormat) => { * // Check if there is already an existing configuration for fieldName * const existingConfig = layer.getFieldConfiguration(fieldName); * if (!existingConfig) { * const newConfig = new FieldConfiguration({ name: fieldName, alias, fieldFormat }); * const newConfigs = clone(layer.fieldConfigurations); * newConfigs.push(newConfig); * layer.fieldConfigurations = newConfigs; * } * }; * ``` * @example * ```js * // Updating an existing field configuration * const updateConfig = (layer, fieldName, alias, fieldFormat) => { * const existingConfig = layer.getFieldConfiguration(fieldName); * if (existingConfig) { * const newConfig = existingConfig.clone(); * newConfig.alias = alias; * newConfig.fieldFormat = fieldFormat; * * const index = layer.fieldConfigurations.indexOf(existingConfig); * const newConfigs = clone(layer.fieldConfigurations); * newConfigs[index] = newConfig; * layer.fieldConfigurations = newConfigs; * } * }; * ``` * @example * ```js * // Deleting an existing field configuration * const deleteConfig = (layer, fieldName) => { * const existingConfig = layer.getFieldConfiguration(fieldName); * if (existingConfig) { * const index = layer.fieldConfigurations.indexOf(existingConfig); * var newConfigs = clone(layer.fieldConfigurations); * newConfigs.splice(index, 1); * layer.fieldConfigurations = newConfigs; * } * }; * ``` */ fieldConfigurations?: FieldConfigurationProperties[] | null; /** * The label definition for this layer, specified as an array of * [LabelClass](https://developers.arcgis.com/javascript/latest/references/core/layers/support/LabelClass/). Use this property to specify * labeling properties for the layer such as label expression, placement, and size. * * Multiple Label classes with different `where` clauses can be used to define several * labels with varying styles on the same feature. Likewise, multiple label classes * may be used to label different types of features (for example blue labels * for lakes and green labels for parks). * * See the [Labeling guide page](https://developers.arcgis.com/javascript/latest/labeling/) for more information and known limitations. * * > [!WARNING] * > * > **Known Limitations** * > * > 3D [SceneViews](https://developers.arcgis.com/javascript/latest/references/core/views/SceneView/) only support displaying one [LabelClass](https://developers.arcgis.com/javascript/latest/references/core/layers/support/LabelClass/) per feature. * * @see [Sample: Add multiple label classes to a layer](https://developers.arcgis.com/javascript/latest/sample-code/labels-multiple-classes/) * @see [Sample: Multi-line labels](https://developers.arcgis.com/javascript/latest/sample-code/labels-multiline/) * @see [Sample: Flat vs. volumetric 3D symbol layers](https://developers.arcgis.com/javascript/latest/sample-code/symbols-points-3d/) * @example * const statesLabelClass = new LabelClass({ * labelExpressionInfo: { expression: "$feature.NAME" }, * symbol: { * type: "text", // autocasts as new TextSymbol() * color: "black", * haloSize: 1, * haloColor: "white" * } * }); * * footprintLayer.labelingInfo = [ statesLabelClass ]; */ labelingInfo?: LabelClassProperties[] | null; /** * The popup template for the layer. When set on the layer, the `popupTemplate` allows users to access attributes and display their values in the * view's Popup when a feature is selected using text and/or charts. See the [PopupTemplate sample](https://developers.arcgis.com/javascript/latest/sample-code/intro-popuptemplate/) * for an example of how [PopupTemplate](https://developers.arcgis.com/javascript/latest/references/core/PopupTemplate/) interacts with a [FeatureLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/FeatureLayer/). * * A default popup template is automatically used if no `popupTemplate` has been defined when * [Popup.defaultPopupTemplateEnabled](https://developers.arcgis.com/javascript/latest/references/core/widgets/Popup/#defaultPopupTemplateEnabled) is set to `true`. * * @see [createPopupTemplate()](https://developers.arcgis.com/javascript/latest/references/core/layers/catalog/CatalogFootprintLayer/#createPopupTemplate) * @see [SceneView.popup](https://developers.arcgis.com/javascript/latest/references/core/views/SceneView/#popup) * @see [View2D.popup](https://developers.arcgis.com/javascript/latest/references/core/views/View2D/#popup) */ popupTemplate?: PopupTemplateProperties | null; /** * The renderer assigned to the layer. The renderer defines how to visualize each feature in the layer. Depending on the renderer type, * features may be visualized with the same symbol, or with varying symbols based on the values of provided attribute fields or functions. * * @see [Styles and data visualization](https://developers.arcgis.com/javascript/latest/visualization/) * @example * // all features in the layer will be visualized with * // a pink fill symbol and a thin, white outline * footprintLayer.renderer = new SimpleRenderer({ * symbol: new SimpleFillSymbol({ * color: [245, 40, 145, 0.8], * outline: new SimpleLineSymbol({ * width: 0.5, * color: "white" * }) * }) * }); */ renderer?: (((SimpleRendererProperties & { type: "simple" }) | (ClassBreaksRendererProperties & { type: "class-breaks" }) | (UniqueValueRendererProperties & { type: "unique-value" }) | (DotDensityRendererProperties & { type: "dot-density" }) | (DictionaryRendererProperties & { type: "dictionary" }) | (PieChartRendererProperties & { type: "pie-chart" })) | (HeatmapRendererProperties & { type: "heatmap" })) | null; } /** * CatalogFootprintLayer is a layer that represents the footprints of items referenced in a [catalog layer](https://developers.arcgis.com/javascript/latest/references/core/layers/CatalogLayer/). * In the CatalogLayer, each service or item has a footprint, which is a visual representation covering all features, rasters, etc., within it. * The attributes of each footprint feature provide details about the item's name, type, source, min and max scales. * You can add, update, and maintain fields and values in the footprint layer. You cannot remove the `footprintLayer` from the CatalogLayer. * * This layer has the same properties as a polygon feature layer, with some exceptions. You can update its [visibility](https://developers.arcgis.com/javascript/latest/references/core/layers/catalog/CatalogFootprintLayer/#visible) and * change how the layer is visualized by adding [labels](https://developers.arcgis.com/javascript/latest/references/core/layers/catalog/CatalogFootprintLayer/#labelingInfo), updating the [renderer](https://developers.arcgis.com/javascript/latest/references/core/layers/catalog/CatalogFootprintLayer/#renderer), * and [extruding](https://developers.arcgis.com/javascript/latest/references/core/layers/catalog/CatalogFootprintLayer/#elevationInfo) the layer (in 3D). You can also [query](https://developers.arcgis.com/javascript/latest/references/core/layers/catalog/CatalogFootprintLayer/#queryFeatures) the layer to get the footprints of the items in the CatalogLayer. * *
* footprint *
This image shows CatalogLayer and its footprint layer legend in the CatalogLayerList.
*
* * @since 4.30 * @see [CatalogLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/CatalogLayer/) * @see [CatalogDynamicGroupLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/catalog/CatalogDynamicGroupLayer/) * @see [Sample - Intro to CatalogLayer](https://developers.arcgis.com/javascript/latest/sample-code/layers-cataloglayer/) * @see [Sample - Explore data in CatalogLayer](https://developers.arcgis.com/javascript/latest/sample-code/layers-cataloglayer-2d/) */ export default class CatalogFootprintLayer extends CatalogFootprintLayerSuperclass { constructor(properties?: CatalogFootprintLayerProperties); /** * An authorization string used to access a resource or service. Set the [CatalogLayer.apiKey](https://developers.arcgis.com/javascript/latest/references/core/layers/CatalogLayer/#apiKey) * on the CatalogLayer. */ get apiKey(): string | null | undefined; /** * This property is used to configure the associated layer's [FeatureTable](https://developers.arcgis.com/javascript/latest/references/core/widgets/FeatureTable/). It is meant to configure how the columns display within the table in regard to visibility, column order, and sorting. * * > [!WARNING] * > * > This property differs from the [FeatureTable's tableTemplate](https://developers.arcgis.com/javascript/latest/references/core/widgets/FeatureTable/support/TableTemplate/) property. The `TableTemplate` provides more fine-grained control over how the table is rendered within the application by offering more advanced configurations such as custom cell rendering, column formatting, and more. `TableTemplate` is useful for application-level development that remains within an application. Use the `attributeTableTemplate` property to access the table's settings across different applications. By using this property, the settings can be saved within a webmap or layer. Please refer to the [AttributeTableTemplate](https://developers.arcgis.com/javascript/latest/references/core/tables/AttributeTableTemplate/) and [TableTemplate](https://developers.arcgis.com/javascript/latest/references/core/widgets/FeatureTable/support/TableTemplate/) documentation for more information. * * @name attributeTableTemplate * @type {module:esri/tables/AttributeTableTemplate | nil} * @instance * @autocast * @since 4.31 */ get attributeTableTemplate(): AttributeTableTemplate | null | undefined; set attributeTableTemplate(value: AttributeTableTemplateProperties | null | undefined); /** Describes the layer's supported capabilities. */ get capabilities(): FeatureLayerCapabilities; /** Array of Chart Items of type WebMapWebChart available on the footprint layer. */ accessor charts: object[] | null | undefined; /** * A list of custom parameters appended to the URL of all resources fetched by the layer. * Set the [CatalogLayer.customParameters](https://developers.arcgis.com/javascript/latest/references/core/layers/CatalogLayer/#customParameters) on the CatalogLayer. */ get customParameters(): CustomParameters | null | undefined; /** * The time zone that dates are stored in. This property does not apply to date fields referenced by * [timeInfo](https://developers.arcgis.com/javascript/latest/references/core/layers/catalog/CatalogFootprintLayer/#timeInfo). * * Even though dates are transmitted as UTC epoch values, this property may be useful when constructing date or time [where clauses for querying](https://developers.arcgis.com/javascript/latest/references/core/rest/support/Query/#date-query). * If constructing date or time where clauses, use [FieldsIndex.getTimeZone()](https://developers.arcgis.com/javascript/latest/references/core/layers/support/FieldsIndex/#getTimeZone) to get the * time zone for the given date field. */ get dateFieldsTimeZone(): string | null | undefined; /** * This property is set by the service publisher and indicates that dates should be considered without the local timezone. * This applies to both requests and responses. * * > [!WARNING] * > * > **Known Limitations** * > * > This capability is only available with services published with ArcGIS Enterprise 10.9 or greater. * > When setting `timeExtent` in a [Query](https://developers.arcgis.com/javascript/latest/references/core/rest/support/Query/), [FeatureLikeLayerView.filter](https://developers.arcgis.com/javascript/latest/references/core/views/layers/FeatureLikeLayerView/#filter) * > or [layer](https://developers.arcgis.com/javascript/latest/references/core/layers/CatalogLayer/#timeExtent), dates must be defined in terms of UTC. * > When using `layer.timeInfo.fullTimeExtent` in conjunction with [TimeSlider](https://developers.arcgis.com/javascript/latest/references/core/widgets/TimeSlider/), the local timezone offset must be removed. */ get datesInUnknownTimezone(): boolean; /** * The SQL where clause used to filter features on the client. Only the features that satisfy the definition * expression are displayed in the [View](https://developers.arcgis.com/javascript/latest/references/core/views/View/). * Set the [CatalogLayer.definitionExpression](https://developers.arcgis.com/javascript/latest/references/core/layers/CatalogLayer/#definitionExpression) on the CatalogLayer. */ get definitionExpression(): string | null | undefined; /** The name of the layer's primary display field. The value of this property matches the name of one of the fields of the layer. */ get displayField(): string | null | undefined; /** * Indicates whether the layer supports display filters. * * Set the [CatalogLayer.displayFilterEnabled](https://developers.arcgis.com/javascript/latest/references/core/layers/CatalogLayer/#displayFilterEnabled) on the CatalogLayer. * * @default false * @since 4.32 */ get displayFilterEnabled(): boolean; /** * Information pertaining to a display filter associated with a layer. * Display filters provide information about which features should be rendered on the display. Unlike [definitionExpression](https://developers.arcgis.com/javascript/latest/references/core/layers/catalog/CatalogFootprintLayer/#definitionExpression) which filters the data for tables/ charts, display filters * are meant for decluttering the display only * * Set the [CatalogLayer.displayFilterInfo](https://developers.arcgis.com/javascript/latest/references/core/layers/CatalogLayer/#displayFilterInfo) on the CatalogLayer. * * @since 4.32 * @see [Sample - Scale-dependent DisplayFilter](https://developers.arcgis.com/javascript/latest/sample-code/display-filter/) */ get displayFilterInfo(): null | undefined | DisplayFilterInfo; /** Describes effective capabilities of the layer taking in to consideration privileges of the currently signed-in user. */ get effectiveCapabilities(): FeatureLayerCapabilities | null | undefined; /** * Specifies how features are placed on the vertical axis (z). This property may only be used * in a [SceneView](https://developers.arcgis.com/javascript/latest/references/core/views/SceneView/). See the [ElevationInfo sample](https://developers.arcgis.com/javascript/latest/sample-code/scene-elevationinfo/) * for an example of how this property may be used. * * > [!WARNING] * > * > If the elevation info is not specified, the effective elevation depends on the context and could vary per graphic. */ get elevationInfo(): ElevationInfo | null | undefined; set elevationInfo(value: ElevationInfoProperties | null | undefined); /** * An array of [FieldConfiguration](https://developers.arcgis.com/javascript/latest/references/core/layers/support/FieldConfiguration/) objects that control how fields are displayed in popups and other UI elements. Each object specifies options for an individual field, such as its display name, via `alias`, and formatting rules, via `fieldFormat`. Assign this property before the layer loads to ensure the configurations take effect. For more information, see the [FieldConfiguration](https://developers.arcgis.com/javascript/latest/references/core/layers/support/FieldConfiguration/) documentation. * If no field configurations are provided, they are automatically created when a [popupTemplate](https://developers.arcgis.com/javascript/latest/references/core/layers/catalog/CatalogFootprintLayer/#popupTemplate) is assigned to the layer. If no [popupTemplate](https://developers.arcgis.com/javascript/latest/references/core/layers/catalog/CatalogFootprintLayer/#popupTemplate) is set, you can manually define field configurations to customize how fields are shown. * > [!WARNING] * > * > Support is limited in version 5.1. For details, see the [FieldConfiguration](https://developers.arcgis.com/javascript/latest/references/core/layers/support/FieldConfiguration/) documentation. * * To modify field configurations, clone [fieldConfigurations](https://developers.arcgis.com/javascript/latest/references/core/layers/catalog/CatalogFootprintLayer/#fieldConfigurations), make the changes, and then reassign the updated clone back to [fieldConfigurations](https://developers.arcgis.com/javascript/latest/references/core/layers/catalog/CatalogFootprintLayer/#fieldConfigurations). * * @since 5.1 * @see [CatalogFootprintLayer.getFieldConfiguration](https://developers.arcgis.com/javascript/latest/references/core/layers/catalog/CatalogFootprintLayer/#getFieldConfiguration) * @see [CatalogFootprintLayer.getFieldAlias](https://developers.arcgis.com/javascript/latest/references/core/layers/catalog/CatalogFootprintLayer/#getFieldAlias) * @example * ```js * // Adding a new field configuration * const addNewConfig = (layer, fieldName, alias, fieldFormat) => { * // Check if there is already an existing configuration for fieldName * const existingConfig = layer.getFieldConfiguration(fieldName); * if (!existingConfig) { * const newConfig = new FieldConfiguration({ name: fieldName, alias, fieldFormat }); * const newConfigs = clone(layer.fieldConfigurations); * newConfigs.push(newConfig); * layer.fieldConfigurations = newConfigs; * } * }; * ``` * @example * ```js * // Updating an existing field configuration * const updateConfig = (layer, fieldName, alias, fieldFormat) => { * const existingConfig = layer.getFieldConfiguration(fieldName); * if (existingConfig) { * const newConfig = existingConfig.clone(); * newConfig.alias = alias; * newConfig.fieldFormat = fieldFormat; * * const index = layer.fieldConfigurations.indexOf(existingConfig); * const newConfigs = clone(layer.fieldConfigurations); * newConfigs[index] = newConfig; * layer.fieldConfigurations = newConfigs; * } * }; * ``` * @example * ```js * // Deleting an existing field configuration * const deleteConfig = (layer, fieldName) => { * const existingConfig = layer.getFieldConfiguration(fieldName); * if (existingConfig) { * const index = layer.fieldConfigurations.indexOf(existingConfig); * var newConfigs = clone(layer.fieldConfigurations); * newConfigs.splice(index, 1); * layer.fieldConfigurations = newConfigs; * } * }; * ``` */ get fieldConfigurations(): FieldConfiguration[] | null | undefined; set fieldConfigurations(value: FieldConfigurationProperties[] | null | undefined); /** * An array of fields in the layer. Each field represents an attribute that may contain a value for each feature in the layer. * For example, a field named `POP_2015`, stores information about total population as a numeric value for each feature; this value represents the total number * of people living within the geographic bounds of the feature. */ get fields(): Field[]; /** * A convenient property that can be used to make case-insensitive lookups for a field by name. * It can also provide a list of the [date fields](https://developers.arcgis.com/javascript/latest/references/core/layers/support/FieldsIndex/#dateFields) in a layer. */ get fieldsIndex(): FieldsIndex; /** * Provides information on the system maintained area and length fields along with their respective units. * * @see [ArcGIS REST API documentation](https://developers.arcgis.com/rest/services-reference/layer-feature-service-.htm) */ get geometryFieldsInfo(): GeometryFieldsInfo | null | undefined; /** The geometry type of features in the layer. */ get geometryType(): "polygon"; /** * Indicates whether the layer has m aware geometries. * Use the `supportsM` property in the layer's [DataCapabilities](https://developers.arcgis.com/javascript/latest/references/core/layers/types/#DataCapabilities) * to verify if m-values are supported by the layer. * * - When `true`: The layer has m aware features. M-values are part of the geometry. * - When `false`: The layer does not have m aware features. M-values are not part of the geometry. * * @see [returnM](https://developers.arcgis.com/javascript/latest/references/core/layers/mixins/FeatureLayerBase/#returnM) for details regarding fetching m-values with features from a layer * @see [Linear referencing](https://pro.arcgis.com/en/pro-app/latest/help/data/linear-referencing/introduction-to-linear-referencing.htm) */ get hasM(): boolean; /** * Indicates whether the layer has z aware geometries. Use the `supportsZ` property in the layer's [DataCapabilities](https://developers.arcgis.com/javascript/latest/references/core/layers/types/#DataCapabilities) * to verify if z-values are supported by the layer. * * - When `true`: The layer has z aware features. Z-values are part of the geometry. * - When `false`: The layer does not have z aware features. Z-values are not part of the geometry. * > [!NOTE] * > - Refer to [FeatureLayerBase.elevationInfo](https://developers.arcgis.com/javascript/latest/references/core/layers/mixins/FeatureLayerBase/#elevationInfo) for details regarding placement and rendering * > of features with z-values in 3D [SceneViews](https://developers.arcgis.com/javascript/latest/references/core/views/SceneView/). * * @see [returnZ](https://developers.arcgis.com/javascript/latest/references/core/layers/mixins/FeatureLayerBase/#returnZ) for details regarding fetching z-values with features from a layer * @see [Point.z](https://developers.arcgis.com/javascript/latest/references/core/geometry/Point/#z) for more information on how z-values are represented in geometries */ get hasZ(): boolean; /** * The label definition for this layer, specified as an array of * [LabelClass](https://developers.arcgis.com/javascript/latest/references/core/layers/support/LabelClass/). Use this property to specify * labeling properties for the layer such as label expression, placement, and size. * * Multiple Label classes with different `where` clauses can be used to define several * labels with varying styles on the same feature. Likewise, multiple label classes * may be used to label different types of features (for example blue labels * for lakes and green labels for parks). * * See the [Labeling guide page](https://developers.arcgis.com/javascript/latest/labeling/) for more information and known limitations. * * > [!WARNING] * > * > **Known Limitations** * > * > 3D [SceneViews](https://developers.arcgis.com/javascript/latest/references/core/views/SceneView/) only support displaying one [LabelClass](https://developers.arcgis.com/javascript/latest/references/core/layers/support/LabelClass/) per feature. * * @see [Sample: Add multiple label classes to a layer](https://developers.arcgis.com/javascript/latest/sample-code/labels-multiple-classes/) * @see [Sample: Multi-line labels](https://developers.arcgis.com/javascript/latest/sample-code/labels-multiline/) * @see [Sample: Flat vs. volumetric 3D symbol layers](https://developers.arcgis.com/javascript/latest/sample-code/symbols-points-3d/) * @example * const statesLabelClass = new LabelClass({ * labelExpressionInfo: { expression: "$feature.NAME" }, * symbol: { * type: "text", // autocasts as new TextSymbol() * color: "black", * haloSize: 1, * haloColor: "white" * } * }); * * footprintLayer.labelingInfo = [ statesLabelClass ]; */ get labelingInfo(): LabelClass[] | null | undefined; set labelingInfo(value: LabelClassProperties[] | null | undefined); /** * Indicates whether to display labels for this layer. If `true`, labels will * appear as defined in the [labelingInfo](https://developers.arcgis.com/javascript/latest/references/core/layers/catalog/CatalogFootprintLayer/#labelingInfo) property. * * > [!WARNING] * > * > **Known Limitations** * > * > 3D [SceneViews](https://developers.arcgis.com/javascript/latest/references/core/views/SceneView/) only support displaying one [LabelClass](https://developers.arcgis.com/javascript/latest/references/core/layers/support/LabelClass/) per feature. * * @default true */ accessor labelsVisible: boolean; /** * Indicates whether the layer will be included in the legend. When `false`, the layer will be excluded from the legend. * * @default true */ accessor legendEnabled: boolean; /** * The name of an `oid` [field](https://developers.arcgis.com/javascript/latest/references/core/layers/catalog/CatalogFootprintLayer/#fields) containing a unique value or identifier for each feature in the layer. * * @see [fields](https://developers.arcgis.com/javascript/latest/references/core/layers/catalog/CatalogFootprintLayer/#fields) */ get objectIdField(): string; /** * The rendering order of features in the view based on the CatalogLayer's [CatalogLayer.orderBy](https://developers.arcgis.com/javascript/latest/references/core/layers/CatalogLayer/#orderBy) property. * Specify the order by setting the [CatalogLayer.orderBy](https://developers.arcgis.com/javascript/latest/references/core/layers/CatalogLayer/#orderBy) property on the CatalogLayer. */ get orderBy(): OrderByInfo[] | null | undefined; /** * An array of field names from the service to include with each feature. To fetch the values from all fields in the layer, use `["*"]`. * Fields specified in `outFields` will be requested alongside with required fields for [rendering](https://developers.arcgis.com/javascript/latest/references/core/layers/catalog/CatalogFootprintLayer/#renderer), * [labeling](https://developers.arcgis.com/javascript/latest/references/core/layers/catalog/CatalogFootprintLayer/#labelingInfo) and setting the [elevation info](https://developers.arcgis.com/javascript/latest/references/core/layers/catalog/CatalogFootprintLayer/#elevationInfo) for the layer. * * The [CatalogLayer.outFields](https://developers.arcgis.com/javascript/latest/references/core/layers/CatalogLayer/#outFields) must be set on and derived from the CatalogLayer. * * @see [fieldUtils](https://developers.arcgis.com/javascript/latest/references/core/layers/support/fieldUtils/) * @example * // Includes all fields from the service in the layer * catalogLayer.outFields = ["*"]; * @example * // Get the specified fields from the service in the layer. These fields will be added to * // catalogFootprintLayerView.availableFields along with rendering and labeling fields. * // Use these fields for client-side filtering and querying. * catalogLayer.outFields = ["NAME", "POP_2010", "FIPS", "AREA"]; * @example * // set the outFields for the layer coming from webmap * webmap.when(function () { * layer = webmap.layers.at(1); * catalogLayer.outFields = ["*"]; * }); */ get outFields(): string[] | null | undefined; /** * Enable persistence of the layer in a [WebMap](https://developers.arcgis.com/javascript/latest/references/core/WebMap/) or [WebScene](https://developers.arcgis.com/javascript/latest/references/core/WebScene/). * * @default true * @since 4.28 */ get persistenceEnabled(): boolean; /** * Indicates whether to display popups when features in the layer are clicked. The layer needs to have a [popupTemplate](https://developers.arcgis.com/javascript/latest/references/core/layers/catalog/CatalogFootprintLayer/#popupTemplate) to define what * information should be displayed in the popup. Alternatively, a default popup template may be automatically used if * [Popup.defaultPopupTemplateEnabled](https://developers.arcgis.com/javascript/latest/references/core/widgets/Popup/#defaultPopupTemplateEnabled) is set to `true`. * * @default true * @see [createPopupTemplate()](https://developers.arcgis.com/javascript/latest/references/core/layers/catalog/CatalogFootprintLayer/#createPopupTemplate) * @see [SceneView.popup](https://developers.arcgis.com/javascript/latest/references/core/views/SceneView/#popup) * @see [View2D.popup](https://developers.arcgis.com/javascript/latest/references/core/views/View2D/#popup) */ accessor popupEnabled: boolean; /** * The popup template for the layer. When set on the layer, the `popupTemplate` allows users to access attributes and display their values in the * view's Popup when a feature is selected using text and/or charts. See the [PopupTemplate sample](https://developers.arcgis.com/javascript/latest/sample-code/intro-popuptemplate/) * for an example of how [PopupTemplate](https://developers.arcgis.com/javascript/latest/references/core/PopupTemplate/) interacts with a [FeatureLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/FeatureLayer/). * * A default popup template is automatically used if no `popupTemplate` has been defined when * [Popup.defaultPopupTemplateEnabled](https://developers.arcgis.com/javascript/latest/references/core/widgets/Popup/#defaultPopupTemplateEnabled) is set to `true`. * * @see [createPopupTemplate()](https://developers.arcgis.com/javascript/latest/references/core/layers/catalog/CatalogFootprintLayer/#createPopupTemplate) * @see [SceneView.popup](https://developers.arcgis.com/javascript/latest/references/core/views/SceneView/#popup) * @see [View2D.popup](https://developers.arcgis.com/javascript/latest/references/core/views/View2D/#popup) */ get popupTemplate(): PopupTemplate | null | undefined; set popupTemplate(value: PopupTemplateProperties | null | undefined); /** The IANA time zone the author of the service intended data from date fields to be viewed in. */ get preferredTimeZone(): TimeZone | null | undefined; /** * The renderer assigned to the layer. The renderer defines how to visualize each feature in the layer. Depending on the renderer type, * features may be visualized with the same symbol, or with varying symbols based on the values of provided attribute fields or functions. * * @see [Styles and data visualization](https://developers.arcgis.com/javascript/latest/visualization/) * @example * // all features in the layer will be visualized with * // a pink fill symbol and a thin, white outline * footprintLayer.renderer = new SimpleRenderer({ * symbol: new SimpleFillSymbol({ * color: [245, 40, 145, 0.8], * outline: new SimpleLineSymbol({ * width: 0.5, * color: "white" * }) * }) * }); */ get renderer(): RendererUnion | null | undefined; set renderer(value: (((SimpleRendererProperties & { type: "simple" }) | (ClassBreaksRendererProperties & { type: "class-breaks" }) | (UniqueValueRendererProperties & { type: "unique-value" }) | (DotDensityRendererProperties & { type: "dot-density" }) | (DictionaryRendererProperties & { type: "dictionary" }) | (PieChartRendererProperties & { type: "pie-chart" })) | (HeatmapRendererProperties & { type: "heatmap" })) | null | undefined); /** * Determines whether m-values (measure) are returned in feature geometries. For 2D views, support was added at version 5.1 and the behavior is as follows: * - When `undefined` (default): Fetches m-values if they are needed for rendering or labeling, or layer property interacts with the geometry. * Otherwise, m-values are excluded from feature queries. * - When `true`: Fetches m-values with the geometry, ensuring they are available on the client. * - When `false`: Excludes m-values from feature queries. M-values are not part of geometries. * * > [!WARNING] * > * > 3D views do not support m-values. They will not be fetched or returned in 3D scene queries, regardless of this setting. * * @see [FeatureLayerBase.hasM](https://developers.arcgis.com/javascript/latest/references/core/layers/mixins/FeatureLayerBase/#hasM) */ get returnM(): boolean | null | undefined; /** * Determines whether z-values (elevation) are returned in feature geometries. For 3D views, z-values are always fetched regardless of the `returnZ` setting. * For 2D views, support was added at version 5.1 and the behavior is as follows: * - When `undefined` (default): Fetches z-values if they are needed for rendering or labeling, or layer property interacts with the geometry. * Otherwise, z-values are excluded from feature queries. * - When `true`: Fetches z-values with the geometry, ensuring they are available on the client. * - When `false`: Excludes z-values from feature queries. Z-values are not part of geometries. * * @see [FeatureLayerBase.hasZ](https://developers.arcgis.com/javascript/latest/references/core/layers/mixins/FeatureLayerBase/#hasZ) * @see [Geometry.hasZ](https://developers.arcgis.com/javascript/latest/references/core/geometry/Geometry/#hasZ) */ get returnZ(): boolean | null | undefined; /** The spatial reference the source data is stored in. */ readonly spatialReference: SpatialReference; /** * The layer's time extent. When the layer's [useViewTime](https://developers.arcgis.com/javascript/latest/references/core/layers/catalog/CatalogFootprintLayer/#useViewTime) is `false`, the layer * instructs the view to show data from the layer based on this time extent. * If the `useViewTime` is `true`, and both layer and view time extents are set, then features that fall within * the intersection of the view and layer time extents will be displayed. This property is set on the CatalogLayer * via the [CatalogLayer.timeExtent](https://developers.arcgis.com/javascript/latest/references/core/layers/CatalogLayer/#timeExtent) property. */ get timeExtent(): TimeExtent | null | undefined; /** * TimeInfo provides information such as date fields that store [start](https://developers.arcgis.com/javascript/latest/references/core/layers/support/TimeInfo/#startField) * and [end](https://developers.arcgis.com/javascript/latest/references/core/layers/support/TimeInfo/#endField) time for each feature and the * [TimeInfo.fullTimeExtent](https://developers.arcgis.com/javascript/latest/references/core/layers/support/TimeInfo/#fullTimeExtent) for the layer. * This property is managed on the CatalogLayer via the [CatalogLayer.timeInfo](https://developers.arcgis.com/javascript/latest/references/core/layers/CatalogLayer/#timeInfo) property. */ get timeInfo(): TimeInfo | null | undefined; /** * A temporary offset of the time data based on a certain [TimeInterval](https://developers.arcgis.com/javascript/latest/references/core/time/TimeInterval/). This allows * users to overlay features from two or more time-aware layers with different time extents. * For example, if a layer has data recorded for the year 1970, an offset value of 2 years would temporarily shift the data to * 1972. You can then overlay this data with data recorded in 1972. * A time offset can be used for display purposes only. The query and selection are not affected by the offset. * This property is set on the CatalogLayer via the [CatalogLayer.timeOffset](https://developers.arcgis.com/javascript/latest/references/core/layers/CatalogLayer/#timeOffset) property. */ get timeOffset(): TimeInterval | null | undefined; /** The layer type provides a convenient way to check the type of the layer without the need to import specific layer modules. */ get type(): "catalog-footprint"; /** * Determines if the layer will update its temporal data based on the view's * [View.timeExtent](https://developers.arcgis.com/javascript/latest/references/core/views/View/#timeExtent). When `false`, the layer will display its temporal * data based on the layer's [timeExtent](https://developers.arcgis.com/javascript/latest/references/core/layers/catalog/CatalogFootprintLayer/#timeExtent), regardless of changes to the view. * If both view and layer time extents are set while this property is `true`, then the features that fall within * the intersection of the view and layer time extents will be displayed. * For example, if a layer's time extent is set to display features between 1970 and 1975 and * the view has a time extent set to 1972-1980, the effective time on the catalog layer will be 1972-1975. * * Set the [CatalogLayer.useViewTime](https://developers.arcgis.com/javascript/latest/references/core/layers/CatalogLayer/#useViewTime) on the CatalogLayer. * * @default true * @example * if (catalogLayer.useViewTime) { * console.log("Displaying data between:", view.timeExtent.start, " - ", view.timeExtent.end); * } */ get useViewTime(): boolean; /** * Creates default field configuration objects that define the display properties of fields. * These field configurations are generated from the layer's [fields](https://developers.arcgis.com/javascript/latest/references/core/layers/catalog/CatalogFootprintLayer/#fields) property. * * @returns An array of field configuration objects, or `null` if the layer does not have any fields that require formatting. * @since 5.1 * @see [CatalogFootprintLayer.fieldConfigurations](https://developers.arcgis.com/javascript/latest/references/core/layers/catalog/CatalogFootprintLayer/#fieldConfigurations) * @example * ```js * const fieldConfigs = layer.createFieldConfigurations(); * layer.fieldConfigurations = fieldConfigs; * ``` */ createFieldConfigurations(): FieldConfiguration[] | null | undefined; /** * Creates a popup template for the layer, populated with all the fields of the layer. * * @param options - Options for creating the popup template. * @returns The popup template, or `null` if the layer does not * have any fields. */ createPopupTemplate(options?: CreatePopupTemplateOptions): PopupTemplate | null | undefined; /** * Creates query parameter object that can be used to fetch features from feature-based layers or * image footprints from ImageryLayer that satisfy the layer's configurations such as [definitionExpression](https://developers.arcgis.com/javascript/latest/references/core/layers/catalog/CatalogFootprintLayer/#definitionExpression). * It will return `Z` and `M` values based on the layer's [data capabilities](https://developers.arcgis.com/javascript/latest/references/core/layers/catalog/CatalogFootprintLayer/#capabilities). * It sets the query parameter's [Query.outFields](https://developers.arcgis.com/javascript/latest/references/core/rest/support/Query/#outFields) property to `["*"]`. * The results will include feature geometries and values for all [available fields](https://developers.arcgis.com/javascript/latest/references/core/views/layers/FeatureLayerView/#availableFields) in * [queries](https://developers.arcgis.com/javascript/latest/references/core/views/layers/FeatureLayerView/#queryFeatures) against the layer views of feature-based layers, or all fields in the layer for * [queries against the layer](https://developers.arcgis.com/javascript/latest/references/core/layers/FeatureLayer/#queryFeatures). * * @returns The query object representing the layer's definition expression and other configurations. * @see [Sample - Query features from a FeatureLayer](https://developers.arcgis.com/javascript/latest/sample-code/featurelayer-query/) * @example * ```js * // Get a query object for the layer's current configuration * queryParams.outFields will be set to ["*"] to get values for all available fields. * const queryParams = layer.createQuery(); * // set a geometry for filtering features by a region of interest * queryParams.geometry = extentForRegionOfInterest; * // Add to the layer's current definitionExpression * queryParams.where = queryParams.where + " AND TYPE = 'Extreme'"; * * // query the layer with the modified params object * layer.queryFeatures(queryParams).then(function(results){ * // prints the array of result graphics to the console * console.log(results.features); * }); * ``` * @example * ```js * // this snippet shows the query parameter object that is returned * // from FeatureLayer.createQuery(). * const queryParams = new Query(); * const dataCapabilities = layer.get("capabilities.data"); * * queryParams.gdbVersion = layer.gdbVersion; * queryParams.historicMoment = layer.historicMoment; * queryParams.returnGeometry = true; * * if (dataCapabilities) { * if (dataCapabilities.supportsZ && layer.returnZ != null) { * queryParams.returnZ = layer.returnZ; * } * * if (dataCapabilities.supportsM && layer.returnM != null) { * queryParams.returnM = layer.returnM; * } * } * * queryParams.outFields = ["*"]; * queryParams.where = layer.definitionExpression || "1=1"; * queryParams.multipatchOption = layer.geometryType === "multipatch" ? "xyFootprint" : null; * ``` * @example * ```js * // this snippet shows query image footprints from imagery layer * // that honors the layer's definitionExpression and other configurations. * if (imageryLayer.capabilities.operations.supportsQuery) { * const query = imageryLayer.createQuery(); * const rasters = await imageryLayer.queryRasters(query); * ``` */ createQuery(): Query; /** * Returns the [Field](https://developers.arcgis.com/javascript/latest/references/core/layers/support/Field/) instance for a field name (case-insensitive). * * @param fieldName - Name of the field. * @returns the matching field or `undefined` * @see [fields](https://developers.arcgis.com/javascript/latest/references/core/layers/catalog/CatalogFootprintLayer/#fields) */ getField(fieldName: string): Field | null | undefined; /** * Returns the alias of the specified field. Previously, this value was commonly retrieved from [Layer.popupTemplate.fieldInfos[x].label](https://developers.arcgis.com/javascript/latest/references/core/popup/FieldInfo/#label) or [Layer.fields[x].alias](https://developers.arcgis.com/javascript/latest/references/core/layers/support/Field/#alias). While these properties are still supported, this method is now the recommended approach for obtaining a field's alias. * * The alias is resolved in the following order: * * 1. [Field configuration alias](https://developers.arcgis.com/javascript/latest/references/core/layers/catalog/CatalogFootprintLayer/#fieldConfigurations) * 2. [Field alias](https://developers.arcgis.com/javascript/latest/references/core/layers/catalog/CatalogFootprintLayer/#fields) defined on the field. * * @param fieldName - The name of the field for which to get the alias. * @returns The alias of the specified field. * @since 5.1 * @see [CatalogFootprintLayer.fieldConfigurations](https://developers.arcgis.com/javascript/latest/references/core/layers/catalog/CatalogFootprintLayer/#fieldConfigurations) * @see [CatalogFootprintLayer.getFieldConfiguration](https://developers.arcgis.com/javascript/latest/references/core/layers/catalog/CatalogFootprintLayer/#getFieldConfiguration) */ getFieldAlias(fieldName: string): string | null | undefined; /** * Returns the [FieldConfigurations](https://developers.arcgis.com/javascript/latest/references/core/layers/support/FieldConfiguration/) for the specified field. The field configuration provides optional formatting and display information for the field. * * Previously, field formatting was commonly retrieved from [Layer.popupTemplate.fieldInfos[x].format](https://developers.arcgis.com/javascript/latest/references/core/popup/FieldInfo/#format). This is no longer needed, instead use [Layer.getFieldConfiguration(fieldname).fieldFormat](https://developers.arcgis.com/javascript/latest/references/core/layers/support/FieldConfiguration/#fieldFormat) to retrieve the field configuration formatting. * * @param fieldName - The name of the field for which to get the configuration. * @returns The field configuration of the specified field. * @since 5.1 * @see [CatalogFootprintLayer.fieldConfigurations](https://developers.arcgis.com/javascript/latest/references/core/layers/catalog/CatalogFootprintLayer/#fieldConfigurations) * @see [CatalogFootprintLayer.getFieldAlias](https://developers.arcgis.com/javascript/latest/references/core/layers/catalog/CatalogFootprintLayer/#getFieldAlias) */ getFieldConfiguration(fieldName: string): FieldConfiguration | null | undefined; /** * Returns the [Domain](https://developers.arcgis.com/javascript/latest/references/core/layers/support/Domain/) associated with the given field name. The domain can be either a * [CodedValueDomain](https://developers.arcgis.com/javascript/latest/references/core/layers/support/CodedValueDomain/) or [RangeDomain](https://developers.arcgis.com/javascript/latest/references/core/layers/support/RangeDomain/). * * @param fieldName - Name of the field. * @param options - An object specifying additional options. See the * object specification table below for the required properties of this object. * @returns The Domain object associated with the given field name for the given feature. * @example * // Get a range domain associated with the first feature returned from queryFeatures(). * footprintLayer.queryFeatures(query).then((results) => { * const domain = footprintLayer.getFieldDomain("Height", {feature: results.features[0]}); * console.log("domain", domain); * }); */ getFieldDomain(fieldName: string, options?: FieldDomainOptions): DomainUnion | null | undefined; /** * Executes a [AttributeBinsQuery](https://developers.arcgis.com/javascript/latest/references/core/rest/support/AttributeBinsQuery/) against a [CatalogFootprintLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/catalog/CatalogFootprintLayer/), which groups features into bins based on ranges in numeric or date fields, and returns a * [AttributeBinsFeatureSet](https://developers.arcgis.com/javascript/latest/references/core/rest/support/AttributeBinsFeatureSet/) containing the series of bins. Please refer to the [AttributeBinsQuery](https://developers.arcgis.com/javascript/latest/references/core/rest/support/AttributeBinsQuery/) document for more detailed information * on how to configure the bin parameters. * * Binned data can condense complex information into meaningful insight. This query allows you to classify data into meaningful categories and summarize the data * within each bin with summary statistics. * * > [!WARNING] * > * > **Notes** * > * > The `queryAttributeBins()` method is unrelated to querying bins in [FeatureReductionBinning](https://developers.arcgis.com/javascript/latest/references/core/layers/support/FeatureReductionBinning/). * * @param binsQuery - Specifies the parameters of the `queryAttributeBins()` operation. The [AttributeBinsQuery.binParameters](https://developers.arcgis.com/javascript/latest/references/core/rest/support/AttributeBinsQuery/#binParameters) property must be set. * @param options - Abort options that can be passed into an asynchronous method to allow termination. * @returns When resolved, returns a [AttributeBinsFeatureSet](https://developers.arcgis.com/javascript/latest/references/core/rest/support/AttributeBinsFeatureSet/) containing a series of bins. Each feature in the AttributeBinsFeatureSet * represents a bin. The attributes of each feature contain statistics summarizing the data in the bin, including count, average, standard deviation, etc. * @since 4.33 * @see [AttributeBinsQuery](https://developers.arcgis.com/javascript/latest/references/core/rest/support/AttributeBinsQuery/) * @see [Sample - Attribute Bins Query](https://developers.arcgis.com/javascript/latest/sample-code/query-attribute-bins/) */ queryAttributeBins(binsQuery: AttributeBinsQueryProperties, options?: RequestOptions): Promise; /** * Executes a [Query](https://developers.arcgis.com/javascript/latest/references/core/rest/support/Query/) against the feature service and returns the [Extent](https://developers.arcgis.com/javascript/latest/references/core/geometry/Extent/) of features that satisfy the query. If no * parameters are specified, then the extent and count of all features satisfying the layer's configuration/filters are returned. * * * > [!WARNING] * > - To query for the extent of features/graphics visible in the view on the client-side rather than making a server-side query, you must use the * > [CatalogFootprintLayerView.queryExtent()](https://developers.arcgis.com/javascript/latest/references/core/views/layers/CatalogFootprintLayerView/#queryExtent). * * * @param query - Specifies the attributes and spatial filter of the query. If no parameters are specified, then the extent and count of all features satisfying the layer's configuration/filters are returned. * @param options - Additional request options. See [RequestOptions](https://developers.arcgis.com/javascript/latest/references/core/request/types/#RequestOptions). * @returns When resolved, returns the extent and count of the features * that satisfy the input query. See the object specification table below for details. * Property | Type | Description * ---------|------|------------- * count | Number | The number of features that satisfy the input query. * extent | [Extent](https://developers.arcgis.com/javascript/latest/references/core/geometry/Extent/) | The extent of the features that satisfy the query. * @see [Sample - Zoom to extent of all features](https://developers.arcgis.com/javascript/latest/sample-code/featurelayer-queryextent/) * @example * ```js * // Queries for the extent of all features matching the layer's configurations * // e.g. definitionExpression * layer.queryExtent().then((result) =>{ * // go to the extent of the result satisfying the query * viewElement.goTo(result.extent); * }); * ``` * @example * ```js * const query = new Query(); * query.where = "region = 'Southern California'"; * * const result = await layer.queryExtent(query); * viewElement.goTo(result.extent); // go to the extent of the result satisfying the query * }); * ``` */ queryExtent(query?: QueryProperties | null | undefined, options?: RequestOptions): Promise<{ count: number; extent: Extent | null; }>; /** * Executes a [Query](https://developers.arcgis.com/javascript/latest/references/core/rest/support/Query/) against the feature service or layer data and * returns the number of features that satisfy the query. If no parameters are specified, * the total number of features satisfying the layer's configuration/filters is returned. * * * > [!WARNING] * > - To query the count of features available in the view on the client-side rather than making a server-side query, use * > [CatalogFootprintLayerView.queryFeatureCount()](https://developers.arcgis.com/javascript/latest/references/core/views/layers/CatalogFootprintLayerView/#queryFeatureCount). * * * @param query - Specifies the attributes and spatial filter of the query. If no parameters are specified, the total number of features satisfying the layer's configuration/filters is returned. * @param options - Additional request options. See [RequestOptions](https://developers.arcgis.com/javascript/latest/references/core/request/types/#RequestOptions). * @returns When resolved, returns the number of features that satisfy the query. * @see [Sample - Query features from a FeatureLayer](https://developers.arcgis.com/javascript/latest/sample-code/featurelayer-query/) * @example * ```js * // Queries for the count of all features matching the layer's configurations * // e.g. definitionExpression * layer.queryFeatureCount().then((numFeatures) => { * // prints the total count to the console * console.log(numFeatures); * }); * ``` * @example * ```js * const query = new Query(); * query.where = "region = 'Southern California'"; * * const featureCount = await layer.queryFeatureCount(query); * console.log(featureCount); // prints the number of results satisfying the query * ``` */ queryFeatureCount(query?: QueryProperties | null | undefined, options?: RequestOptions): Promise; /** * Executes a [Query](https://developers.arcgis.com/javascript/latest/references/core/rest/support/Query/) against a feature service or layer data and returns a * [FeatureSet](https://developers.arcgis.com/javascript/latest/references/core/rest/support/FeatureSet/) once the promise resolves. A FeatureSet contains an array of [features](https://developers.arcgis.com/javascript/latest/references/core/Graphic/). * * > [!WARNING] * > * > **Notes** * > - To query features visible in the view on the client-side rather than making a server-side query, use * > [CatalogFootprintLayerView.queryFeatures()](https://developers.arcgis.com/javascript/latest/references/core/views/layers/CatalogFootprintLayerView/#queryFeatures). * > - When querying a feature service with z-values and no [vertical coordinate system](https://doc.esri.com/en/arcgis-pro/latest/help/mapping/properties/vertical-coordinate-systems.html) * > information, z-values are automatically converted to match [Query.outSpatialReference](https://developers.arcgis.com/javascript/latest/references/core/rest/support/Query/#outSpatialReference) units. * > Example: The service has a horizontal spatial reference using `feet` units and the query is made with `outSpatialReference` * > based on `meter` units, then [FeatureLayer.queryFeatures()](https://developers.arcgis.com/javascript/latest/references/core/layers/FeatureLayer/#queryFeatures) automatically converts the values from `feet` to `meter` units. * * * @param query - Specifies the attributes and spatial filter of the query. If no parameters are specified, all features satisfying the layer's configuration/filters are returned. * @param options - Additional request options. See [RequestOptions](https://developers.arcgis.com/javascript/latest/references/core/request/types/#RequestOptions). * @returns When resolved, returns a [FeatureSet](https://developers.arcgis.com/javascript/latest/references/core/rest/support/FeatureSet/) containing an array of graphic features. * @see [Samples using queryFeatures() method](https://developers.arcgis.com/javascript/latest/sample-code/?tagged=queryfeatures) * @see [Query and filter guide](https://developers.arcgis.com/javascript/latest/query-filter/) * @example * ```js * // Queries for all the features matching the layer's configurations * // e.g. definitionExpression * const results = await layer.queryFeatures(); * // prints the array of result graphics to the console * console.log(results.features); * ``` * @example * ```js * // create a query object to filter features by setting desired properties * const query = new Query(); * query.where = "STATE_NAME = 'Washington'"; * query.outSpatialReference = { wkid: 102100 }; * query.returnGeometry = true; * query.outFields = [ "CITY_NAME" ]; * * const results = await layer.queryFeatures(query); * console.log(results.features); // prints the array of features to the console * ``` * @example * ```js * // Get a query object for the layer's current configuration * const queryParams = layer.createQuery(); * // set a geometry for filtering features by a region of interest * queryParams.geometry = extentForRegionOfInterest; * // Add to the layer's current definitionExpression * queryParams.where = queryParams.where + " AND TYPE = 'Extreme'"; * * // query the layer with the modified params object * const results = await layer.queryFeatures(queryParams); * // prints the array of result graphics to the console * console.log(results.features); * ``` * @example * ```js * // query all features from the layer and only return * // attributes specified in outFields. * const query = { // autocasts as Query * where: "1=1", // select all features * returnGeometry: false, * outFields: ["State_Name", "City_Name", "pop2010"] * }; * * const results = await layer.queryFeatures(query); * console.log(results.features); // prints the array of features to the console * ``` */ queryFeatures(query?: QueryProperties | null | undefined, options?: RequestOptions | undefined): Promise; /** * Executes a [Query](https://developers.arcgis.com/javascript/latest/references/core/rest/support/Query/) against the feature service and returns an * array of Object IDs for features that satisfy the input query. If no parameters are specified, * then the Object IDs of all features satisfying the layer's configuration/filters are returned. * * * > [!WARNING] * > - To query the ObjectIDs of features visible in the view on the client-side rather than making a server-side query, use * > [CatalogFootprintLayerView.queryObjectIds()](https://developers.arcgis.com/javascript/latest/references/core/views/layers/CatalogFootprintLayerView/#queryObjectIds). * * * @param query - Specifies the attributes and spatial filter of the query. If no parameters are specified, then the Object IDs of all features satisfying the layer's configuration/filters are returned. * @param options - Additional request options. See [RequestOptions](https://developers.arcgis.com/javascript/latest/references/core/request/types/#RequestOptions). * @returns When resolved, returns an array of numbers representing the object IDs of the features satisfying the query. * @see [Sample - Query Related Features](https://developers.arcgis.com/javascript/latest/sample-code/query-related-features/) * @example * ```js * // Queries for all the Object IDs of features matching the layer's configurations * // e.g. definitionExpression * layer.queryObjectIds().then((results) => { * // prints the array of Object IDs to the console * console.log(results); * }); * ``` * @example * ```js * const query = new Query({ * where: "SUB_REGION = 'Pacific'" * }); * * const ids = await layer.queryObjectIds(query); * console.log(ids); // an array of object IDs * ``` */ queryObjectIds(query?: QueryProperties | null | undefined, options?: RequestOptions): Promise; } declare const CatalogFootprintLayerSuperclass: typeof Layer & typeof MultiOriginJSONSupportMixin & typeof BlendLayer & typeof FeatureEffectLayer & typeof ScaleRangeLayer