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


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


基本信息

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

类: esri/views/layers/SceneLayerView

继承: SceneLayerView > LayerView > Accessor

自从:用于 JavaScript 4.3 的 ArcGIS API

用法说明

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

queryObjectIds (query, options) {Promise<Number[]>}


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

要直接从场景服务而不是为当前视图加载的要素查询ObjectIDs 要素,您必须使用SceneLayer.queryObjectIds() 方法。

要对 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

指定查询的属性。如果未提供查询参数,则返回所有加载的特征。

options Object
可选的

具有以下属性的对象。

规格:
signal

AbortSignal

可选的

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

返回:

类型 说明
Promise<Number[]> 解析后,返回一个数字数组,表示满足查询的特征的ObjectIDs。

例子:

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

// returns all the Ids from the features in the layer view
view.whenLayerView(layer).then(function(layerView){
  return layerView.queryObjectIds();
}).then(function(ids){
  console.log(ids);  // prints the ids of all the client-side graphics to the console
});

相关用法


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