query

AMD: require(["geoscene/rest/query"], (query) => { /* code goes here */ });
ESM: import * as query from "@geoscene/core/rest/query";
类: geoscene/rest/query
起始版本:GeoScene Maps SDK for JavaScript 4.19

在图层上执行不同类型的查询操作。最常用的方法是 executeQueryJSON(),它对作为参数传递给函数的 Query 对象中定义的 JSON 结果执行查询 。 executeQueryJSON() 返回解析为 FeatureSet 的 Promise,其中包含图层中满足 Query 的要素。

您还可以获得满足查询的要素数量、要素范围相关要素或与要素关联的记录、要素的附件或要素的 featureId

例如,在处理世界城市的要素图层时,要获取人口超过 100 万人的城市的要素集,请使用以下代码:

另请参阅
示例
// query featureLayer for cities with a population greater than one million people
require([
  "geoscene/rest/query", ...
], function(query, ... ) {
  // url to the layer of interest to query
  let queryUrl = "https://sampleserver6.arcgisonline.com/arcgis/rest/services/SampleWorldCities/MapServer/0";

  query.executeQueryJSON(queryUrl, {  // autocasts as new Query()
     where: "POP > 1000000"
  }).then(function(results){
    // results is a FeatureSet containing an array of graphic features
    console.log(results.graphics);
  }, function(error){
       console.log(error); // will print error in console, if any
     });
});

方法概述

名称 返回值类值 描述 对象
Promise<Object>

查询与 url 参数中指定的要素图层中的要素相关联的附件信息 。

更多详情
query
Promise<number>

获取满足输入查询的要素数的计数。

更多详情
query
Promise<Object>

获取满足输入查询的要素的范围。

更多详情
query
Promise<number[]>

对 url 参数中指定的图层执行 Query

更多详情
query
Promise<number>

针对要素服务执行 TopFeaturesQuery 并返回满足查询的要素或记录的计数。

更多详情
query
Promise<Object>

对要素服务执行 TopFeaturesQuery 并返回满足查询的要素的范围

更多详情
query
Promise<number[]>

对要素服务执行 TopFeaturesQuery,并返回满足查询的要素的对象 ID 数组。

更多详情
query
Promise<FeatureSet>

对 url 参数中指定的图层执行 Query

更多详情
query
Promise<FeatureSet>

对 url 参数中指定的图层执行 Query

更多详情
query
Promise<Object>

对 url 参数中指定的图层或表执行 RelationshipQuery

更多详情
query
Promise<FeatureSet>

对要素服务执行 TopFeaturesQuery 并在 promise 解决后返回 FeatureSet

更多详情
query

方法详细说明

executeAttachmentQuery(url, attachmentQuery, requestOptions){Promise<object>}

查询与 url 参数中指定的要素图层中的要素相关联的附件信息 。如果图层的 capabilities.data.supportsAttachment 设置为 false,它将返回错误。

参数
url String

指向 GeoScene Server REST 资源的 URL,该资源表示一个要素图层 (通常是要素服务图层或地图服务图层)。

attachmentQuery AttachmentQuery autocast
自动转换自 Object

指定查询的附件参数。

requestOptions Object
optional

用于数据请求的附加选项(将覆盖构造期间定义的 requestOptions)。

返回
类型 描述
Promise<Object> 解析后,返回一个对象,其中包含按源要素 objectIds 分组的 AttachmentInfos
另请参阅
executeForCount(url, query, requestOptions){Promise<number>}

获取满足输入查询的要素数的计数。

参数
url String

指向 GeoScene Server REST 资源的 URL,该资源表示一个要素图层 (通常是要素服务图层或地图服务图层)。

自动转换自 Object

指定查询的属性和空间过滤器。

requestOptions Object
optional

用于数据请求的附加选项(将覆盖构造期间定义的 requestOptions)。

返回
类型 描述
Promise<number> 解析后,结果是满足输入查询的要素数。
示例
require([
  "geoscene/rest/query", ...
], function(query, ... ) {
  // url to the layer of interest to query
  let queryUrl = "https://sampleserver6.arcgisonline.com/arcgis/rest/services/Census/MapServer/3";

  query.executeForCount(queryUrl, {  // autocasts as new Query()
     where: "POP07_SQMI > 100"
  }).then(function(count){
    console.log(count, " features matched the input query");
  }, function(error){
       console.log(error); // will print error in console if unsupported layers are used
     });
});
executeForExtent(url, params, requestOptions){Promise<object>}

获取满足输入查询的要素的范围。满足输入查询的要素计数也会在解析时返回。

参数
url String

指向 GeoScene Server REST 资源的 URL,该资源表示一个要素图层 (通常是要素服务图层或地图服务图层)。

params Query

指定查询的属性和空间过滤器。

requestOptions Object
optional

用于数据请求的附加选项(将覆盖构造期间定义的 requestOptions)。

返回
类型 描述
Promise<Object> 解析后,返回满足输入查询的要素的范围和计数。有关详细信息,请参阅下面的对象规范表。
属性 类型 描述
count number 满足输入查询的要素数量。
extent Extent 满足查询的要素范围。
executeForIds(url, query, requestOptions){Promise<number[]>}

对 url 参数中指定的图层执行 Query。结果是满足输入查询的要素的对象 id 数组。ID 数组响应中返回的对象 ID 数量没有限制。

参数
url String

指向 GeoScene Server REST 资源的 URL,该资源表示一个要素图层 (通常是要素服务图层或地图服务图层)。

自动转换自 Object

指定查询的属性和空间过滤器。

requestOptions Object
optional

用于数据请求的附加选项(将覆盖构造期间定义的 requestOptions)。

返回
类型 描述
Promise<number[]> 解析后,结果为满足输入查询的要素的对象 ID 数组。
示例
require([
  "geoscene/rest/query", ...
], function(query, ... ) {
  // url to the layer of interest to query
  let queryUrl = "https://sampleserver6.arcgisonline.com/arcgis/rest/services/Census/MapServer/3";

  query.executeForIds(queryUrl, {  // autocasts as new Query()
     where: "SUB_REGION = 'Pacific'"
  }).then(function(results){
    console.log(results);  // an array of object IDs
  });
  ...
});
executeForTopCount(url, topFeaturesQuery, requestOptions){Promise<number>}
起始版本:GeoScene Maps SDK for JavaScript 4.25

针对要素服务执行 TopFeaturesQuery 并返回满足查询的要素或记录的计数。

已知限制

  • 目前,executeForTopCount 仅支持服务器端 FeatureLayers
参数
url String

指向 GeoScene Server REST 资源的 URL,该资源表示一个要素图层 (通常是要素服务图层或地图服务图层)。

topFeaturesQuery TopFeaturesQuery

指定查询的属性、空间、时间和顶部项目过滤器。必须设置 topFilter 参数。

requestOptions Object
optional

用于数据请求的附加选项(将覆盖构造期间定义的 requestOptions)。

返回
类型 描述
Promise<number> 解析后,可返回满足查询的要素数。
另请参阅
示例
// set the query to return a count
// of features that has most sales grouped by regions.
// top query will run against all features available in the service
const query = new TopFeaturesQuery({
  topFilter: new TopFilter({
    topCount: 1,
    groupByFields: ["Region"],
    orderByFields: ["Sales DESC"]
  })
});
executeForTopCount(url, query)
  .then(function(response){
     // returns the number of the features that have the most sales by region.
   });
executeForTopExtents(url, topFeaturesQuery, outSpatialReference, requestOptions){Promise<object>}
起始版本:GeoScene Maps SDK for JavaScript 4.25

对要素服务执行 TopFeaturesQuery 并返回满足查询的要素的范围

已知限制

  • 目前,executeForTopExtents 仅支持服务器端 FeatureLayers
参数
url String

指向 GeoScene Server REST 资源的 URL,该资源表示一个要素图层 (通常是要素服务图层或地图服务图层)。

topFeaturesQuery TopFeaturesQuery

指定查询的属性、空间、时间和顶部项目过滤器。必须设置 topFilter 参数。

outSpatialReference SpatialReference

所需的输出空间参考。

requestOptions Object
optional

用于数据请求的附加选项(将覆盖构造期间定义的 requestOptions)。

返回
类型 描述
Promise<Object> 解析后,返回满足输入查询的要素的范围和计数。有关详细信息,请参阅下面的对象规范表。
属性 类型 描述
count Number 满足查询的要素数。
extent Extent 满足查询的要素范围。
另请参阅
示例
// Get the count and extent of the three highest magnitude earthquakes
// in each region.
const query = new TopFeaturesQuery({
  where: "mag >= 6",
  geometry: studyExtent,
  topFilter: new TopFilter({
    topCount: 3,
    groupByFields: ["region"],
    orderByFields: ["mag DESC"]
  })
});
executeForTopExtents(url, query)
  .then(function(response){
     // returns the count and extent of top three earthquakes within each region
   });
executeForTopIds(url, topFeaturesQuery, outSpatialReference, requestOptions){Promise<number[]>}
起始版本:GeoScene Maps SDK for JavaScript 4.25

对要素服务执行 TopFeaturesQuery,并返回满足查询的要素的对象 ID 数组。

已知限制

  • 目前,executeForTopIds 仅支持服务器端 FeatureLayers
参数
url String

指向 GeoScene Server REST 资源的 URL,该资源表示一个要素图层 (通常是要素服务图层或地图服务图层)。

topFeaturesQuery TopFeaturesQuery

指定查询的属性、空间、时间和顶部项目过滤器。必须设置 topFilter 参数。

outSpatialReference SpatialReference

所需的输出空间参考。

requestOptions Object
optional

用于数据请求的附加选项(将覆盖构造期间定义的 requestOptions)。

返回
类型 描述
Promise<number[]> 解析后,返回一个数字数组,表示满足查询的要素的对象 ID。
另请参阅
示例
// Get the objectIds top three earthquakes
// grouped by regions and ordered by their magnitude levels
// top query will only run against earthquakes that have mag >=6.
const query = new TopFeaturesQuery({
  where: "mag >= 6",
  topFilter: new TopFilter({
    topCount: 3,
    groupByFields: ["region"],
    orderByFields: ["mag DESC"]
  })
});
executeTopFeaturesQuery(url, query)
  .then(function(response){
     // returns an array of object ids of top three earthquakes within each region
   });
executeQueryJSON(url, query, requestOptions){Promise<FeatureSet>}

对 url 参数中指定的图层执行 Query。结果以 FeatureSet 的形式返回,可以使用 .then() 方法访问。FeatureSet 包含一组 Graphic 要素,可将其添加到地图中。如果未找到任何结果,则不会填充此数组。

参数
url String

指向 GeoScene Server REST 资源的 URL,该资源表示一个要素图层 (通常是要素服务图层或地图服务图层)。

自动转换自 Object

指定查询的属性和空间过滤器。

requestOptions Object
optional

用于数据请求的附加选项(将覆盖构造期间定义的 requestOptions)。

返回
类型 描述
Promise<FeatureSet> 解析后,将返回包含图形要素数组的 FeatureSet
示例
require([
  "geoscene/rest/query", "geoscene/rest/support/Query", ...
], function(query, Query, ... ) {
  // url to the layer of interest to query
  let queryUrl = "https://sampleserver6.arcgisonline.com/arcgis/rest/services/Census/MapServer/3";

  // create the Query object
  let queryObject = new Query();
  queryObject.where = "STATE_NAME = 'Washington'";
  queryObject.outSpatialReference = { wkid:4269 };
  queryObject.returnGeometry = true;
  queryObject.outFields = [ "HOUSEHOLDS" ];

  // call the executeQueryJSON() method
  query.executeQueryJSON(queryUrl, queryObject).then(function(results){
    // results.graphics contains the graphics returned from query
  });
  ...
});
executeQueryPBF(url, query, requestOptions){Promise<FeatureSet>}

对 url 参数中指定的图层执行 Query。结果以 FeatureSet 的形式返回,可以使用 .then() 方法访问。FeatureSet 包含一组 Graphic 要素,可将其添加到地图中。如果未找到任何结果,则不会填充此数组。

参数
url String

指向 GeoScene Server REST 资源的 URL,该资源表示一个要素图层 (通常是要素服务图层或地图服务图层)。

自动转换自 Object

指定查询的属性和空间过滤器。

requestOptions Object
optional

用于数据请求的附加选项(将覆盖构造期间定义的 requestOptions)。

返回
类型 描述
Promise<FeatureSet> 解析后,将返回包含图形要素数组的 FeatureSet
示例
require([
  "geoscene/rest/query", "geoscene/rest/support/Query", ...
], function(query, Query, ... ) {
  // url to the layer of interest to query
  let queryUrl = "https://sampleserver6.arcgisonline.com/arcgis/rest/services/Census/MapServer/3";

  // create the Query object
  let queryObject = new Query();
  queryObject.where = "STATE_NAME = 'Washington'";
  queryObject.outSpatialReference = { wkid:4269 };
  queryObject.returnGeometry = true;
  queryObject.outFields = [ "HOUSEHOLDS" ];

  // call the executeQueryPBF() method
  query.executeQueryPBF(queryUrl, queryObject).then(function(results){
    // results.graphics contains the graphics returned from query
  });
  ...
});
executeRelationshipQuery(url, relationshipQuery, requestOptions){Promise<object>}

对 url 参数中指定的图层或表执行 RelationshipQuery。如果查询成功,则返回的结果是按源图层或表对象 id 分组的 FeatureSets

参数
url String

指向 GeoScene Server REST 资源的 URL,该资源表示一个要素图层 (通常是要素服务图层或地图服务图层)。

relationshipQuery RelationshipQuery autocast
自动转换自 Object

指定用于从图层或表中查询相关要素或记录的关系参数。

requestOptions Object
optional

用于数据请求的附加选项(将覆盖构造期间定义的 requestOptions)。

返回
类型 描述
Promise<Object> 解析后,结果为按源图层或表 objectIds 分组的 FeatureSets。每个 FeatureSet 均包含一个 Graphic 要素数组,包括用户请求的字段值。
示例
require([
  "geoscene/rest/query", "geoscene/rest/support/RelationshipQuery", ...
], function(query, RelationshipQuery, ... ) {
  // url to the layer of interest to query
  let queryUrl = "...";

  // specify relationship query parameter
  const queryRelationship = new RelationshipQuery({
     outFields: ["*"],
     relationshipId: relationshipId,
     objectIds: [385, 416]
  });

  // query related features that meet the query parameters
  query.executeRelationshipQuery(queryUrl, queryRelationship).then((results) => {
     console.log("query results", results);
  })
  .catch((error) => {
     console.log("query error", error);
  });
executeTopFeaturesQuery(url, topFeaturesQuery, outSpatialReference, requestOptions){Promise<FeatureSet>}
起始版本:GeoScene Maps SDK for JavaScript 4.25

对要素服务执行 TopFeaturesQuery 并在 promise 解决后返回 FeatureSetFeatureSet 包含一组按指定字段分组和排序的顶级要素。例如,您可以调用此方法来查询按州名分组的前三个县,同时根据其人口按降序排列。

已知限制

  • 目前,executeTopFeaturesQuery 仅支持服务器端 FeatureLayers
参数
url String

指向 GeoScene Server REST 资源的 URL,该资源表示一个要素图层 (通常是要素服务图层或地图服务图层)。

topFeaturesQuery TopFeaturesQuery

指定查询的属性、空间、时间和顶部项目过滤器。必须设置 topFilter 参数。

outSpatialReference SpatialReference

所需的输出空间参考。

requestOptions Object
optional

用于数据请求的附加选项(将覆盖构造期间定义的 requestOptions)。

返回
类型 描述
Promise<FeatureSet> 解析后,将返回一个 FeatureSet,其中包含对指定字段进行分组和排序的要素数组。
另请参阅
示例
// Query the most visited national parks in each state
// and order them by the most visited
// query will run against all features available in the service
const query = new TopFeaturesQuery({
  outFields: ["State, TOTAL, Park"],
  topFilter: new TopFilter({
    topCount: 1,
    groupByFields: ["State"],
    orderByFields: ["TOTAL DESC"]
  })
});
executeTopFeaturesQuery(url, query)
  .then(function(response){
     // returns a feature set with features containing the most visited
     // national park in each state ordered by the number of visits.
     // The following attributes are returned as well: State, TOTAL, Park
   });

您的浏览器不再受支持。请升级您的浏览器以获得最佳体验。请参阅浏览器弃用帖子以获取更多信息