当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


JavaScript ArcGIS FeatureLayerView.queryFeatures用法及代码示例


基本信息

以下是所在类或对象的基本信息。

类: esri/views/layers/FeatureLayerView

继承: FeatureLayerView > LayerView > Accessor

自从:用于 JavaScript 4.0 的 ArcGIS API

用法说明

FeatureLayerView.queryFeatures函数(或属性)的定义如下:

queryFeatures (query, options) {Promise<FeatureSet>}


针对可在 LayerView 中绘制的要素执行 Query 并返回 FeatureSet 。如果未提供查询参数,则返回所有可用于绘制的要素及其在客户端上可用的属性。对于客户端属性查询,availableFields列表中应存在相关字段,查询才能成功。

要对要素服务中的所有要素(而不仅仅是客户端中的要素)执行查询,您必须使用 FeatureLayer.queryFeatures() 方法。

已知限制

  • 在针对 layerView 执行的属性查询中使用的属性值区分大小写。
  • 空间查询是针对 layerView 中的量化几何图形执行的。 layerView 几何图形的分辨率仅与视图的比例分辨率一样精确。因此,同一查询在不同规模下执行时的结果可能会有所不同。这也意味着从任何 layerView 查询返回的几何图形同样将具有相同的视图比例分辨率。
  • 空间查询与 projection engine 文档中列出的限制相同。
  • 如果 FeatureLayerView 具有以下任何一项,则当前不支持空间查询SpatialReference
    • GDM 2000 (4742) - 马来西亚
    • Gsterberg (Ferro) (8042) - 奥地利/捷克共和国
    • ISN2016 (8086) - 冰岛
    • SVY21 (4757) - 新加坡

参数:

类型说明
query Query autocast
可选的
来自 Object

指定查询的属性和空间过滤器。当此参数未传递给queryFeatures() 方法时,将返回所有可用于绘图的函数及其在客户端上可用的属性。要仅返回视图中可见的要素,请将查询对象中的 geometry 参数设置为视图的范围。

options Object
可选的

具有以下属性的对象。

规格:
signal

AbortSignal

可选的

可用于中止异步任务的信号对象。当发出中止信号时,返回的 Promise 将被名为 AbortErrorError 拒绝。另请参阅AbortController,了解有关如何构建可用于传递中止信号的控制器的更多信息。

返回:

类型 说明
Promise<FeatureSet> 解析后,将返回包含图形特征数组的 FeatureSet

例子:

let layer = new FeatureLayer({
  url: fsUrl  // points to a Feature Service layer url
});

let query = new Query();
query.geometry = new Extent({
 xmin: -9177811,
 ymin: 4247000,
 xmax: -9176791,
 ymax: 4247784,
 spatialReference: 102100
});
query.spatialRelationship = "intersects";

view.whenLayerView(layer).then(function(layerView){
  layerView.watch("updating", function(val){
    if(!val){  // wait for the layerview to finish updating
      layerView.queryFeatures(query).then(function(results){
        console.log(results.features);  // prints the array of client-side graphics to the console
      });
    }
  });
});
let layer = new FeatureLayer({
  url: fsUrl  // points to a Feature Service layer url
});

// returns all the graphics from the layerView
view.whenLayerView(layer).then(function(layerView){
  layerView.watch("updating", function(val){
    if(!val){  // wait for the layerView to finish updating
      layerView.queryFeatures().then(function(results){
        console.log(results.features);  // prints all the client-side graphics to the console
      });
    }
  });
});
layerView.queryFeatures({
  geometry: mapPoint,
  // 6 pixels around a point at the view resolution to query around a finger.
  distance: view.resolution * 6,
});

相关用法


注:本文由纯净天空筛选整理自arcgis.com大神的英文原创作品 FeatureLayerView.queryFeatures。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。