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


JavaScript ArcGIS fieldUtils.getExpressionFields用法及代码示例


基本信息

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

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

ESM: import * as fieldUtils from "@arcgis/core/layers/support/fieldUtils";

对象: esri/layers/support/fieldUtils

自从:用于 JavaScript 4.11 的 ArcGIS API

用法说明

fieldUtils.getExpressionFields函数(或属性)的定义如下:

getExpressionFields (layer, expressions) {Promise<string[]>}


自从:ArcGIS 适用于 JavaScript 4.15 的 API

返回在一个或多个Arcade 表达式中引用的字段名称数组,这些表达式将在渲染器、标签或弹出模板中的给定层上设置。当您想要在更新渲染器以实现快速视觉更新之前请求这些字段的数据时,或者当您想要在图层上设置 Arcade 表达式之前对该数据执行客户端查询时,这非常有用。

参数:

类型说明

为其创作 Arcade expressions 的层。该层必须具有fields 属性。

expressions String[]

要在给定的 layer 上设置的 Arcade 表达式数组。

返回:

类型 说明
Promise<string[]> 返回由 $feature.fieldName$feature[fieldName] 语法声明的字段名称数组。

例子:

const windDirectionExpression = `
  $feature["WIND_DIRECT"];
  $feature["WIND_SPEED"];
  var DEG = $feature.WIND_DIRECT;
  var SPEED = $feature.WIND_SPEED;
  var DIR = When( SPEED == 0, "",
    (DEG < 22.5 && DEG >= 0) || DEG > 337.5, "N",
    DEG >= 22.5 && DEG < 67.5, "NE",
    DEG >= 67.5 && DEG < 112.5, "E",
    DEG >= 112.5 && DEG < 157.5, "SE",
    DEG >= 157.5 && DEG < 202.5, "S",
    DEG >= 202.5 && DEG < 247.5, "SW",
    DEG >= 247.5 && DEG < 292.5, "W",
    DEG >= 292.5 && DEG < 337.5, "NW", "" );
  return SPEED + " mph " + DIR;
`;

const labelExpressions = [
  "Round($feature.TEMP) + '° F';",
  "$feature.R_HUMIDITY + '% RH'",
  "$feature.STATION_NAME",
  windDirectionExpression
];

// Assume the layer has only requested the OBJECTID field
fieldUtils.getExpressionFields(layer, labelExpressions)
 .then(function(fieldNames){

  // fieldNames = ["R_HUMIDITY", "STATION_NAME", "TEMP", "WIND_DIRECT", "WIND_SPEED"]
  layer.outFields = fieldNames;

  // Do something else like a client-side query with those fields
 }).catch(function(error){
   console.error(error);
 });

相关用法


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