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


JavaScript ArcGIS size.createVisualVariables用法及代码示例


基本信息

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

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

ESM: import * as sizeRendererCreator from "@arcgis/core/smartMapping/renderers/size";

对象: esri/smartMapping/renderers/size

自从:用于 JavaScript 4.2 的 ArcGIS API

用法说明

size.createVisualVariables函数(或属性)的定义如下:

createVisualVariables (params) {Promise<VisualVariableResult>}


此方法生成具有默认停靠点的大小可视变量数组,这些停靠点是根据针对指定字段或表达式查询的统计信息进行优化选择的,并映射到适当的大小。

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

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

除非将axis 参数设置为"height",否则生成的视觉变量数组将只包含一个大小的视觉变量。

参数:

规格:
类型说明
params Object

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

规格:

为其生成视觉变量的层。

view

View

可选的

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

field

String

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

normalizationField

String

可选的

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

sizeScheme

SizeScheme

可选的

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

valueExpression

String

可选的

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

valueExpressionTitle

String

可选的

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

theme

String

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

根据有意义的数据值设置大小停止。

说明
high-to-low 最大数据值被分配最大大小。最小数据值被分配最小大小。所有其他值都被插值。
above 最大数据值被分配最大大小。平均数据值被分配最小大小。对最大数据值和平均值之间的所有其他值进行插值。这对于映射变量随时间的增加非常有用,例如人口增加或两个日期之间的失业。
below 最小数据值被分配最大大小。平均数据值被分配最小大小。对最小数据值和平均值之间的所有其他值进行插值。这对于绘制变量随时间的下降情况很有用,例如人口减少或两个日期之间的失业率。

可能的值"high-to-low"|"above"|"below"

sqlExpression

String

可选的

计算为数字的 SQL 表达式。

sqlWhere

String

可选的

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

sizeOptimizationEnabled

Boolean

可选的
默认值:错误的

指示符号大小是否应根据视图比例而变化。设置后,必须在 view 参数中提供有效的 MapView 实例。 3D SceneViews 不支持此选项。

legendOptions

Object

可选的

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

规格:
title

String

可选的

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

showLegend

Boolean

可选的

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

可选的

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

minValue

Number

可选的

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

maxValue

Number

可选的

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

worldScale

Boolean

可选的

指示符号的大小单位是否以米为单位。当使用 3D 体积符号系统生成可视化时,这应该是 true

axis

String

可选的
默认值:全部

当设置为 all 时,会生成一个在所有维度上均匀缩放的大小变量。当设置为 height 时,结果包含两个大小视觉变量:第一个根据字段统计设置高度,而第二个定义宽度和深度的恒定大小。

可能的值"all"|"height"

signal

AbortSignal

可选的

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

返回:

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

例子:

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

// visualization based on field and normalization field
const sizeParams = {
  layer: layer,
  view: view,
  field: "POP_POVERTY",
  normalizationField: "TOTPOP_CY",
  theme: "below"
};

// when the promise resolves, apply the visual variables to the renderer
sizeRendererCreator.createVisualVariables(sizeParams)
  .then(function(response){
    const renderer = layer.renderer.clone();
    renderer.visualVariables = response.visualVariables;
    layer.renderer = renderer;
  });
const layer = new FeatureLayer({
  url: "https://services.arcgis.com/V6ZHFr6zdgNZuVG0/arcgis/rest/services/counties_politics_poverty/FeatureServer/0"
});

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

// when the promise resolves, apply the visual variables to the renderer
sizeRendererCreator.createVisualVariables(sizeParams)
  .then(function(response){
    const renderer = layer.renderer.clone();
    renderer.visualVariables = response.visualVariables;
    layer.renderer = renderer;
  });

相关用法


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