此类定义用于在 featureEffect 或图层视图上设置客户端过滤器的参数。 一旦定义了 FeatureFilter 的属性,就可以使用它来设置图层视图或 FeatureEffect 的过滤器属性。
您可以按attributes、time、geometry 和距离几何设置过滤器。 仅显示满足过滤器中指定要求的要素。 过滤器仅影响要素可见性。 它们不返回与过滤要素相关的几何或属性信息。 必须调用 queryFeatures 方法才能访问附加信息。
FeatureFilter 针对可在客户端绘制的功能运行。 客户端功能针对性能进行了优化,因此,功能过滤结果并不总是准确的。 如果您需要针对图层中可用的所有要素运行过滤器,请使用图层的 queryFeatures()
方法或 definitionExpression
属性。 有关更多信息,请参阅查询和过滤指南文档。
// 显示水量百分比超过 30% 的雨量计
// 以及雨量计是否完全包含在过滤器
// 几何形状周围 10 英里的缓冲区中
featureLayerView.filter = new FeatureFilter({
where: "percentile >= 30",
geometry: filterPolygon,
spatialRelationship: "contains",
distance: 10,
units: "miles"
});
构造函数
属性列表
属性 | 类型 | 描述 | 类 | |
---|---|---|---|---|
String | 更多信息 类名。 | 更多信息 | Accessor | |
Number | 更多信息 指定与空间过滤器中给定几何的搜索距离。 | 更多信息 | FeatureFilter | |
Geometry | 更多信息 应用于空间过滤器的几何体。 | 更多信息 | FeatureFilter | |
Number[] | 更多信息 要筛选的要素的 objectId 数组。 | 更多信息 | FeatureFilter | |
String | 更多信息 对于空间过滤器,此参数定义图层视图中的要素与过滤器几何的过滤空间关系 | 更多信息 | FeatureFilter | |
TimeExtent | 更多信息 具有开始日期和结束日期的时间范围。 | 更多信息 | FeatureFilter | |
String | 更多信息 在空间过滤器中指定距离时计算缓冲距离的单位。 | 更多信息 | FeatureFilter | |
String | 更多信息 要素筛选器的 where 子句。 | 更多信息 | FeatureFilter |
属性详细说明
-
类名。类的名称声明格式为
geoscene.folder.className
。
-
distance Number
-
要筛选的要素的 objectId 数组。
-
spatialRelationship String
-
对于空间过滤器,此参数定义空间关系,以根据过滤器 geometry 过滤图层视图中的要素。 空间关系发现要素在空间上是如何相互关联的。 例如,您可能想知道代表县的多边形是否完全包含代表定居点的点。
空间关系由几何图形的边界或内部是否相交决定。
- Boundary — 线要素的所有线性零件的端点或面的线性轮廓。只有线和面才有边界。
- Interior — 点完全是内部的,没有边界。对于线和面,内部是几何中不属于边界的任何部分。
下面介绍了此参数的可能值,图像突出显示了为给定几何的指定空间关系返回的几何。
intersects
空间关系在图层视图中返回与过滤器几何相交的要素。已知限制
具有 3D 对象场景图层的 SceneLayerView 的过滤器仅支持
contains
,intersects
和disjoint
.的空间关系。contains
空间关系在图层视图中返回完全由过滤器几何包含的要素。当过滤几何的内部与图层视图中要素的内部或边界接触时,
crosses
空间关系将返回图层视图中的要素。 换句话说,几何图形共享一些内部区域,但不是所有内部区域。envelope-intersects
空间关系在图层视图中返回与过滤器几何的包络(或范围)相交的要素。overlaps
空间关系在图层视图中返回与过滤器几何重叠的要素。 只能比较相同几何形状的要素。touches
空间关系在图层视图中返回接触过滤器几何的要素。 几何形状的边界相交,但内部不相交。within
空间关系返回图层视图中完全包含过滤器几何的要素。 换句话说,过滤器几何完全在图层视图中的要素内。 它与contains
相反。disjoint
的空间关系返回图层视图中无论如何都不与过滤器几何相交的要素。 相交的对面。- 默认值:intersects
- 示例:
示例代码:// 显示完全在状态内的要素
let filter = new FeatureFilter({ spatialRelationship: "contains", geometry: statePolygon });
-
timeExtent TimeExtent
-
带有开始和结束日期的时间范围。 仅显示该时间范围内的要素。 初始化图层时,应将用于
timeExtent
的 Date 字段添加到 outFields 列表中。 这可确保在切换或更新时间过滤器字段时获得最佳用户体验。- 默认值:null
-
units String
-
可选值:"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 格式。