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


JavaScript ArcGIS color.createVisualVariable用法及代码示例


基本信息

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

AMD: require(["esri/smartMapping/renderers/color"], (colorRendererCreator) => { /* code goes here */ });

ESM: import * as colorRendererCreator from "@arcgis/core/smartMapping/renderers/color";

对象: esri/smartMapping/renderers/color

自从:用于 JavaScript 4.2 的 ArcGIS API

用法说明

color.createVisualVariable函数(或属性)的定义如下:

createVisualVariable (params) {Promise<VisualVariableResult>}


此方法生成一个带有默认停靠点的颜色视觉变量,这些默认停靠点是根据针对指定字段或表达式查询的统计信息以及由视图背景确定的颜色进行优化选择的。

可以通过两种不同的方式调用此方法。最常见的情况是提供 layerviewfieldtheme 。这是数据的统计信息不为人知且用户不知道使用什么颜色的场景。您可以选择使用 valueExpression 而不是字段,根据运行时执行的脚本返回的数值来可视化特征。

提供其他选项是为了方便更多涉及的自定义可视化创作应用程序。例如,如果您已经在另一个操作中生成了统计信息,则可以在statistics 参数中传递对象以避免对服务器进行额外的调用。如果您不想为您挑选一个,您也可以提供colorScheme。在这种情况下,viewtheme 选项将被忽略。

参数:

规格:
类型说明
params Object

用于根据从给定字段或表达式返回的数据生成颜色视觉变量的输入参数。有关每个参数的详细信息,请参见下表。

规格:

为其生成视觉变量的层。

view

View

可选的

渲染输入层的视图。此方法检查视图的背景(即底图、Web Map背景或视图容器)以确定输出渲染器的最佳颜色。在实践中应始终设置此参数,但如果未提供此参数,则此方法将假定生成的渲染器将显示在浅色背景上。当使用 valueExpression 创建渲染器或用于在 SceneView 中显示的渲染器时,此参数是必需的。

field

String

可选的

将查询其数据以进行统计并用作数据驱动可视化基础的字段的名称。如果使用 valueExpression,则忽略此属性。

normalizationField

String

可选的

用于规范化给定 field 值的字段名称。提供归一化字段有助于最大限度地减少一些可视化错误并标准化数据,因此所有特征都以最小的偏差进行可视化,因为面积差异或计数变化。此选项通常在可视化密度时使用。

theme

String

可选的
默认值:high-to-low

确定将在连续渐变和Map中强调哪些值。下面列出了可能的值。

说明 示例
high-to-low 用强烈的颜色强调高值。高于平均值一个标准偏差的数据值被指定为最强的颜色。低于平均值一个标准偏差的数据值被指定为最弱的颜色。所有其他值都被插值。 high-to-low
above 用强烈的颜色强调高值。最大数据值被分配最强的颜色。中间或平均数据值被分配最弱的颜色。所有其他值都被插值。 above
below 用强烈的颜色强调低值。最小数据值被分配最强的颜色。中间或平均数据值被分配最弱的颜色。所有其他值都被插值。 below
above-and-below 以有意义的数据值(例如平均值)为中心的值用弱颜色显示,而其他值用强颜色强调。所有其他值都被插值。 above-and-below
centered-on 以有意义的数据值(例如平均值)为中心的值用强烈的颜色强调,而其他值用弱的颜色显示。所有其他值都被插值。 centered-on
extremes 用强烈的颜色强调高值和低值。所有其他人都用弱颜色可视化。所有其他值都被插值。 extremes

可能的值"high-to-low"|"above"|"below"|"above-and-below"|"centered-on"|"extremes"

colorScheme

ColorScheme

可选的

在创作应用程序中,用户可以选择预定义的配色方案。将方案对象传递给此属性以避免基于 theme 和视图背景获取一个。

valueExpression

String

可选的

遵循 Arcade Visualization Profile 定义的规范的 Arcade 表达式。表达式可以使用 $feature 全局变量引用字段值,并且必须返回一个数字。此属性覆盖 field 属性,因此用于代替输入 field 值。

valueExpressionTitle

String

可选的

说明从 valueExpression 返回的值的文本。这是由Legend 小部件使用的。

sqlExpression

String

可选的

计算为数字的 SQL 表达式。

sqlWhere

String

可选的

用于过滤统计查询函数的 SQL where 子句。例如,这在您希望避免除以零的情况下很有用,就像创建优势可视化的情况一样。

legendOptions

Object

可选的

当提供表达式而不是字段名称时,提供用于为字段设置标题的选项。此标题将表示 Legend 中的字段。

规格:
title

String

可选的

用于表示 Legend 中给定字段或表达式的标题。

showLegend

Boolean

可选的

指示是否在图例中说明渲染器。

可选的

summaryStatistics 函数生成的统计对象。如果该字段的统计信息已经生成,则在此处传递对象以避免向服务器进行第二次统计查询。

minValue

Number

可选的

用户设置的自定义最小值。将此与 maxValue 结合使用以生成上下限之间的统计信息。这将是返回的颜色视觉变量中的最低点。

maxValue

Number

可选的

用户设置的自定义最大值。将此与 minValue 结合使用以生成上下限之间的统计信息。这将是返回的颜色视觉变量中的最高点。

worldScale

Boolean

可选的

指示符号的大小单位是否以米为单位。当使用 3D 体积符号系统生成可视化时,这应该是 true,但具有 mesh 几何类型的图层除外。如果此属性设置为 true ,则必须提供 view

signal

AbortSignal

可选的

允许可取消的请求。如果取消,promise 将被拒绝,并出现名为 AbortError 的错误。另见AbortController

返回:

类型 说明
Promise<VisualVariableResult> 解析为 VisualVariableResult 的实例。

例子:

let layer = new FeatureLayer({
  url: "https://services.arcgis.com/V6ZHFr6zdgNZuVG0/arcgis/rest/services/counties_politics_poverty/FeatureServer/0"
});

// visualization based on field and normalization field
let colorParams = {
  layer: layer,
  view: view,
  field: "POP_POVERTY",
  normalizationField: "TOTPOP_CY",
  theme: "above-and-below"
};

// when the promise resolves, apply the visual variable to the renderer
colorRendererCreator.createVisualVariable(colorParams)
  .then(function(response){
    let renderer = layer.renderer.clone();
    renderer.visualVariables = [ response.visualVariable ];
    layer.renderer = renderer;
  });
let layer = new FeatureLayer({
  url: "https://services.arcgis.com/V6ZHFr6zdgNZuVG0/arcgis/rest/services/counties_politics_poverty/FeatureServer/0"
});

// visualization based off Arcade expression
let colorParams = {
  layer: layer,
  view: view,
  valueExpression: "($feature.POP_POVERTY / $feature.TOTPOP_CY) * 100",
  sqlWhere: "TOTPOP_CY > 0",
  legendOptions: {
    title: "% of people living in poverty"
  }
};

// when the promise resolves, apply the visual variable to the renderer
colorRendererCreator.createVisualVariable(colorParams)
  .then(function(response){
    let renderer = layer.renderer.clone();
    renderer.visualVariables = [ response.visualVariable ];
    layer.renderer = renderer;
  });

相关用法


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