This class defines parameters for executing queries for features from a layer or layer view. Once a Query object's properties are defined, it can then be passed into an executable function, which will return the features in a FeatureSet.
There are three types of queries: attribute, spatial, and statistic queries. You can query for features in one of these categories or use elements of each in a single query.
Attribute queries
To query features based on attribute values, specify a SQL where clause in the where property.
You can optionally use the text property for a LIKE
statement. Setting the 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 to query all counties in the state of Washington from a layer representing U.S. Counties:
let query = featureLayer.createQuery();
query.where = "STATE_NAME = 'Washington'";
query.outFields = [ "STATE_NAME", "COUNTY_NAME", "POPULATION", "(POPULATION / AREA) as 'POP_DENSITY'" ];
featureLayer.queryFeatures(query)
.then(function(response){
// returns a feature set with features containing the following attributes
// STATE_NAME, COUNTY_NAME, POPULATION, POP_DENSITY
});
Spatial queries
You can query features by geometry/location. While where is not required in this
workflow, you can use where
as part of the query to get more refined results.
To execute a spatial query, you must set the geometry parameter to a Geometry object and specify a valid spatialRelationship. You can optionally provide a query distance and units to query features against a buffer around the given geometry.
For example, to query for all features within 2 miles of a mouse move, you would do the following:
view.on("pointer-move", function(event){
let query = featureLayer.createQuery();
query.geometry = view.toMap(event); // the point location of the pointer
query.distance = 2;
query.units = "miles";
query.spatialRelationship = "intersects"; // this is the default
query.returnGeometry = true;
query.outFields = [ "POPULATION" ];
featureLayerView.queryFeatures(query)
.then(function(response){
// returns a feature set with features containing the
// POPULATION attribute and each feature's geometry
});
});
You could also use where
, for example, to return all features with a population greater than 10,000 within
the 2-mile buffer.
Known Limitations
For client side spatial queries on 3D Object SceneLayerView the Extent of the feature is used when evaluating the spatial relationship with the geometry. This means that a feature might be returned from the query, even though its footprint is not in a spatial relationship with the geometry.
Temporal queries
You can query features based on a given time range by specifying the timeExtent property. The temporal query will return results only if the feature service is published with timeInfo information. The temporal query can also be combined with attribute and geometry queries.
For example, you can use timeExtent and where parameters to query specified hurricane tracks within a given time extent.
// query katrina tracks that took place in Aug 30 - Aug 31, 2005
const query = new Query({
outFields: ["Name, WindSpeed"],
where: "Name = 'Katrina'",
timeExtent: {
start: new Date(2005, 7, 30),
end: new Date(2005, 7, 31)
}
});
featureLayer.queryFeatures(query)
.then(function(response){
// process the results
});
Statistic queries
Rather than return individual features from a query, you can return statistics for field attributes and expressions. Statistic queries are defined by the outStatistics parameter, which requires an array of StatisticDefinition objects.
For example, you can query for the average and total population of counties in the layer mentioned above in the following manner:
// query for the sum of the population in all features
let sumPopulation = {
onStatisticField: "POP_2015", // service field for 2015 population
outStatisticFieldName: "Pop_2015_sum",
statisticType: "sum"
};
// query for the average population in all features
let avgPopulation = {
onStatisticField: "POP_2015", // service field for 2015 population
outStatisticFieldName: "Pop_2015_avg",
statisticType: "avg"
};
// Notice that you can pass a SQL expression as a field name to calculate statistics
let populationChangeDefinition = {
onStatisticField: "POP_2015 - POP_2010", // service field for 2015 population
outStatisticFieldName: "avg_pop_change_2015_2010",
statisticType: "avg"
};
let query = layer.createQuery();
query.where = "STATE_NAME = 'Washington'";
query.outStatistics = [ sumPopulation, avgPopulation, populationChangeDefinition ];
layer.queryFeatures(query)
.then(function(response){
let stats = response.features[0].attributes;
console.log("Total Population in WA": stats.Pop_2015_sum);
console.log("Average Population in WA counties": stats.Pop_2015_avg);
console.log("Average Population change in WA counties": stats.avg_pop_change_2015_2010);
});
Working with results
Query results can be used in a number of ways depending on the use case. Consider the following parameters which impact the format of the resulting feature set.
- returnGeometry - Returning a geometry is useful for displaying results back in the view as graphics, or for conducting further spatial analysis. If the geometry isn't necessary in your workflow, then don't request it to improve app performance.
- outStatistics - Querying for statistics will never return features from the layer, only an object with number properties for the requested statistics.
- returnDistinctValues - Returns the unique values that exist in a field as an array of strings, so no features are returned when this parameter is true.
The fields in the query needs to be available and listed in the FeatureLayerView.availableFields or SceneLayerView.availableFields. Define them either in FeatureLayer.outFields or SceneLayer.outFields.
- See also
Constructors
-
new Query(properties)
-
Parameterproperties Objectoptional
See the properties for a list of all the properties that may be passed into the constructor.
Property Overview
Name | Type | Summary | Class |
---|---|---|---|
Number[] | An array of Object IDs representing aggregate (i.e. more details | Query | |
Boolean | Indicates if the service should cache the query results. more details | Query | |
Number | Datum transformation used for projecting geometries in the query results when outSpatialReference is different than the layer's spatial reference. more details | Query | |
String | The name of the class. more details | Accessor | |
Number | Specifies a search distance from a given geometry in a spatial query. more details | Query | |
String | Specifies the geodatabase version to display for feature service queries. more details | Query | |
Geometry | The geometry to apply to the spatial filter. more details | Query | |
Number | Specifies the number of decimal places for geometries returned by the JSON query operation. more details | Query | |
String[] | Used only in statistical queries. more details | Query | |
String | A condition used with outStatistics and groupByFieldsForStatistics to limit query results to groups that satisfy the aggregation function(s). more details | Query | |
Date | The historic moment to query. more details | Query | |
Number | The maximum distance in units of outSpatialReference used for generalizing geometries returned by the query operation. more details | Query | |
Number | When set, the maximum number of features returned by the query will equal the | Query | |
String | Parameter dictates how the geometry of a multipatch feature will be returned. more details | Query | |
Number | The number of features to retrieve. more details | Query | |
Number[] | An array of ObjectIDs to be used to query for features in a layer. more details | Query | |
String[] | One or more field names used to order the query results. more details | Query | |
String[] | Attribute fields to include in the FeatureSet. more details | Query | |
SpatialReference | The spatial reference for the returned geometry. more details | Query | |
StatisticDefinition[] | The definitions for one or more field-based statistics to be calculated. more details | Query | |
Object[] | Filters features from the layer based on pre-authored parameterized filters. more details | Query | |
Point | Specifies the pixel level to be identified on the X and Y axis. more details | Query | |
Object | Used to project the geometry onto a virtual grid, likely representing pixels on the screen. more details | Query | |
Object[] | Filters features from the layer that are within the specified range values. more details | Query | |
String | The Dimensionally Extended 9 Intersection Model (DE-9IM) matrix relation (encoded as a string) to query the spatial relationship of the input geometry to the layer's features. more details | Query | |
Boolean | If | Query | |
Boolean | If | Query | |
Boolean | If | Query | |
Boolean | If | Query | |
Boolean | If | Query | |
Boolean | If | Query | |
Boolean | If | Query | |
String | For spatial queries, this parameter defines the spatial relationship to query features in the layer or layer view against the input geometry. more details | Query | |
String | This parameter can be either standard SQL92 | Query | |
Number | The zero-based index indicating where to begin retrieving features. more details | Query | |
String | Shorthand for a where clause using "like". more details | Query | |
TimeExtent | A time extent for a temporal query against time-aware layers. more details | Query | |
String | The unit for calculating the buffer distance when distance is specified in spatial queries. more details | Query | |
String | A where clause for the query. more details | Query |
Property Details
-
An array of Object IDs representing aggregate (i.e. cluster) graphics. This property should be used to query features represented by one or more cluster graphics with the given Object IDs.
This is useful in the following scenarios:
- To display features included in the cluster as a collection of graphics.
- To push clustered features to the view's popup for browsing.
- To display statistics of features included in the cluster in the popup.
Known Limitations
This property only applies to LayerView query methods. Support for server-side queries is being considered for a future release.
Example// Will execute query for features represented by the clusterGraphic if( clusterGraphic.isAggregate ){ query.aggregateIds = [ clusterGraphic.getObjectId() ]; }
-
cacheHint Boolean
-
Indicates if the service should cache the query results. It only applies if the layer's capabilities.query.supportsCacheHint 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 or features on app load.
- Queries based on preset input, for example, a drop-down list of US states.
- Queries based on preset extents, for example bookmarks, in web maps.
- Default Value:undefined
-
datumTransformation Number
-
Datum transformation used for projecting geometries in the query results when outSpatialReference is different than the layer's spatial reference. Requires ArcGIS Server service 10.5 or greater.
-
The name of the class. The declared class name is formatted as
esri.folder.className
.
-
distance Number
-
Specifies a search distance from a given geometry in a spatial query. The units property indicates the unit of measurement. In essence, setting this property creates a buffer at the specified size around the input geometry. The query will use that buffer to return features in the layer or layer view that adhere to the indicated spatial relationship.
If querying a feature service, the supportsQueryWithDistance capability must be
true
.
-
gdbVersion String
-
Specifies the geodatabase version to display for feature service queries.
-
The geometry to apply to the spatial filter. The spatial relationship as specified by spatialRelationship will indicate how the geometry should be used to query features.
Known Limitations
Mesh geometry types are currently not supported.
-
geometryPrecision Number
-
Specifies the number of decimal places for geometries returned by the JSON query operation.
-
Used only in statistical queries. When one or more field names are provided in this property, the output statistics will be grouped based on unique values from those fields. This is only valid when outStatistics has been defined.
Examplequery.outStatistics = [{ onStatisticField: "CUSTOMERS", outStatisticFieldName: "avg_customers", statisticType: "avg" }, { onStatisticField: "RATING", outStatisticFieldName: "min_rating", statisticType: "min" }, { onStatisticField: "1=1", outStatisticFieldName: "total_businesses", statisticType: "count" }]; query.groupByFieldsForStatistics = [ "region" ]; // query the above stats for each region in the layer layer.queryFeatures(query).then(displayResults);
-
having String
-
A condition used with outStatistics and groupByFieldsForStatistics to limit query results to groups that satisfy the aggregation function(s).
The following aggregation functions are supported in this clause:
MIN
|MAX
|AVG
|SUM
|STDDEV
|COUNT
|VAR
Aggregation functions used in
having
must be included in theoutStatistics
as well. See the snippet below for an example of how this works.For service-based layer queries, this parameter applies only if the supportsHavingClause property of the layer is
true
. This property is supported on all LayerView queries.Examplequery.outStatistics = [{ onStatisticField: "CUSTOMERS", outStatisticFieldName: "avg_customers", statisticType: "avg" }, { onStatisticField: "RATING", outStatisticFieldName: "min_rating", statisticType: "min" }, { onStatisticField: "1=1", outStatisticFieldName: "total_businesses", statisticType: "count" }]; query.groupByFieldsForStatistics = [ "region" ]; query.having = "AVG(CUSTOMERS) >= 1,000 AND MIN(RATING) >= 3"; // query the above stats for all regions where // the average number of daily customers per business is // greater than 1,000 and the minimum customer rating // for a business within the region is 3 layer.queryFeatures(query).then(displayResults);
-
historicMoment Date
-
The historic moment to query. This parameter applies only if the
supportsQueryWithHistoricMoment
capability of the service being queried istrue
. This setting is provided in the layer resource.
-
maxAllowableOffset Number
-
The maximum distance in units of 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.
-
maxRecordCountFactor Number
-
When set, the maximum number of features returned by the query will equal the
maxRecordCount
of the service multiplied by this factor. The value of this property may not exceed5
.For example, if the
maxRecordCount
of your feature service is2000
, and you set themaxRecordCountFactor
to5
, then the maximum number of features that could be returned by the query is10000
.Known Limitations
Only supported with ArcGIS Online hosted services or ArcGIS Enterprise 10.6 services.
- Default Value:1
-
multipatchOption String
-
Parameter dictates how the geometry of a multipatch feature will be returned. Currently, the only supported value is
xyFootprint
. If indicated, the xy footprint of each multipatch geometry will be returned in the result.Example// url to the layer of interest to query let queryUrl = "https://sampleserver6.arcgisonline.com/arcgis/rest/services/Notes/FeatureServer/0"; let queryObject = new Query({ objectIds: [22], multipatchOption: "xyFootprint", outFields: ["*"], returnGeometry: true }); // call the executeQueryJSON() method query.executeQueryJSON(queryUrl, queryObject).then(function(results){ // results.graphics contains the graphics returned from query });
-
num Number
-
The number of features to retrieve. This option should be used in conjunction with the start property. 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 ofnum
is 10. If neithernum
norstart
properties are provided, then the default value ofnum
is equal to themaxRecordCount
of the service, which can be found at the REST endpoint of the FeatureLayer.
-
An array of ObjectIDs to be used to query for features in a layer.
-
One or more field names used to order the query results. Specify
ASC
(ascending) orDESC
(descending) after the field name to control the order. The default order isASC
.Known Limitations
- If querying a MapImageLayer, then
supportsAdvancedQueries
must betrue
on the service. - For FeatureLayer,
FeatureLayer.capabilities.queryRelated.supportsOrderBy
must betrue
.
- See also
Examplequery.orderByFields = ["STATE_NAME DESC"];
- If querying a MapImageLayer, then
-
Attribute fields to include in the 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
andObjectId
fields for a layer. However, the list of outFields does not need to include these two fields.Known Limitations
- If specifying outFields as expressions on a feature service-based FeatureLayer, the service capabilities
advancedQueryCapabilities.supportsOutFieldSQLExpression
anduseStandardizedQueries
must both be true.
- Default Value:null
Examples// query for field attributes query.outFields = [ "NAME", "STATE_ABBR", "POP04" ];
// 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" ]
- If specifying outFields as expressions on a feature service-based FeatureLayer, the service capabilities
-
outSpatialReference SpatialReferenceautocast
-
The spatial reference for the returned geometry. If not specified, the geometry is returned in the spatial reference of the queried layer.
-
outStatistics StatisticDefinition[]autocast
-
The definitions for one or more field-based statistics to be calculated. If
outStatistics
is specified the only other query parameters that should be used are groupByFieldsForStatistics, orderByFields, text, and where.Known Limitations
For service-based queries,
outStatistics
is only supported on layers wheresupportsStatistics = true
.Examplelet query = new Query(); let statisticDefinition = new StatisticDefinition({ statisticType: "sum", onStatisticField: "POP2000", outStatisticFieldName: "TotalPop" }); query.outStatistics = [ statisticDefinition ];
-
Filters features from the layer based on pre-authored parameterized filters. When value is not specified for any parameter in a request, the default value, that is assigned during authoring time, gets used. Requires an ArcGIS Enterprise service 10.5 or greater. This parameter is only supported with MapImageLayer pointing to a map service.
- Properties
-
name String
The parameter name.
Single value or array of values.
- See also
-
Specifies the pixel level to be identified on the X and Y axis. Defaults to the base resolution of the dataset if not specified. Applicable only to Image Service layers.
-
quantizationParameters Object
-
Used to project the geometry onto a virtual grid, likely representing pixels on the screen. Geometry coordinates are converted to integers by building a grid with a resolution matching the
quantizationParameters.tolerance
. Each coordinate is then snapped to one pixel on the grid.Known Limitations
Only supported with ArcGIS Online hosted services or ArcGIS Enterprise 10.6.1 services.
- Properties
-
extent Extent
An extent defining the quantization grid bounds. Its SpatialReference matches the input geometry spatial reference if one is specified for the query. Otherwise, the extent will be in the layer's spatial reference.
mode StringGeometry coordinates are optimized for viewing and displaying of data.
Possible Values:"view"|"edit"
originPosition StringDefault Value:upper-leftThe integer's coordinates will be returned relative to the origin position defined by this property value.
Possible Values:"upper-left"|"lower-left"
tolerance NumberDefault Value:1The size of one pixel in the units of the outSpatialReference. This number is used to convert coordinates to integers by building a grid with a resolution matching the tolerance. Each coordinate is then snapped to one pixel on the grid. Consecutive coordinates snapped to the same pixel are removed for reducing the overall response size. The units of tolerance will match the units of outSpatialReference. If
outSpatialReference
is not specified, then tolerance is assumed to be in the units of the spatial reference of the layer. If tolerance is not specified, the maxAllowableOffset is used. If tolerance andmaxAllowableOffset
are not specified, a grid of 10,000 * 10,000 grid is used by default.
Examplelet query = new Query(); query.quantizationParameters = { mode: "view", originPosition: "upper-left", tolerance: 4820, extent: layer.fullExtent };
-
Filters features from the layer that are within the specified range values. Requires ArcGIS Enterprise services 10.5 or greater.This parameter is only supported with MapImageLayer pointing to a map service.
- Properties
-
name String
The range id.
Single value or value range.
- See also
-
relationParameter String
-
The Dimensionally Extended 9 Intersection Model (DE-9IM) matrix relation (encoded as a string) to query the spatial relationship of the input geometry to the layer's features. This string contains the test result of each intersection represented in the DE-9IM matrix. Each result is one character of the string and may be represented as either a number (maximum dimension returned: 0,1,2), a Boolean value (T or F), or a mask character (for ignoring results: '*').
Set this parameter when the spatialRelationship is
relation
. The Relational functions for ST_Geometry topic has additional details on how to construct these strings.Known Limitations
This property does not apply to layer view or CSVLayer queries.
Examplelet query = new Query({ relationParameter: "FFFTTT***" });
-
returnCentroid Boolean
-
If
true
, each feature in the returned FeatureSet will be returned with a centroid. This property only applies to queries against polygon FeatureLayers.Known Limitations
Only supported with ArcGIS Online hosted services or ArcGIS Enterprise 10.6.1 services.
- Default Value:false
-
returnDistinctValues Boolean
-
If
true
then the query returns distinct values based on the field(s) specified in outFields.Known Limitations
- For service-based queries, this parameter applies only if the
supportsAdvancedQueries
capability of the layer istrue
. - Make sure to set returnGeometry to
false
whenreturnDistinctValues
is true. Otherwise, reliable results will not be returned.
- Default Value:false
- For service-based queries, this parameter applies only if the
-
returnExceededLimitFeatures Boolean
-
If
true
, then all features are returned for each tile request, even if they exceed the maximum record limit per query indicated on the service bymaxRecordCount
. Iffalse
, the tile request will not return any features if themaxRecordCount
limit is exceeded.Known Limitations
Only supported with ArcGIS Online hosted services or ArcGIS Enterprise 10.6 services.
- Default Value:true
-
returnGeometry Boolean
-
If
true
, each feature in the returned FeatureSet includes the geometry.Known Limitations
For FeatureLayerView queries, the precision of the returned geometries will only be as high as the view's scale resolution since geometries are quantized for improved performance on the view. The smaller the scale, the lower the resolution of the geometries.
This limitation does not apply to FeatureLayer, CSVLayer, and CSVLayerView queries.
- Default Value:false
-
returnM Boolean
-
If
true
, and returnGeometry istrue
, then m-values are included in the geometry.
-
returnQueryGeometry Boolean
-
If
true
, the query geometry will be returned with the query results. It is useful for getting the buffer geometry generated when querying features by distance or getting the query geometry projected in the outSpatialReference of the query. The query geometry is returned only for client-side queries and hosted feature services and if the layer's capabilities.query.supportsQueryGeometry istrue
.- Default Value:false
-
returnZ Boolean
-
If
true
, and returnGeometry istrue
, then z-values are included in the geometry.Known Limitations
FeatureLayerView.queryFeatures(), GeoJSONLayerView.queryFeatures(), and OGCFeatureLayerView.queryFeatures() results do not include the z-values when called in 2D MapView even if
returnZ
is set totrue
.
-
spatialRelationship String
-
For spatial queries, this parameter defines the spatial relationship to query features in the layer or layer view against the input 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 geometry.The
contains
spatial relationship returns features in the layer view that are completely contained by the query geometry.The
crosses
spatial relationship returns features in the layer view when the interior of a 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 geometry.The
overlaps
spatial relationship returns features in the layer view that overlap the 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 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 geometry. In other words, the filter geometry is completelywithin
the features in the layer view. It is opposite ofcontains
.The
disjoint
spatial relationship returns features in the layer view that do not intersect the query geometry in anyway. Opposite ofintersects
.Known Limitations
- For spatial queries on 3D Object SceneLayers and BuildingSceneLayers the spatial relationship is evaluated based on the 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 geometry.
- Currently only
intersects
,contains
, anddisjoint
spatialRelationships are supported on spatial queries for 3D Object SceneLayers and BuildingSceneLayers.
Possible Values:"intersects"|"contains"|"crosses"|"disjoint"|"envelope-intersects"|"index-intersects"|"overlaps"|"touches"|"within"|"relation"
- Default Value:intersects
Examplelet query = new Query({ spatialRelationship: "contains" });
-
sqlFormat String
-
This parameter can be either standard SQL92
standard
or it can use the native SQL of the underlying datastorenative
. See the ArcGIS REST API documentation for more information.Known Limitations
This property does not apply to layer view or CSVLayer queries.
Possible Values:"none"|"standard"|"native"
- Default Value:none
-
start Number
-
The zero-based index indicating where to begin retrieving features. This property should be used in conjunction with num. Use this to implement paging and retrieve "pages" of results when querying. Features are sorted ascending by object ID by default.
-
text String
-
Shorthand for a where clause using "like". The field used is the display field defined in the services directory.
- Default Value:null
-
timeExtent TimeExtentautocast
-
A time extent for a temporal query against time-aware layers. 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.
Examplelet 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) { ... });
-
units String
-
The unit for calculating the buffer distance when 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 istrue
.Possible Values:"feet"|"miles"|"nautical-miles"|"us-nautical-miles"|"meters"|"kilometers"
- Default Value:null
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);
-
where String
-
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.
Examplesquery.where = "NAME = '" + stateName + "'";
query.where = "POP04 > " + population;
Method Overview
Name | Return Type | Summary | Class |
---|---|---|---|
Adds one or more handles which are to be tied to the lifecycle of the object. more details | Accessor | ||
Query | Creates a deep clone of Query object. more details | Query | |
* | Creates a new instance of this class and initializes it with values from a JSON object generated from an ArcGIS product. more details | Query | |
Boolean | Returns true if a named group of handles exist. more details | Accessor | |
Removes a group of handles owned by the object. more details | Accessor | ||
Object | Converts an instance of this class to its ArcGIS portal JSON representation. more details | Query |
Method Details
-
addHandles(handleOrHandles, groupKey)inheritedSince: ArcGIS Maps SDK for JavaScript 4.25
-
Adds one or more handles which are to be tied to the lifecycle of the object. The handles will be removed when the object is destroyed.
// Manually manage handles const handle = reactiveUtils.when( () => !view.updating, () => { wkidSelect.disabled = false; }, { once: true } ); this.addHandles(handle); // Destroy the object this.destroy();
ParametershandleOrHandles WatchHandle|WatchHandle[]Handles marked for removal once the object is destroyed.
groupKey *optionalKey identifying the group to which the handles should be added. All the handles in the group can later be removed with Accessor.removeHandles(). If no key is provided the handles are added to a default group.
-
clone(){Query}
-
Creates a deep clone of Query object.
ReturnsType Description Query A new instance of a Query object equal to the object used to call .clone()
.
-
fromJSON(json){*}static
-
Creates a new instance of this class and initializes it with values from a JSON object generated from an ArcGIS product. The object passed into the input
json
parameter often comes from a response to a query operation in the REST API or a toJSON() method from another ArcGIS product. See the Using fromJSON() topic in the Guide for details and examples of when and how to use this function.Parameterjson ObjectA JSON representation of the instance in the ArcGIS format. See the ArcGIS REST API documentation for examples of the structure of various input JSON objects.
ReturnsType Description * Returns a new instance of this class.
-
Since: ArcGIS Maps SDK for JavaScript 4.25
-
Returns true if a named group of handles exist.
ParametergroupKey *optionalA group key.
ReturnsType Description Boolean Returns true
if a named group of handles exist.Example// Remove a named group of handles if they exist. if (obj.hasHandles("watch-view-updates")) { obj.removeHandles("watch-view-updates"); }
-
removeHandles(groupKey)inheritedSince: ArcGIS Maps SDK for JavaScript 4.25
-
Removes a group of handles owned by the object.
ParametergroupKey *optionalA group key or an array or collection of group keys to remove.
Exampleobj.removeHandles(); // removes handles from default group obj.removeHandles("handle-group"); obj.removeHandles("other-handle-group");
-
toJSON(){Object}
-
Converts an instance of this class to its ArcGIS portal JSON representation. See the Using fromJSON() guide topic for more information.
ReturnsType Description Object The ArcGIS portal JSON representation of an instance of this class.