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


JavaScript ArcGIS FeatureLayer.orderBy用法及代码示例


基本信息

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

AMD: require(["esri/layers/FeatureLayer"], (FeatureLayer) => { /* code goes here */ });

ESM: import FeatureLayer from "@arcgis/core/layers/FeatureLayer";

类: esri/layers/FeatureLayer

继承: FeatureLayer > Layer > Accessor

自从:用于 JavaScript 4.0 的 ArcGIS API

用法说明

FeatureLayer.orderBy函数(或属性)的定义如下:

orderBy Object[]


自从:ArcGIS 适用于 JavaScript 4.21 的 API

确定在视图中绘制要素的顺序。您可以按字段值或从 Arcade 表达式返回的值按升序或降序对要素进行排序。

null(默认)时,将按照从服务或客户端返回的顺序绘制特征。

已知限制

  • 此属性仅控制 MapView 中的特征绘制顺序。不支持在SceneView 中配置特征绘制顺序。
  • 该属性不控制簇的绘制顺序。它仅适用于单个函数。
  • 使用 Arcade 表达式定义的要素绘制顺序配置不能将 saved 用于 web Map。
  • 目前,您只能按一个字段或表达式对要素进行排序。

属性:

类型说明
field String
可选的

其值将用于对要素进行排序的数字或日期字段。

valueExpression String
可选的

遵循 Arcade Feature Z Profile 定义的规范的 Arcade 表达式。表达式可以使用 $feature 全局变量引用字段值,并且必须返回表示用于对要素进行排序的 z-value 的数字或日期。

order String
可选的
默认值:上升

排序顺序。如果 ascending ,则具有较小数据值的要素(它们通常在尺寸可视化中具有较小的符号)将绘制在具有较大数据值的要素之上。如果 descending ,则具有较大数据值的要素(通常在尺寸可视化中较大的符号)将绘制在具有较小数据值的要素之上。如果使用日期值,则 ascending 表示具有较旧值的要素将绘制在具有较新日期的要素之上。日期的descending 顺序表示具有较新值的要素将绘制在具有较旧值的要素之上。

可能的值"ascending"|"descending"

默认值:null

例子:

// Features with smaller population values will
// be rendered on top of larger features.
layer.orderBy = [{
  field: "POPULATION"
}];
// Features with larger population values will
// be rendered on top of smaller features.
layer.orderBy = [{
  field: "POPULATION",
  order: "descending"
}];
// Orders features by date in descending order.
// The most recent features will be rendered
// on top of older features.
layer.orderBy = [{
  field: "Alarm_Date",
  order: "descending"
}];
// Orders features by storm warning duration in descending order.
// Warnings with longer durations
// be rendered on top of warnings with shorter durations.
layer.orderBy = [{
  valueExpression: "DateDiff($feature.Watch_End, $feature.Watch_Start, 'hours' )",
  order: "descending"
}];
// Orders features by data values used in a size visual variable
const sizeVariable = layer.renderer.visualVariables.find( vv => vv.type === "size");
const { field, valueExpression } = sizeVariable;
layer.orderBy = [{
  field,
  valueExpression,
  order: "ascending"
}];

相关用法


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