FeatureFilter

AMD: require(["geoscene/layers/support/FeatureFilter"], (FeatureFilter) => { /* 代码 */ });
ESM: import FeatureFilter from "@geoscene/core/layers/support/FeatureFilter";
类: geoscene/layers/support/FeatureFilter
继承于: FeatureFilter Accessor
起始版本: GeoScene API for JavaScript 4.22

此类定义用于在 featureEffect 图层视图上设置客户端过滤器的参数。 一旦定义了 FeatureFilter 的属性,就可以使用它来设置图层视图或 FeatureEffect 过滤器属性。

您可以按attributestimegeometry 距离几何设置过滤器。 仅显示满足过滤器中指定要求的要素。 过滤器仅影响要素可见性。 它们不返回与过滤要素相关的几何或属性信息。 必须调用 queryFeatures 方法才能访问附加信息。

FeatureFilter 针对可在客户端绘制的功能运行。 客户端功能针对性能进行了优化,因此,功能过滤结果并不总是准确的。 如果您需要针对图层中可用的所有要素运行过滤器,请使用图层的 queryFeatures() 方法或  definitionExpression 属性。 有关更多信息,请参阅查询和过滤指南文档

// 显示水量百分比超过 30% 的雨量计
// 以及雨量计是否完全包含在过滤器
// 几何形状周围 10 英里的缓冲区中 
featureLayerView.filter = new FeatureFilter({
  where: "percentile >= 30",
  geometry: filterPolygon,
  spatialRelationship: "contains",
  distance: 10,
  units: "miles"
});

screen-size-perspective

示例:

构造函数

new FeatureFilter(properties)
参数:
properties Object
optional

所有可传入构造函数的属性,请参见属性列表

示例代码:
// 典型用法
const filter = new FeatureFilter({
  where: "magnitude >= 3"
});
layerView.filter = filter;

属性列表

可以设置、检索或监听的属性。参见 使用属性
展示继承属性 隐藏继承属性
属性 类型 描述
String更多信息

类名。

更多信息Accessor
Number更多信息

指定与空间过滤器中给定几何的搜索距离。

更多信息FeatureFilter
Geometry更多信息

应用于空间过滤器的几何体。

更多信息FeatureFilter
Number[]更多信息

要筛选的要素的 objectId 数组。

更多信息FeatureFilter
String更多信息

对于空间过滤器,此参数定义图层视图中的要素与过滤器几何的过滤空间关系

更多信息FeatureFilter
TimeExtent更多信息

具有开始日期和结束日期的时间范围。

更多信息FeatureFilter
String更多信息

在空间过滤器中指定距离时计算缓冲距离的单位。

更多信息FeatureFilter
String更多信息

要素筛选器的 where 子句。

更多信息FeatureFilter

属性详细说明

declaredClass Stringreadonly inherited

类名。类的名称声明格式为 geoscene.folder.className

distance Number

指定与空间过滤器中给定几何的搜索距离。单位属性指示度量单位。实质上,设置此属性会在输入几何图形周围创建一个指定大小的缓冲区。过滤器将使用该缓冲区来显示图层或图层视图中符合所指示空间关系的要素。

geometry Geometryautocast

要应用于空间过滤器的几何。空间关系指定的空间关系将指示应如何使用几何来过滤要素。

已知限制

目前不支持Mesh几何类型。

objectIds Number[]

要筛选的要素的 objectId 数组。

spatialRelationship String

对于空间过滤器,此参数定义空间关系,以根据过滤器 geometry 过滤图层视图中的要素。 空间关系发现要素在空间上是如何相互关联的。 例如,您可能想知道代表县的多边形是否完全包含代表定居点的点。

空间关系由几何图形的边界或内部是否相交决定。

  • Boundary — 线要素的所有线性零件的端点或面的线性轮廓。只有线和面才有边界。
  • Interior — 点完全是内部的,没有边界。对于线和面,内部是几何中不属于边界的任何部分。

下面介绍了此参数的可能值,图像突出显示了为给定几何的指定空间关系返回的几何。

 intersects 空间关系在图层视图中返回与过滤器几何相交的要素。

已知限制

具有 3D 对象场景图层的 SceneLayerView 的过滤器仅支持containsintersects 和 disjoint.的空间关系。

intersects

 contains 空间关系在图层视图中返回完全由过滤器几何包含的要素。

contains

当过滤几何的内部与图层视图中要素的内部或边界接触时, crosses 空间关系将返回图层视图中的要素。 换句话说,几何图形共享一些内部区域,但不是所有内部区域。

crosses

envelope-intersects 空间关系在图层视图中返回与过滤器几何的包络(或范围)相交的要素。

envelope-intersects

overlaps 空间关系在图层视图中返回与过滤器几何重叠的要素。 只能比较相同几何形状的要素。

overlaps

touches 空间关系在图层视图中返回接触过滤器几何的要素。 几何形状的边界相交,但内部不相交。

touches

within 空间关系返回图层视图中完全包含过滤器几何的要素。 换句话说,过滤器几何完全在图层视图中的要素内。 它与 contains相反。

within

disjoint 的空间关系返回图层视图中无论如何都不与过滤器几何相交的要素。 相交的对面。

disjoint

默认值:intersects
示例:
示例代码:
// 显示完全在状态内的要素
let filter = new FeatureFilter({ spatialRelationship: "contains", geometry: statePolygon });
timeExtent TimeExtent

带有开始和结束日期的时间范围。 仅显示该时间范围内的要素。 初始化图层时,应将用于  timeExtent 的 Date 字段添加到 outFields 列表中。 这可确保在切换或更新时间过滤器字段时获得最佳用户体验。

默认值:null
units String

在空间过滤器中指定 distance 时计算缓冲距离的单位。 如果未指定 units ,则单位派生自过滤器几何的空间参考。

可选值:"feet"|"miles"|"nautical-miles"|"us-nautical-miles"|"meters"|"kilometers"

默认值:null
where String

要素筛选器的 where 子句。允许对图层中的字段执行子句操作的任何合法的 SQL92。在 JavaScript 中编写 where 子句时,请确保具有正确的单引号和双引号序列。

对于用户可以通过交互方式更改用于属性过滤器的字段的应用程序,我们建议您在图层的 outFields 中包含所有可能的字段。这可确保在切换或更新属性过滤器的字段时获得最佳用户体验。

示例:
示例代码:
filter.where = "NAME = '" + stateName + "'";
filter.where = "POP04 > " + population;

方法列表

属性 返回值类型 描述
FeatureFilter更多信息

创建 FeatureFilter 对象的深度克隆。

更多信息FeatureFilter
Query更多信息

创建可用于提取满足图层当前过滤器和定义的要素的查询参数。

更多信息FeatureFilter
*更多信息

创建此类的新实例并使用从 GeoScene产品生成的 JSON 对象的值对其进行初始化。

更多信息FeatureFilter
Object更多信息

将此类的实例转换为其 GeoScene portal JSON 格式。

更多信息FeatureFilter

方法详细说明

clone(){FeatureFilter}

创建 FeatureFilter 对象的深度克隆。

返回值:
类型 描述
FeatureFilter FeatureFilter 对象的新实例等于用于调用  .clone() 的对象。
createQuery(){Query}

创建可用于提取满足图层当前过滤器和定义的要素的查询参数。

返回值:
类型 描述
Query 表示图层过滤器和其他定义的查询对象。
示例代码:
// 从过滤器的当前配置中获取查询对象
const queryParams = layerView.filter.createQuery(); // 设置几何以按视图范围查询要素
queryParams.geometry = view.extent; // 使用修改后的 params 对象查询图层 layerView.queryFeatures(queryParams) .then(function(results){ // 将结果图形数组打印到控制台 console.log(results.features); });
fromJSON(json){*}static

创建此类的新实例,并使用从 GeoScene 产品生成的 JSON 对象的值对其进行初始化。传递给输入 json 参数的对象通常来自对 REST API 中的查询操作的响应,或者来自另一个 GeoScene产品的 toJSON() 方法。有关何时以及如何使用此函数的详细信息和示例,请参阅指南中的 使用 fromJSON() 主题。

参数:
json Object

实例的 json 表达式,以geoscene 格式显示。

返回值:
类型 描述
* 返回一个该类的新实例。
toJSON(){Object}

将此类的实例转换为 GeoScene portal JSON 格式。 有关更多信息,请参阅 使用 fromJSON() 指南。

返回值:
类型 描述
Object 此类实例的 GeoScene portal JSON 格式。

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