query

AMD: require(["geoscene/rest/query"], (query) => { /* 代码 */ });
ESM: import * as query from "@geoscene/core/rest/query";
Object: geoscene/rest/query
起始版本: GeoScene API for JavaScript 4.22

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

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

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

方法列表

属性 返回值类型 描述 Object
Promise<Object>更多信息

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

更多信息query
Promise<Number>更多信息

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

更多信息query
Promise<Object>更多信息

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

更多信息query
Promise<Number[]>更多信息

对 url 参数中指定的图层执行查询。

更多信息query
Promise<FeatureSet>更多信息

对 url 参数中指定的图层执行查询。

更多信息query
Promise<FeatureSet>更多信息

对 url 参数中指定的图层执行查询。

更多信息query
Promise<Object>更多信息

对 url 参数中指定的图层或表执行关系查询。

更多信息query

方法详细说明

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

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

参数:
url String

表示要素图层(通常是要素服务图层或地图服务图层)的 GeoScene 服务器 REST 资源的 URL。

attachmentQuery AttachmentQuery autocast
自动转换自 Object

指定查询的附件参数。

requestOptions Object
optional

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

返回值:
类型 描述
Promise<Object> 解析后,返回包含按源要素 objectId 分组的 AttachmentInfos 的对象。
示例:
executeForCount(url, query, requestOptions){Promise<Number>}

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

参数:
url String

表示要素图层(通常是要素服务图层或地图服务图层)的 GeoScene 服务器 REST 资源的 URL。

query Query autocast
自动转换自 Object

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

requestOptions Object
optional

用于数据请求的附加options(将覆盖构造期间定义的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, {  // 转换成 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 服务器 REST 资源的 URL。

params Query

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

requestOptions Object
optional

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

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

对 url 参数中指定的层执行查询。结果是满足输入查询的要素的对象 ID 数组。

参数:
url String

表示要素图层(通常是要素服务图层或地图服务图层)的 GeoScene 服务器 REST 资源的 URL。

query Query autocast
自动转换自 Object

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

requestOptions Object
optional

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

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

  query.executeForIds(queryUrl, {  // 转换成 new Query()
     where: "SUB_REGION = 'Pacific'"
  }).then(function(results){
    console.log(results);  // an array of object IDs
  });
  ...
});
executeQueryJSON(url, query, requestOptions){Promise<FeatureSet>}

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

参数:
url String

表示要素图层(通常是要素服务图层或地图服务图层)的 GeoScene 服务器 REST 资源的 URL。

query Query autocast
自动转换自 Object

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

requestOptions Object
optional

用于数据请求的附加options(将覆盖构造期间定义的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.geosceneonline.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 参数中指定的层执行 查询。结果以 FeatureSet 形式返回,可以使用.then()方法访问。FeatureSet 包含一组 图形 要素,可以添加到地图中。如果未找到结果,则不会填充此数组。

参数:
url String

表示要素图层(通常是要素服务图层或地图服务图层)的 GeoScene 服务器 REST 资源的 URL。

query Query autocast
自动转换自 Object

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

requestOptions Object
optional

用于数据请求的附加options(将覆盖构造期间定义的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.geosceneonline.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 参数中指定的图层或表执行 关系查询如果查询成功,返回的结果是 按源图层或表objectIds分组的 FeatureSets 。

参数:
url String

表示要素图层(通常是要素服务图层或地图服务图层)的 GeoScene 服务器 REST 资源的 URL。

relationshipQuery RelationshipQuery autocast
自动转换自 Object

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

requestOptions Object
optional

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

返回值:
类型 描述
Promise<Object> 解析后,结果是按源图层或表 objectId 分组的FeatureSet 。每个 FeatureSet 包含一个 图形 特征数组, 包括用户请求的字段的值。
示例代码:
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);
  });

Your browser is no longer supported. Please upgrade your browser for the best experience. See our browser deprecation post for more details.