ElementExpressionInfo

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

定义用于在 PopupTemplate 中创建 ExpressionContent 元素的 Arcade 表达式。表达式对字典 求值,来表示 Popup Element web map specification 中定义的 TextContentFieldsContent, 或 MediaContent 。

此表达式可以使用 $feature, $layer, $map, 和 $datastore 全局变量从要素、其图层或地图或数据存储中的其他图层访问数据值。更多信息和有效返回字典的示例,请参阅 Popup元素Arcade配置文件规范

示例:
示例代码:
// Creates an ordered list in a cluster's popup
// listing the type of fuel used to generate power in the cluster
// ordered by the total number of power plants for each fuel type.
layer.featureReduction = {
  type: "cluster",
  popupTemplate: {
    title: "Power plant summary",
    content: [{
      type: "expression",
      expressionInfo: {
        expression: `
          // Specify which fields are required by the expression
          Expects($aggregatedFeatures, "fuel1", "capacity_mw")

          // Query stats for each fuel type
          var statsFS = GroupBy($aggregatedFeatures,
            [
              { name: 'Type', expression: 'fuel1'},
            ],
            [  // statistics to return for each unique category
              { name: 'capacity_total', expression: 'capacity_mw', statistic: 'SUM' },
              { name: 'capacity_max', expression: 'capacity_mw', statistic: 'MAX' },
              { name: 'num_features', expression: '1', statistic: 'COUNT' }
            ]
          );
          // create an list in descending order based
          // on the number of plants for each fuel type.
          var ordered = OrderBy(statsFs, 'num_features DESC');

          var list = "<ol>";

          for (var group in ordered){
            list += \`<li>\${group.Type} (\${Text(group.num_features, "#,###")})</li>\`
          }
          list += "</ol>";

          // The return dictionary must return a text, fields, or media
          // popup element as defined in the web map specification
          return {
            type: "text",
            text: list
          }
        `,
        title: "List of fuel types"
      }
    }]
  }
};

构造函数

new ElementExpressionInfo(properties)
参数:
properties Object
optional

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

属性列表

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

类名。

更多信息Accessor
String更多信息

该 Arcade 表达式对字典求值

更多信息ElementExpressionInfo
String更多信息

表达式的返回类型。

更多信息ElementExpressionInfo
String更多信息

表达式返回的 popup 元素的标题。

更多信息ElementExpressionInfo

属性详细说明

declaredClass Stringreadonly inherited

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

expression String

该 Arcade 表达式对字典求值。 该字典必须表示一个在 Popup Element web map specification 中定义的 TextContent, FieldsContent, 或者 MediaContent popup元素内容。

此表达式可以使用 $feature, $layer, $map$datastore 全局变量从要素、其图层或地图或数据存储中的其他图层访问数据值。 有关更多信息和有效返回字典的示例,请参阅 弹窗元素 Arcade 简介

示例:
示例代码:
// Creates an column chart where each category/value
// is an aggregate of two or more fields
layer.popupTemplate = {
  title: "Educational Attainment",
  content: [{
    type: "expression",
    expressionInfo: {
      expression: `
        // Create a dictionary of attributes representing the values
        // to display in the table
        var attributes = {
          "No School": $feature.no_school + $feature.some_primary,
          "Primary": $feature.primary_complete + $feature.some_secondary,
          "Secondary": $feature.secondary_complete + $feature.some_highSchool,
          "High School": $feature.highSchool_diploma + $feature.highSchool_ged + $feature.some_college,
          "College/University": $feature.associates + $feature.bachelors + $feature.masters + $feature.doctorate + $feature.professional;
        };

        var fieldInfos = [];

        // Create an array representing the attribute names (or keys)
        // to include in the chart
        for (var k in attributes){
          Push(fieldInfos, {
            fieldName: k
          });
        }

        // Returns a dictionary providing the information
        // required by the popup to render a table of key value pairs
        return {
          type: "media",
          attributes: attributes,
          // The list of attribute names (keys) to include in the table
          fieldInfos: fieldInfos
        };
      `,
      title: "Educational Attainment"
    }
  }]
};
returnType String

表达式的返回类型。内容元素表达式总是返回字典。

对于 ElementExpressionInfo ,返回的类型始终为 "dictionary"。

title String

表达式返回的popup元素的标题。

方法列表

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

对 ElementExpressionInfo 实例进行深拷贝.

更多信息ElementExpressionInfo
*更多信息

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

更多信息ElementExpressionInfo
Object更多信息

将此类的实例转换为其 GeoScene portal JSON 的表示形式。

更多信息ElementExpressionInfo

方法详细说明

对 ElementExpressionInfo 实例进行深拷贝。

返回值:
类型 描述
ElementExpressionInfo  ElementExpressionInfo 实例的深拷贝。
fromJSON(json){*}static

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

参数:
json Object

JSON 应当遵循 GeoScene 指定的格式。有关各种输入 JSON 对象的结构示例,请参阅 GeoScene REST API 文档

返回值:
类型 描述
* 返回一个该类的新实例。
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.