此类可定义用于在 featureEffect 或图层视图上设置客户端过滤器的参数。一旦定义了 FeatureFilter 的属性,就可使用它来设置图层视图或 FeatureEffect 的 filter 属性。
您可以按 attributes、time、geometry 和具有 distance 的几何设置过滤器。仅显示满足过滤器中指定要求的要素。过滤器仅影响要素的可见性。它们不返回与过滤要素相关的几何或属性信息。必须调用 queryFeatures 方法才能访问其他信息。
FeatureFilter 针对可在客户端绘制的要素运行。客户端要素针对性能进行了优化,因此,要素过滤结果并不总是准确的。如果您需要针对图层中可用的所有要素运行过滤器,请使用图层的 queryFeatures()
方法或 definitionExpression
属性。有关更多信息,请参阅查询和过滤指南文档。
// display rain gauges where their water percent is over 30%
// and if the gauges are completely contained by the 10-mile
// buffer around the filter geometry
featureLayerView.filter = new FeatureFilter({
where: "percentile >= 30",
geometry: filterPolygon,
spatialRelationship: "contains",
distance: 10,
units: "miles"
});
构造函数
属性概述
名称 | 类型 | 描述 | 类 |
---|---|---|---|
String | 类的名称。 更多详情 | Accessor | |
Number | 指定到空间过滤器中给定几何的搜索距离。 更多详情 | FeatureFilter | |
Geometry | 应用于空间过滤器的几何。 更多详情 | FeatureFilter | |
Number[] | 要过滤的要素的 objectIds 数组。 更多详情 | FeatureFilter | |
String | 对于空间过滤器,此参数定义了在图层视图中对过滤几何进行过滤要素的空间关系。 更多详情 | FeatureFilter | |
TimeExtent | 具有开始和结束日期的时间段。 更多详情 | FeatureFilter | |
String | 在空间过滤器中指定距离时计算缓冲距离的单位。 更多详情 | FeatureFilter | |
String | 要素过滤器的 where 子句。 更多详情 | FeatureFilter |
属性详细信息
-
类的名称。声明的类名称格式化为
geoscene.folder.className
。
-
distance Number
-
-
应用于空间过滤器的几何。由 spatialRelationship 指定的空间关系将指示应如何使用几何图形来过滤要素。
已知限制
当前不支持网格几何类型。
-
要过滤的要素的 objectIds 数组。
-
spatialRelationship String
-
对于空间过滤器,此参数定义了在图层视图中对过滤几何进行过滤要素的空间关系。空间关系可发现要素在空间上是如何相互关联的。例如,您可能想知道代表县的多边形是否完全包含代表定居点的点。
空间关系是由几何的边界或内部是否相交的决定。
- 边界 - 线要素所有线性部分的端点,或多边形的线性轮廓。只有线和多边形具有边界。
- 内部 - 点完全在内部,没有边界。对于线和多边形,内部是不属于边界的几何图形的任何部分。
该参数的可能值如下所述,图像突出显示为给定几何图形的指定空间关系返回的几何图形。
intersects
空间关系在图层视图中返回与过滤器几何相交的要素。已知限制
具有 3D 对象场景图层的 SceneLayerView 的过滤器仅支持
contains
、intersects
和disjoint
空间关系。contains
空间关系在图层视图中返回完全包含在过滤几何中的要素。当过滤几何的内部与图层视图中要素的内部或边界接触时,
crosses
空间关系将返回图层视图中的要素。换句话说,几何图形共享一些内部区域,但不是所有内部区域。envelope-intersects
空间关系在图层视图中返回与过滤器几何的包络 (或范围) 相交的要素。overlaps
空间关系在图层视图中返回与过滤几何重叠的要素。只能比较相同几何的要素。touches
空间关系在图层视图中返回与过滤几何接触的要素。几何的边界相交,但内部不相交。within
空间关系在图层视图中返回完全包含过滤几何的要素。换句话说,过滤器几何完全within
图层视图中的要素。它与contains
相反。disjoint
空间关系在图层视图中返回无论如何都不会与过滤几何相交的要素。与intersects
相反。示例// display features that are completely within state 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 where 子句。在 JavaScript 中编写 where 子句时,请务必使用正确的单引号和双引号顺序。
对于用户可以通过交互方式更改用于属性过滤器字段的应用程序,我们建议您在图层的 outFields 中包含所有可能的字段。这可确保在切换或更新属性过滤器的字段时获得最佳用户体验。
示例filter.where = "NAME = '" + stateName + "'";
filter.where = "POP04 > " + population;
方法概述
名称 | 返回值类值 | 描述 | 类 |
---|---|---|---|
添加一个或多个与对象的生命周期相关联的句柄。 更多详情 | Accessor | ||
FeatureFilter | 创建 FeatureFilter 对象的深度克隆。 更多详情 | FeatureFilter | |
Query | 创建可用于获取满足图层当前过滤器和定义的要素的查询参数。 更多详情 | FeatureFilter | |
* | 创建此类的新实例并使用从 GeoScene 产品生成的 JSON 对象值对其进行初始化。 更多详情 | FeatureFilter | |
Boolean | 如果存在指定的句柄组,则返回 true。 更多详情 | Accessor | |
移除对象拥有的句柄组。 更多详情 | Accessor | ||
Object | 将此类的实例转换为 GeoScene Portal JSON 表示。 更多详情 | FeatureFilter |
方法详细说明
-
addHandles(handleOrHandles, groupKey)inherited起始版本:GeoScene Maps SDK for JavaScript 4.25
-
添加一个或多个与对象的生命周期相关联的句柄。当对象被销毁时,将移除句柄。
// Manually manage handles const handle = reactiveUtils.when( () => !view.updating, () => { wkidSelect.disabled = false; }, { once: true } ); // Handle gets removed when the object is destroyed. this.addHandles(handle);
参数handleOrHandles WatchHandle|WatchHandle[]对象销毁后,标记为要移除的句柄。
groupKey *optional标识句柄应添加到的组的键。组中的所有句柄稍后都可使用 Accessor.removeHandles() 进行删除。如果未提供键,则句柄将被添加到默认组。
-
clone(){FeatureFilter}
-
创建 FeatureFilter 对象的深度克隆。
返回类型 描述 FeatureFilter FeatureFilter 对象的新实例,其等于用于调用 .clone()
的对象。
-
createQuery(){Query}
-
创建可用于获取满足图层当前过滤器和定义的要素的查询参数。
返回类型 描述 Query 表示图层过滤器和其他定义的查询对象。 示例// Get a query object from the filter's current configuration const queryParams = layerView.filter.createQuery(); // set a geometry for querying features by the view's extent queryParams.geometry = view.extent; // query the layer with the modified params object layerView.queryFeatures(queryParams) .then(function(results){ // prints the array of result graphics to the console console.log(results.features); });
-
fromJSON(json){*}static
-
创建此类的新实例并使用从 GeoScene 产品生成的 JSON 对象值对其进行初始化。传入到输入
json
参数的对象通常来自对 REST API 中查询操作的响应或来自另一个 GeoScene 产品的 toJSON() 方法。有关何时以及如何使用该函数的详细信息和示例,请参阅指南中的使用 fromJSON() 主题。参数json ObjectGeoScene 格式实例的 JSON 表示。有关各种输入 JSON 对象的结构示例,请参阅 GeoScene REST API 文档。
返回类型 描述 * 返回该类的新实例。
-
起始版本:GeoScene Maps SDK for JavaScript 4.25
-
如果存在指定的句柄组,则返回 true。
参数groupKey *optional组键。
返回类型 描述 Boolean 如果存在指定的句柄组,则返回 true
。示例// Remove a named group of handles if they exist. if (obj.hasHandles("watch-view-updates")) { obj.removeHandles("watch-view-updates"); }
-
removeHandles(groupKey)inherited起始版本:GeoScene Maps SDK for JavaScript 4.25
-
移除对象拥有的句柄组。
参数groupKey *optional要移除的组键或组键的数组或集合。
示例obj.removeHandles(); // removes handles from default group obj.removeHandles("handle-group"); obj.removeHandles("other-handle-group");
-
toJSON(){Object}
-
将此类的实例转换为 GeoScene Portal JSON 表示。有关详细信息,请参阅使用 fromJSON() 指南主题。
返回类型 描述 Object 此类实例的 GeoScene Portal JSON 表示。