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


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


基本信息

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

类: esri/views/layers/SceneLayerView

继承: SceneLayerView > LayerView > Accessor

自从:用于 JavaScript 4.3 的 ArcGIS API

用法说明

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

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


对图层视图中的要素执行 Query 并返回 FeatureSet 。如果未提供查询参数,则返回所有加载的特征。

要针对场景服务中的所有要素执行查询,而不仅仅是为当前视图加载的要素,您必须使用SceneLayer.queryFeatures() 方法。

要对 SceneLayerView 进行基于属性的查询,您需要在 SceneLayer 的 outFields 属性中指定必填字段,以确保属性值在客户端上可用于查询。您可以使用 availableFields 检查客户端上可用的字段。

已知限制

  • 空间查询与 projection engine 文档中列出的限制相同。
  • 在计算与 query geometry 的空间关系时,对 3D 对象 SceneLayerView 的空间查询使用要素的 Extent 而不是足迹。这意味着可能会从查询中返回一个要素,即使它的足迹与几何图形没有空间关系。
  • 目前在空间 queries 上仅支持 intersectscontainsdisjoint spatialRelationships
  • 如果 SceneLayerView 具有以下任何一项,则当前不支持空间查询SpatialReference
    • GDM 2000 (4742) - 马来西亚
    • Gsterberg (Ferro) (8042) - 奥地利/捷克共和国
    • ISN2016 (8086) - 冰岛
    • SVY21 (4757) - 新加坡

参数:

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

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

options Object
可选的

具有以下属性的对象。

规格:
signal

AbortSignal

可选的

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

返回:

类型 说明
Promise<FeatureSet> 解决后,将返回 FeatureSet。如果找到零个结果,则该集合将为空。

例子:

let layer = new SceneLayer({
  url: ssUrl  // points to a Scene Service layer url
});

// returns loaded features from the layer view that match the query
let query = new Query();
query.objectIds = [10, 125, 126, 200, 201];
query.outFields = ["NAME", "STATE_ABBR", "POP04"];

view.whenLayerView(layer).then(function(layerView){
 watchUtils.whenNotOnce(layerView, "updating")
   .then(function() {
     return layerView.queryFeatures(query);
   })
   .then(function(result) {
     console.log(result.features); // prints the client-side graphics to the console
   });
});
let layer = new SceneLayer({
  url: ssUrl  // points to a Scene Service layer url
});

// returns all loaded features from the layer view
view.whenLayerView(layer).then(function(layerView){
  layerView.watch("updating", function(val){
    if(!val){  // wait for the layer view to finish updating
      layerView.queryFeatures().then(function(result){
        console.log(result.features);  // prints all loaded client-side graphics to the console
      });
    }
  });
});

相关用法


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