@arcgis/core
Version:
ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API
467 lines (465 loc) • 29.9 kB
TypeScript
import type SpatialReference from "../../geometry/SpatialReference.js";
import type TopFilter from "./TopFilter.js";
import type TimeExtent from "../../time/TimeExtent.js";
import type { JSONSupport } from "../../core/JSONSupport.js";
import type { GeometryUnion } from "../../geometry/types.js";
import type { ObjectId } from "../../views/types.js";
import type { MeshProperties } from "../../geometry/Mesh.js";
import type { PolylineProperties } from "../../geometry/Polyline.js";
import type { PolygonProperties } from "../../geometry/Polygon.js";
import type { PointProperties } from "../../geometry/Point.js";
import type { MultipointProperties } from "../../geometry/Multipoint.js";
import type { ExtentProperties } from "../../geometry/Extent.js";
import type { SpatialReferenceProperties } from "../../geometry/SpatialReference.js";
import type { TimeExtentProperties } from "../../time/TimeExtent.js";
import type { TopFilterProperties } from "./TopFilter.js";
export interface TopFeaturesQueryProperties extends Partial<Pick<TopFeaturesQuery, "cacheHint" | "distance" | "geometryPrecision" | "maxAllowableOffset" | "num" | "objectIds" | "orderByFields" | "outFields" | "returnGeometry" | "returnM" | "returnZ" | "spatialRelationship" | "start" | "units" | "where">> {
/**
* The geometry to apply to the spatial filter. The [Query.spatialRelationship](https://developers.arcgis.com/javascript/latest/references/core/rest/support/Query/#spatialRelationship)
* will indicate how the geometry should be used to query features.
*
* > [!WARNING]
* >
* > **Known Limitations**
* >
* > [Mesh](https://developers.arcgis.com/javascript/latest/references/core/geometry/Mesh/) geometry types are currently not supported.
*/
geometry?: ((ExtentProperties & { type: "extent" }) | (MultipointProperties & { type: "multipoint" }) | (PointProperties & { type: "point" }) | (PolygonProperties & { type: "polygon" }) | (PolylineProperties & { type: "polyline" }) | (MeshProperties & { type: "mesh" })) | null;
/**
* The spatial reference for the returned geometry. If not specified, the geometry is returned in the spatial
* reference of the queried layer.
*/
outSpatialReference?: SpatialReferenceProperties | null;
/**
* A time extent for a temporal query against [time-aware layers](https://developers.arcgis.com/javascript/latest/references/core/layers/FeatureLayer/#timeInfo).
* For example, it can be used to discover all crimes that occurred during the
* night shift from 10 PM to 6 AM on a particular date.
*
* @example
* let layer = new FeatureLayer( ... );
* let timeExtent = new TimeExtent({
* start: new Date(1992, 0, 1),
* end: new Date(1992, 11, 31)
* });
* let timeQuery = new Query({
* timeExtent: timeExtent
* });
* layerView.queryFeatures(timeQuery).then(function(featureSet) { ... });
*/
timeExtent?: TimeExtentProperties | null;
/**
* The `topFilter` parameter is used to set the [TopFilter.groupByFields](https://developers.arcgis.com/javascript/latest/references/core/rest/support/TopFilter/#groupByFields), [TopFilter.orderByFields](https://developers.arcgis.com/javascript/latest/references/core/rest/support/TopFilter/#orderByFields),
* and [TopFilter.topCount](https://developers.arcgis.com/javascript/latest/references/core/rest/support/TopFilter/#topCount) criteria used in generating the result.
*
* @example
* // return top three most populous cities from each state
* const query = new TopFeaturesQuery({
* topFilter: new TopFilter({
* topCount: 3,
* groupByFields: ["State"],
* orderByFields: ["Pop_total DESC"]
* })
* });
* layer.queryTopFeatures(query).then(function(featureSet) { ... });
*/
topFilter?: TopFilterProperties;
}
/**
* This class defines parameters for executing [top features queries](https://developers.arcgis.com/javascript/latest/references/core/layers/FeatureLayer/#queryTopFeatures)
* from a [FeatureLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/FeatureLayer/). Once a TopFeaturesQuery object's properties are defined, it can then be passed
* into executable functions on a server-side [FeatureLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/FeatureLayer/), which can return a
* [FeatureSet](https://developers.arcgis.com/javascript/latest/references/core/rest/support/FeatureSet/) containing features within a group. For example, you can use FeatureLayer's
* [FeatureLayer.queryTopFeatures()](https://developers.arcgis.com/javascript/latest/references/core/layers/FeatureLayer/#queryTopFeatures) method to query
* the most populous three counties in each state of the United States.
*
* This class has many of the same properties as [Query](https://developers.arcgis.com/javascript/latest/references/core/rest/support/Query/) class. However, unlike the Query class,
* this class does not support properties such as `outStatistics` and its related parameters or `returnDistinctValues`.
*
* ```js
* // query the top three most populous counties from each state.
* // Results will be ordered based the population of each county in descending order
* // top query will run against all features available in the service
* const query = new TopFeaturesQuery({
* outFields: ["State, Pop_total, County"],
* topFilter: new TopFilter({
* topCount: 3,
* groupByFields: ["State"],
* orderByFields: ["Pop_total DESC"]
* })
* });
* featureLayer.queryTopFeatures(query)
* .then(function(response){
* // returns a feature set with features containing the most populous
* // three counties in each state ordered by population.
* // The following attributes are returned as well: State, Pop_total, County
* });
* ```
*
* There are three types of top features queries: attribute, spatial and temporal queries. You can query for features
* in one of these categories or use elements of each in a single query. When running a top features query,
* the [topFilter](https://developers.arcgis.com/javascript/latest/references/core/rest/support/TopFeaturesQuery/#topFilter) parameter must always be set.
*
* <span id="attribute"></span>
* ## Attribute queries
*
* To query top features based on attribute values, specify a SQL where clause in the [where](https://developers.arcgis.com/javascript/latest/references/core/rest/support/TopFeaturesQuery/#where) property along with the [topFilter](https://developers.arcgis.com/javascript/latest/references/core/rest/support/TopFeaturesQuery/#topFilter)
* property. Setting the [outFields](https://developers.arcgis.com/javascript/latest/references/core/rest/support/TopFeaturesQuery/#outFields) of the query will limit the attributes returned from the query. This can improve the speed of the query
* if your app doesn't require all the attributes for each feature.
*
* For example, you can use [where](https://developers.arcgis.com/javascript/latest/references/core/rest/support/TopFeaturesQuery/#where) and [topFilter](https://developers.arcgis.com/javascript/latest/references/core/rest/support/TopFeaturesQuery/#topFilter) parameters to query the top three most populous cities in each country if the
* population is over 1,000,000.
*
* ```js
* const query = new TopFeaturesQuery({
* where: "Population >= 1000000",
* outFields: ["Country, Population, Name"],
* topFilter: new TopFilter({
* topCount: 3,
* groupByFields: ["Country"],
* orderByFields: [`Population DESC`]
* })
* });
* featureLayer.queryTopFeatures(query)
* .then(function(response){
* // returns a feature set with features containing the most populous three cities
* // in each country. The query will run only against cities where the population is
* // over one million.
* });
* ```
*
* <span id="spatial"></span>
* ## Spatial queries
*
* You can query top features by geometry/location. While [where](https://developers.arcgis.com/javascript/latest/references/core/rest/support/TopFeaturesQuery/#where) is not required in this
* workflow, you can use `where` as part of the query to get more refined results. The [topFilter](https://developers.arcgis.com/javascript/latest/references/core/rest/support/TopFeaturesQuery/#topFilter) property
* must be set in addition to [geometry](https://developers.arcgis.com/javascript/latest/references/core/rest/support/TopFeaturesQuery/#geometry) property.
* To execute a spatial query, you must set the [geometry](https://developers.arcgis.com/javascript/latest/references/core/rest/support/TopFeaturesQuery/#geometry) parameter to a
* [Geometry](https://developers.arcgis.com/javascript/latest/references/core/geometry/Geometry/) object and specify a valid [spatialRelationship](https://developers.arcgis.com/javascript/latest/references/core/rest/support/TopFeaturesQuery/#spatialRelationship).
* You can optionally provide a query [distance](https://developers.arcgis.com/javascript/latest/references/core/rest/support/TopFeaturesQuery/#distance) and [units](https://developers.arcgis.com/javascript/latest/references/core/rest/support/TopFeaturesQuery/#units) to query features against a buffer
* around the given geometry.
*
* For example, to query for the two tallest buildings in each zoning category within 10 miles of a mouse move, you would do the following:
*
* ```js
* view.on("pointer-move", function(event){
* const query = new TopFeaturesQuery({
* outFields: ["Zoning, Floors, Year"],
* topFilter: new TopFilter({
* topCount: 2,
* groupByFields: ["Zoning"],
* orderByFields: ["Floors DESC"]
* }),
* geometry: view.toMap(event),
* spatialRelationship: "intersects",
* units: "miles",
* distance: 10,
* returnGeometry: true
* });
* featureLayer.queryTopFeatures(query)
* .then(function(response){
* // returns two tallest buildings in zoning category within a given geometry
* // The following attributes are returned as well: Zoning, Floors, Year
* });
* });
* ```
*
* You could also use `where`, for example, to return the tallest buildings in a specific residential zoning districts within
* the 10-mile buffer.
*
* <span id="temporal"></span>
* ## Temporal queries
*
* You can query top features based on a given time range by specifying the [timeExtent](https://developers.arcgis.com/javascript/latest/references/core/rest/support/TopFeaturesQuery/#timeExtent) property. The temporal query will return
* results only if the feature service is published with [FeatureLayer.timeInfo](https://developers.arcgis.com/javascript/latest/references/core/layers/FeatureLayer/#timeInfo) information. The temporal
* query can also be combined with attribute and geometry queries.
*
* For example, you can use [timeExtent](https://developers.arcgis.com/javascript/latest/references/core/rest/support/TopFeaturesQuery/#timeExtent) and [topFilter](https://developers.arcgis.com/javascript/latest/references/core/rest/support/TopFeaturesQuery/#topFilter) parameters to query hurricane tracks with the highest wind speed,
* grouped by the hurricane categories within a given time extent.
*
* ```js
* // query hurricanes that took place in 1992 and
* // return a hurricane track with the highest wind speed in each category
* const query = new TopFeaturesQuery({
* outFields: ["STAGE, WINDSPEED, PRESSURE"],
* topFilter: new TopFilter({
* topCount: 1,
* groupByFields: ["STAGE"],
* orderByFields: ["WINDSPEED DESC"]
* }),
* timeExtent: {
* start: new Date(1992, 0, 1),
* end: new Date(1992, 11, 31)
* }
* });
* featureLayer.queryTopFeatures(query)
* .then(function(response){
* // returns a hurricane with the highest wind speed
* // in each stage... the query will only run against
* // hurricanes that happened in 1992
* });
* ```
*
* > [!WARNING]
* >
* > **Known Limitations**
* >
* > Currently, the `TopFeatureQuery` is only supported with server-side [FeatureLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/FeatureLayer/).
*
* @since 4.20
* @see [TopFilter](https://developers.arcgis.com/javascript/latest/references/core/rest/support/TopFilter/)
* @see [FeatureLayer.queryTopFeatures()](https://developers.arcgis.com/javascript/latest/references/core/layers/FeatureLayer/#queryTopFeatures)
* @see [Query and filter guide](https://developers.arcgis.com/javascript/latest/query-filter/)
* @see [Sample - Aggregate spatial statistics](https://developers.arcgis.com/javascript/latest/sample-code/featurelayer-query-aggregate/)
*/
export default class TopFeaturesQuery extends JSONSupport {
constructor(properties?: TopFeaturesQueryProperties);
/**
* Indicates if the service should cache the query results. It only applies if the layer's
* [capabilities.query.supportsCacheHint](https://developers.arcgis.com/javascript/latest/references/core/layers/FeatureLayer/#capabilities) is set to `true`.
* Use only for queries that have the same parameters every time the app is used.
* Some examples of cacheable queries:
* * Queries that fetch [statistics](https://developers.arcgis.com/javascript/latest/references/core/rest/support/Query/#outStatistics) or [features](https://developers.arcgis.com/javascript/latest/references/core/rest/support/Query/#returnGeometry) on app load.
* * Queries based on [preset input](https://developers.arcgis.com/javascript/latest/references/core/rest/support/Query/#where), for example, a drop-down list of US states.
* * Queries based on [preset extents](https://developers.arcgis.com/javascript/latest/references/core/rest/support/Query/#geometry), for example bookmarks, in web maps.
*/
accessor cacheHint: boolean | null | undefined;
/**
* Specifies a search distance from a given [Query.geometry](https://developers.arcgis.com/javascript/latest/references/core/rest/support/Query/#geometry) in a spatial query.
* The [units property](https://developers.arcgis.com/javascript/latest/references/core/rest/support/Query/#units) indicates the unit of measurement. In essence, setting this property
* creates a buffer at the specified size around the input [Query.geometry](https://developers.arcgis.com/javascript/latest/references/core/rest/support/Query/#geometry). The query will use that
* buffer to return features in the layer or layer view that adhere to the to the indicated [spatial relationship](https://developers.arcgis.com/javascript/latest/references/core/rest/support/Query/#spatialRelationship).
*
* If querying a feature service, the [supportsQueryWithDistance](https://developers.arcgis.com/rest/services-reference/query-feature-service-layer-.htm)
* capability must be `true`.
*/
accessor distance: number | null | undefined;
/**
* The geometry to apply to the spatial filter. The [Query.spatialRelationship](https://developers.arcgis.com/javascript/latest/references/core/rest/support/Query/#spatialRelationship)
* will indicate how the geometry should be used to query features.
*
* > [!WARNING]
* >
* > **Known Limitations**
* >
* > [Mesh](https://developers.arcgis.com/javascript/latest/references/core/geometry/Mesh/) geometry types are currently not supported.
*/
get geometry(): GeometryUnion | null | undefined;
set geometry(value: ((ExtentProperties & { type: "extent" }) | (MultipointProperties & { type: "multipoint" }) | (PointProperties & { type: "point" }) | (PolygonProperties & { type: "polygon" }) | (PolylineProperties & { type: "polyline" }) | (MeshProperties & { type: "mesh" })) | null | undefined);
/** Specifies the number of decimal places for geometries returned by the query operation. */
accessor geometryPrecision: number;
/**
* The maximum distance in units of [outSpatialReference](https://developers.arcgis.com/javascript/latest/references/core/rest/support/TopFeaturesQuery/#outSpatialReference) used for
* generalizing geometries returned by the query operation. It limits how far any part of the
* generalized geometry can be from the original geometry. If `outSpatialReference` is not defined,
* the spatialReference of the data is used.
*/
accessor maxAllowableOffset: number;
/**
* The number of features to retrieve. This option should be used in conjunction with the [start property](https://developers.arcgis.com/javascript/latest/references/core/rest/support/TopFeaturesQuery/#start). Use this to
* implement paging (i.e. to retrieve "pages" of results when querying).
*
* If not provided, but an instance of Query has a `start` property, then the default value of `num` is 10.
* If neither `num` nor `start` properties are provided, then the default value of `num` is equal to the
* `maxRecordCount` of the service, which can be found at the REST endpoint of the FeatureLayer.
*/
accessor num: number | null | undefined;
/** An array of ObjectIDs to be used to query for features in a layer. */
accessor objectIds: ObjectId[] | null | undefined;
/**
* One or more field names used to order the query results. Specify `ASC` (ascending) or `DESC`
* (descending) after the field name to control the order. The default order is `ASC`.
*
* @see [FeatureLayer.capabilities](https://developers.arcgis.com/javascript/latest/references/core/layers/FeatureLayer/#capabilities)
* @example query.orderByFields = ["STATE_NAME DESC"];
*/
accessor orderByFields: string[] | null | undefined;
/**
* Attribute fields to include in the [FeatureSet](https://developers.arcgis.com/javascript/latest/references/core/rest/support/FeatureSet/). Fields must exist in the service layer. You must list actual
* field names rather than field aliases. You may, however, use field aliases when you display
* the results of the query.
*
* When specifying the output fields, you should limit the fields to only those you expect to use in the
* query or the results. The fewer fields you include, the smaller the payload size, and therefore the faster the response of the query.
*
* You can also specify SQL expressions as `outFields` to calculate new values server side for the query results. See the
* example snippets below for an example of this.
*
* Each query must have access to the `Shape` and `ObjectId` fields for a layer. However, the list of outFields does
* not need to include these two fields.
*
* > [!WARNING]
* >
* > **Known Limitations**
* >
* > If specifying outFields as expressions on a feature service-based [FeatureLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/FeatureLayer/), the service capabilities
* > `advancedQueryCapabilities.supportsOutFieldSQLExpression` and `useStandardizedQueries` must both be true.
*
* @example
* // query for field attributes
* query.outFields = [ "NAME", "STATE_ABBR", "POP04" ];
* @example
* // query for data returned from an expressions and other fields as the following field names
* // POP_CHANGE_2020, NAME, POP2020
* // where POP_CHANGE_2020 represents the population change from 2010 - 2020
* query.outFields = [ "( (POP2020 - POP2010) / POP2010 ) * 100 as POP_CHANGE_2020", "NAME", "POP2020" ]
*/
accessor outFields: string[] | null | undefined;
/**
* The spatial reference for the returned geometry. If not specified, the geometry is returned in the spatial
* reference of the queried layer.
*/
get outSpatialReference(): SpatialReference | null;
set outSpatialReference(value: SpatialReferenceProperties | null);
/**
* If `true`, each feature in the returned [FeatureSet](https://developers.arcgis.com/javascript/latest/references/core/rest/support/FeatureSet/) includes the geometry.
*
* @default false
*/
accessor returnGeometry: boolean;
/** If `true`, and [returnGeometry](https://developers.arcgis.com/javascript/latest/references/core/rest/support/TopFeaturesQuery/#returnGeometry) is `true`, then m-values are included in the geometry. */
accessor returnM: boolean;
/** If `true`, and [returnGeometry](https://developers.arcgis.com/javascript/latest/references/core/rest/support/TopFeaturesQuery/#returnGeometry) is `true`, then z-values are included in the geometry. */
accessor returnZ: boolean;
/**
* For spatial queries, this parameter defines the spatial relationship to query features in the layer or layer view against the input [Query.geometry](https://developers.arcgis.com/javascript/latest/references/core/rest/support/Query/#geometry).
* The spatial relationships discover how features are spatially related to each other.
* For example, you may want to know if a polygon representing a county completely contains points representing settlements.
*
* The spatial relationship is determined by whether the boundaries or interiors of a geometry intersect.
* * Boundary — The endpoints of all linear parts for line features, or the linear outline of a polygon. Only lines and polygons have boundaries.
* * Interior — Points are entirely interior and have no boundary. For lines and polygons, the interior is any part of the geometry that is not part of the boundary.
*
* The possible values for this parameter are described below and the images highlight the geometries returned for the specified spatial
* relationship for given geometries.
*
* The `intersects` spatial relationship returns features in the layer view that intersect the query [Query.geometry](https://developers.arcgis.com/javascript/latest/references/core/rest/support/Query/#geometry).
*
* 
*
* The `contains` spatial relationship returns features in the layer view that are completely contained by the query [Query.geometry](https://developers.arcgis.com/javascript/latest/references/core/rest/support/Query/#geometry).
*
* 
*
* The `crosses` spatial relationship returns features in the layer view when the interior of a query [Query.geometry](https://developers.arcgis.com/javascript/latest/references/core/rest/support/Query/#geometry) comes into contact with
* the interior or boundary of features in the layer view. In other words, the geometries share some interior area, but not all interior area.
*
* 
*
* The `envelope-intersects` spatial relationship returns features in the layer view that intersect the envelope (or extent)
* of the filter [Query.geometry](https://developers.arcgis.com/javascript/latest/references/core/rest/support/Query/#geometry).
*
* 
*
* The `overlaps` spatial relationship returns features in the layer view that overlap the query [Query.geometry](https://developers.arcgis.com/javascript/latest/references/core/rest/support/Query/#geometry).
* Only features of the same geometry can be compared.
*
* 
*
* The `touches` spatial relationship returns features in the layer view that touch the query [Query.geometry](https://developers.arcgis.com/javascript/latest/references/core/rest/support/Query/#geometry).
* The boundaries of the geometries intersect, but not their interiors.
*
* 
*
* The `within` spatial relationship returns features in the layer view that completely contain the query [Query.geometry](https://developers.arcgis.com/javascript/latest/references/core/rest/support/Query/#geometry).
* In other words, the filter geometry is completely `within` the features in the layer view. It is opposite of
* `contains`.
*
* 
*
* The `disjoint` spatial relationship returns features in the layer view that do not intersect the query [Query.geometry](https://developers.arcgis.com/javascript/latest/references/core/rest/support/Query/#geometry) in anyway.
* Opposite of `intersects`.
*
* 
*
* > [!WARNING]
* >
* > **Known Limitations**
* >
* > For spatial queries on 3D Object SceneLayers and BuildingSceneLayers the spatial relationship is evaluated based on the
* > [Extent](https://developers.arcgis.com/javascript/latest/references/core/geometry/Extent/) of the feature and not the footprint. This means that a feature might be
* > returned from the query, even though its footprint is not in a spatial relationship with the [Query.geometry](https://developers.arcgis.com/javascript/latest/references/core/rest/support/Query/#geometry).
* > Currently only `intersects`, `contains`, and `disjoint` [spatialRelationships](https://developers.arcgis.com/javascript/latest/references/core/rest/support/Query/#spatialRelationship) are supported on spatial
* > [queries](https://developers.arcgis.com/javascript/latest/references/core/rest/support/Query/) for 3D Object SceneLayers and BuildingSceneLayers.
*
* @default "intersects"
* @default intersects
* @example
* let query = new Query({
* spatialRelationship: "contains"
* });
*/
accessor spatialRelationship: "intersects" | "contains" | "crosses" | "envelope-intersects" | "index-intersects" | "overlaps" | "touches" | "within";
/**
* The zero-based index indicating where to begin retrieving features. This property should be used in conjunction with [num](https://developers.arcgis.com/javascript/latest/references/core/rest/support/TopFeaturesQuery/#num).
* Use this to implement paging and retrieve "pages" of results when querying. Features are sorted ascending by
* object ID by default.
*/
accessor start: number | null | undefined;
/**
* A time extent for a temporal query against [time-aware layers](https://developers.arcgis.com/javascript/latest/references/core/layers/FeatureLayer/#timeInfo).
* For example, it can be used to discover all crimes that occurred during the
* night shift from 10 PM to 6 AM on a particular date.
*
* @example
* let layer = new FeatureLayer( ... );
* let timeExtent = new TimeExtent({
* start: new Date(1992, 0, 1),
* end: new Date(1992, 11, 31)
* });
* let timeQuery = new Query({
* timeExtent: timeExtent
* });
* layerView.queryFeatures(timeQuery).then(function(featureSet) { ... });
*/
get timeExtent(): TimeExtent | null | undefined;
set timeExtent(value: TimeExtentProperties | null | undefined);
/**
* The `topFilter` parameter is used to set the [TopFilter.groupByFields](https://developers.arcgis.com/javascript/latest/references/core/rest/support/TopFilter/#groupByFields), [TopFilter.orderByFields](https://developers.arcgis.com/javascript/latest/references/core/rest/support/TopFilter/#orderByFields),
* and [TopFilter.topCount](https://developers.arcgis.com/javascript/latest/references/core/rest/support/TopFilter/#topCount) criteria used in generating the result.
*
* @example
* // return top three most populous cities from each state
* const query = new TopFeaturesQuery({
* topFilter: new TopFilter({
* topCount: 3,
* groupByFields: ["State"],
* orderByFields: ["Pop_total DESC"]
* })
* });
* layer.queryTopFeatures(query).then(function(featureSet) { ... });
*/
get topFilter(): TopFilter;
set topFilter(value: TopFilterProperties);
/**
* The unit for calculating the buffer distance when [Query.distance](https://developers.arcgis.com/javascript/latest/references/core/rest/support/Query/#distance) is specified in spatial queries.
* If `units` is not specified, the unit is derived from the geometry spatial reference.
* If the geometry spatial reference is not specified, the unit is derived from the feature service data spatial reference.
* For service-based queries, this parameter only applies if the layer's
* [capabilities.query.supportsDistance](https://developers.arcgis.com/javascript/latest/references/core/layers/FeatureLayer/#capabilities) is `true`.
*
* @example
* // Query at a distance in pixels of the query geometry.
* // Use the unit of the query geometry's spatial reference.
* layerView.queryFeatures({
* geometry: event.mapPoint,
* distance: 2 * view.resolution,
* returnGeometry: true
* }).then(processResults);
*/
accessor units: "feet" | "miles" | "nautical-miles" | "us-nautical-miles" | "meters" | "kilometers" | null | undefined;
/**
* A where clause for the query. Any legal SQL where clause operating on the fields in the layer is allowed.
* Be sure to have the correct sequence of single and double quotes when writing the where clause in JavaScript.
*
* @default "1=1"
* @example query.where = "NAME = '" + stateName + "'";
* @example query.where = "POP04 > " + population;
*/
accessor where: string;
/**
* Creates a deep clone of TopFeaturesQuery object.
*
* @returns A new instance of a TopFeaturesQuery object equal to the object used to call `.clone()`.
*/
clone(): TopFeaturesQuery;
}