• geoscene/smartMapping

size

AMD: require(["geoscene/smartMapping/renderers/size"], (sizeRendererCreator) => { /* code goes here */ });
ESM: import * as sizeRendererCreator from "@geoscene/core/smartMapping/renderers/size";
类: geoscene/smartMapping/renderers/size
起始版本:GeoScene Maps SDK for JavaScript 4.2

此对象包含帮助程序方法,用于根据 Layer 中要素的字段值或表达式生成具有连续大小或分类间隔的数据驱动可视化效果。此模块中的方法生成可直接应用于受支持图层的渲染器或可视变量对象。渲染器根据数据值和视图背景指定要素的可视化方式。

已知限制

  • 目前,只能为具有 point 几何类型的图层生成 3D 符号。
  • 不支持具有 mesh geometryTypeSceneLayers 或未启用 supportsRenderersupportsLayerQuery 功能的 SceneLayers,除非将预定义 statistics 对象与图层一起传递给方法的 statistics 参数。请使用 getFieldInfoUsage() 方法检查 SceneLayer 的功能。
  • 不能使用 SQL 表达式为 SceneView 中的客户端 FeatureLayers 生成渲染器和可视变量。

方法概述

名称 返回值类值 描述 对象
Promise<AgeRendererResult>

生成一个连续大小渲染器,表示基于一个或多个字段的要素期限。

更多详情
size
Promise<ClassBreaksRendererResult>

生成一个 ClassBreaksRenderer,可直接将其应用于用于调用此方法的图层。

更多详情
size
Promise<ContinuousRendererResult>

生成一个渲染器,可直接将其应用于用于调用此方法的图层。

更多详情
size
Promise<VisualVariableResult>

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

更多详情
size

方法详细说明

createAgeRenderer(params){Promise<AgeRendererResult>}
起始版本:GeoScene Maps SDK for JavaScript 4.9

生成一个连续大小渲染器,表示基于一个或多个字段的要素期限。要素年龄是根据给定的 startTimeendTime 计算的,其中一个必须是输入 layer 中的日期字段。此方法生成一个 Arcade 表达式,并计算表达式输出的统计信息以实现此目的。生成的渲染器包含一个连续大小视觉变量,该变量将最佳大小映射到从汇总统计数据返回的数据值。

您需要提供 layerviewstartTimeendTime 来生成此渲染器。或者,您还可为可视化效果设置 unit。为方便自定义更复杂的可视化创作应用程序,还提供了其他选项。例如,如果已在另一操作中生成了统计信息,则可将统计对象传递给 statistics 参数,以避免对服务器进行额外的调用。

参数
规范
params Object

输入参数,用于为从开始和/或结束日期字段返回的时间数据生成年龄的连续大小可视化。各参数的详细信息见下表。

规范

为其生成可视化效果的图层。

view View

渲染输入图层的视图。此方法可检查视图的背景 (即底图、web 地图背景或视图容器),以确定输出渲染器的最佳颜色。

startTime Date|String|Number

字段的名称,或表示年龄计算的开始时间的日期值。如果指定了日期值,则 endTime 参数必须引用图层中的 Date 字段。

字段的名称,或表示年龄计算的结束时间的日期值。如果指定了日期值,则 startTime 参数必须引用图层中的 Date 字段。

unit String
optional

用于计算 endTimestartTime 之间差值的时间单位。如果未指定单位,则根据数据的分布确定建议的单位。

可能值"years"|"months"|"days"|"hours"|"minutes"|"seconds"

theme String
optional
默认值:high-to-low

基于有意义的数据值,设置大小停止点。

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

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

maxValue Number
optional

设置可视化效果的最长期限。即使存在高于此值的数据,也只会计算 minValuemaxValue 之间的值的统计信息。在版本 4.15 中添加。

minValue Number
optional

设置可视化效果的最小期限。即使存在低于此值的数据,也只会计算 minValuemaxValue 之间的值的统计信息。在版本 4.15 中添加。

outlineOptimizationEnabled Boolean
optional
默认值: false

仅适用于面图层。指示多边形轮廓宽度是否应根据视图比例而变化。设置后,必须在 view 参数中提供有效的 MapView 实例。3D SceneViews 不支持此选项。

sizeOptimizationEnabled Boolean
optional
默认值: false

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

legendOptions Object
optional

提供用于修改 Legend 属性 (用于描述可视化效果) 的选项。

规范
title String
optional

用于表示 Legend 中期限大小渐变的标题。

showLegend Boolean
optional

指示是否在图例中包括期限渲染器。

optional

summaryStatistics 函数生成的统计信息对象。createAgeRenderer() 方法可生成一个 Arcade 表达式,并对图层执行该表达式结果的统计查询。如果已生成表达式的统计信息,则在此处传递对象以避免进行第二次统计信息查询。

sizeScheme SizeScheme
optional

在制作应用程序中,用户可以选择预定义的大小方案。将方案对象传递到此属性,以避免基于视图的背景获取方案对象。

symbolType String
optional
默认值:2d

要生成的符号类型。这取决于您正在使用的视图和所需的可视化效果。对于具有 mesh 几何类型的图层,不需要指定此参数。下面描述了可能的值。

描述
2d 使用 2D 符号生成可视化,如 SimpleMarkerSymbolSimpleLineSymbolSimpleFillSymbol。如果为 MapView 中的数据生成可视化效果,请使用此选项。
3d-flat 使用具有平面符号图层的 3D 符号生成可视化,例如 IconSymbol3DLayerLineSymbol3DLayerFillSymbol3DLayer。如果为 SceneView 中的数据生成 2D 可视化,请使用此选项。
3d-volumetric 使用具有体积符号图层的 3D 符号生成可视化效果,例如 ObjectSymbol3DLayerPathSymbol3DLayerExtrudeSymbol3DLayer。如果为 SceneView 中的数据生成 3D 可视化,请使用此选项。如果使用此选项,则必须为 view 参数提供 SceneView 实例。
3d-volumetric-uniform 使用具有体积符号图层的统一大小的 3D 符号生成可视化效果。如果为 SceneView 中的数据生成 3D 可视化效果,并且符号的大小应一致,例如球体,请使用此选项。如果使用此选项,则必须为 view 参数提供 SceneView 实例。

可能值"2d"|"3d-flat"|"3d-volumetric"|"3d-volumetric-uniform"

defaultSymbolEnabled Boolean
optional
默认值:true

在渲染器上启用 defaultSymbol,并将其分配给没有值的要素。

optional

允许可取消的请求。如果取消,则承诺将被拒绝,并返回一个名为 AbortError 的错误。另请参见 AbortController

返回
类型 描述
Promise<AgeRendererResult> 解析为 AgeRendererResult 的实例。
示例
const layer = new FeatureLayer({
  url: "https://services.arcgis.com/V6ZHFr6zdgNZuVG0/arcgis/rest/services/311_Service_Requests_from_2015_50k/FeatureServer/0"
});

// visualization based age of incidents closed passed their due date
// or the number of days an incident was overdue at the time of closure.

const ageParams = {
  layer: layer,
  view: view,
  startTime: "Due_Date",
  endTime: "Closed_Date",
  unit: "days"
};

// when the promise resolves, apply the renderer to the layer
sizeRendererCreator.createAgeRenderer(ageParams)
  .then(function(response){
    layer.renderer = response.renderer;
  });
const layer = new CSVLayer({
  url: "https://earthquake.usgs.gov/earthquakes/feed/v1.0/summary/2.5_week.csv",
  copyright: "USGS Earthquakes"
});

// visualization based off current age of incident
const ageParams = {
  layer: layer,
  view: view,
  startTime: "time",
  endTime: Date.now(),
  legendOptions: {
    title: "Time since earthquake struck"
  }
};

// when the promise resolves, apply the renderer to the layer
sizeRendererCreator.createAgeRenderer(ageParams)
  .then(function(response){
    layer.renderer = response.renderer;
  });
createClassBreaksRenderer(params){Promise<ClassBreaksRendererResult>}
起始版本:GeoScene Maps SDK for JavaScript 4.6

生成一个 ClassBreaksRenderer,可直接将其应用于用于调用此方法的图层。生成的渲染器可根据给定 field 值定义每个要素的符号大小。默认大小方案是根据视图的背景确定的。基于 classificationMethod,根据数据的统计信息生成分类间隔 (或数据范围)。根据 field 值所在的分类间隔,为每个要素指定一个大小。

在大多数情况下,您将提供 layerviewfieldclassificationMethod 来生成此渲染器。在这种情况下,数据的统计信息不是众所周知的,并且用户不知道要在可视化中使用的大小。您还可以使用 valueExpression 而不是 field,根据从运行时执行的脚本返回的值来可视化要素。

为方便自定义更复杂的可视化创作应用程序,还提供了其他选项。

参数
规范
params Object

输入参数,用于根据从给定字段或表达式返回的数据生成分类大小可视化效果。各参数的详细信息见下表。

规范

为其生成可视化效果的图层。

view View
optional

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

field String
optional

将查询其数据以进行统计和分类的字段名称。如果使用 valueExpression,则忽略此属性。

normalizationField String
optional

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

normalizationType String
optional

指示如何对数据进行归一化。在与分类间隔进行比较之前,从 field 中获取的数据值将通过以下方式之一进行规范化。有关可能值列表,请参见下表。

可能值 描述
field field 值除以 normalizationField 的值。如果提供了 normalizationField,则默认设置此值。
log 计算数据值的以 10 为底数的对数。对于某些数据分布,这可能是一种有用的方法,因为它可减少非常大的数据值的影响。
percent-of-total 将数据值除以所有数据值的总和,然后乘以 100。使用 normalizationTotal 来定义标准化的总值。如果提供了 normalizationTotal,则默认设置此值。

除了 log 归一化外,数据归一化通过除以两个值来创建一个比率。在比较要素之间的属性值时,归一化可将不同地图区域和观测数量的影响降至最低。例如,将 18 到 30 岁的人口除以面要素的面积,可以得到一个密度值,该值可以在被忽略其面积大小情况下,与其他要素进行均匀比较。

可能值"field"|"log"|"percent-of-total"

normalizationTotal Number
optional

normalizationTypepercent-of-total 时,此属性包含所有数据值的总计。

classificationMethod String
optional
默认值: equal-interval

用于生成分类间隔的分类方法。有关可能值列表,请参见下表。

可能值 描述
equal-interval 将属性值的范围划分为大小相等的子范围。例如,如果为值范围为 0 到 300 的字段指定三个类,则此方法将创建三个范围分别为 0–100、101–200 和 201–300 的类。相等间隔最适合应用于熟悉的数据范围,例如百分比和温度。此方法强调属性值相对于其他值的数量。例如,它可以显示商店是否是构成所有销售额前三分之一的商店组的一部分。
natural-breaks 对相似值进行分组,以最大化类之间的差异。要素被划分为多个类,其边界设置在数据值存在较大差异的地方。自然间断是特定于数据的分类,对于比较根据不同基础信息构建的多个地图没有用处。
quantile 为每个类分配相同数量的数据值。这非常适合线性分布的数据。由于要素在每个类中以相等的数量进行分组,因此生成的地图通常具有误导性。相似要素可以放置在相邻的类中,或者具有截然不同值的要素可以放在同一个类中。您可以通过增加类的数量来最大程度地减少这种失真。
standard-deviation 创建具有等值范围的分类间隔,这些范围是标准差的一部分。这通常以与平均值相差一、二分之一、三分之一或四分之一的标准偏差的间隔来完成。

可能值"equal-interval"|"natural-breaks"|"quantile"|"standard-deviation"

standardDeviationInterval Number
optional
默认值:1

如果使用 standard-deviation 分类方法,则表示生成分类间隔的时间间隔。

可能值:1 | 0.5 | 0.33 | 0.25

numClasses Number
optional
默认值:5

生成的分类间隔数。如果指定了 standard-deviation 分类方法,则将忽略这一点。

sizeScheme SizeScheme
optional

在制作应用程序中,用户可以选择预定义的大小方案。将方案对象传递到此属性,以避免基于视图的背景获取方案对象。

valueExpression String
optional

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

valueExpressionTitle String
optional

描述从 valueExpression 返回的值的文本。这由 Legend 微件使用。

sqlExpression String
optional

一个 SQL 表达式,其计算结果为数字。

sqlWhere String
optional

SQL where 子句,用于过滤统计查询的要素。例如,当您希望避免除以 0 的情况时 (像创建优势可视化的情况那样),这很有用。

outlineOptimizationEnabled Boolean
optional
默认值: false

仅适用于面图层。指示多边形轮廓宽度是否应根据视图比例而变化。设置后,必须在 view 参数中提供有效的 MapView 实例。3D SceneViews 不支持此选项。

legendOptions Object
optional

提供用于设置标题以描述字段而不是使用字段名称的选项。此标题将表示 Legend 中的字段。

规范
title String
optional

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

minValue Number
optional

用户设置的最小值。将此参数与 maxValue 结合使用以在下限和上限之间生成分类中断。这将是最低分类间隔的下限。

maxValue Number
optional

用户设置的最大值。将此参数与 minValue 结合使用以在下限和上限之间生成分类中断。这将是最高分类间隔的上限。

defaultSymbolEnabled Boolean
optional
默认值:true

在渲染器上启用 defaultSymbol,并将其分配给没有值的要素以及位于配置数据范围之外的要素。

symbolType String
optional
默认值:2d

要生成的符号类型。这取决于您正在使用的视图和所需的可视化效果。下面描述了可能的值。

描述
2d 使用 2D 符号生成可视化,如 SimpleMarkerSymbolSimpleLineSymbolSimpleFillSymbol。如果为 MapView 中的数据生成可视化效果,请使用此选项。
3d-flat 使用具有平面符号图层的 3D 符号生成可视化,例如 IconSymbol3DLayerLineSymbol3DLayerFillSymbol3DLayer。如果为 SceneView 中的数据生成 2D 可视化,请使用此选项。
3d-volumetric 使用具有体积符号图层的 3D 符号生成可视化效果,例如 ObjectSymbol3DLayerPathSymbol3DLayerExtrudeSymbol3DLayer。如果为 SceneView 中的数据生成 3D 可视化效果,并且只有符号的高度是可变的,例如圆柱体,请使用此选项。如果使用此选项,则必须为 view 参数提供 SceneView 实例。
3d-volumetric-uniform 使用具有体积符号图层的统一大小的 3D 符号生成可视化效果。如果为 SceneView 中的数据生成 3D 可视化效果,并且符号的大小应一致,例如球体,请使用此选项。如果使用此选项,则必须为 view 参数提供 SceneView 实例。

可能值"2d"|"3d-flat"|"3d-volumetric"|"3d-volumetric-uniform"

forBinning Boolean
optional

指示生成的渲染器是否用于图格可视化。如果为 true,则此方法中的输入字段应引用该图层的 featureReduction 属性中定义的聚合字段

optional

允许可取消的请求。如果取消,则承诺将被拒绝,并返回一个名为 AbortError 的错误。另请参见 AbortController

返回
类型 描述
Promise<ClassBreaksRendererResult> 解析为 ClassBreaksRendererResult 的实例。
示例
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",
  classificationMethod: "quantile",
  numClasses: 4
};

// when the promise resolves, apply the renderer to the layer
sizeRendererCreator.createClassBreaksRenderer(sizeParams)
  .then(function(response){
    layer.renderer = response.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,
  classificationMethod: "equal-interval",
  valueExpression: "($feature.POP_POVERTY / $feature.TOTPOP_CY) * 100",
  view: view,
  legendOptions: {
    title: "% of people living in poverty"
  }
};

// when the promise resolves, apply the renderer to the layer
sizeRendererCreator.createClassBreaksRenderer(sizeParams)
  .then(function(response){
    layer.renderer = response.renderer;
  });
createContinuousRenderer(params){Promise<ContinuousRendererResult>}

生成一个渲染器,可直接将其应用于用于调用此方法的图层。渲染器包含一个连续的大小视觉变量,该变量根据指示字段或表达式中查询的统计信息将标记大小映射到特定的停止值。

在大多数情况下,您将提供 layerviewfield 来生成此渲染器。在这种情况下,数据的统计信息不是众所周知的,并且用户不知道要在可视化中使用的大小。您还可以使用 valueExpression 而不是 field,根据从运行时执行的脚本返回的值来可视化要素。

为方便自定义更复杂的可视化创作应用程序,还提供了其他选项。例如,如果已在另一操作中生成了统计信息,则可将统计对象传递给 statistics 参数,以避免对服务器进行额外的调用。

参数
规范
params Object

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

规范

为其生成渲染器的图层。

view View
optional

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

field String
optional

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

normalizationField String
optional

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

sizeScheme SizeScheme
optional

在制作应用程序中,用户可以选择预定义的大小方案。将方案对象传递到此属性,以避免基于视图的背景获取方案对象。

valueExpression String
optional

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

valueExpressionTitle String
optional

描述从 valueExpression 返回的值的文本。这由 Legend 微件使用。

theme String
optional
默认值:high-to-low

基于有意义的数据值,设置大小停止点。

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

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

sqlExpression String
optional

一个 SQL 表达式,其计算结果为数字。

sqlWhere String
optional

SQL where 子句,用于过滤统计查询的要素。例如,当您希望避免除以 0 的情况时 (像创建优势可视化的情况那样),这很有用。

outlineOptimizationEnabled Boolean
optional
默认值: false

仅适用于面图层。指示多边形轮廓宽度是否应根据视图比例而变化。设置后,必须在 view 参数中提供有效的 MapView 实例。3D SceneViews 不支持此选项。

sizeOptimizationEnabled Boolean
optional
默认值: false

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

legendOptions Object
optional

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

规范
title String
optional

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

showLegend Boolean
optional

指示是否在图例中描述渲染器。

optional

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

minValue Number
optional

用户设置的自定义最小值。将此参数与 maxValue 结合使用可在下限和上限之间生成统计信息。这将是返回的大小视觉变量中的最低停止点。

maxValue Number
optional

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

defaultSymbolEnabled Boolean
optional
默认值:true

在渲染器上启用 defaultSymbol,并将其分配给没有值的要素以及位于配置数据范围之外的要素。

symbolType String
optional
默认值:2d

要生成的符号类型。这取决于您正在使用的视图和所需的可视化效果。下面描述了可能的值。

描述
2d 使用 2D 符号生成可视化,如 SimpleMarkerSymbolSimpleLineSymbolSimpleFillSymbol。如果为 MapView 中的数据生成可视化效果,请使用此选项。
3d-flat 使用具有平面符号图层的 3D 符号生成可视化,例如 IconSymbol3DLayerLineSymbol3DLayerFillSymbol3DLayer。如果为 SceneView 中的数据生成 2D 可视化,请使用此选项。
3d-volumetric 使用具有体积符号图层的 3D 符号生成可视化效果,例如 ObjectSymbol3DLayerPathSymbol3DLayerExtrudeSymbol3DLayer。如果为 SceneView 中的数据生成 3D 可视化效果,并且只有符号的高度是可变的,例如圆柱体,请使用此选项。如果使用此选项,则必须为 view 参数提供 SceneView 实例。
3d-volumetric-uniform 使用具有体积符号图层的统一大小的 3D 符号生成可视化效果。如果为 SceneView 中的数据生成 3D 可视化效果,并且符号的大小应一致,例如球体,请使用此选项。如果使用此选项,则必须为 view 参数提供 SceneView 实例。

可能值"2d"|"3d-flat"|"3d-volumetric"|"3d-volumetric-uniform"

forBinning Boolean
optional

指示生成的渲染器是否用于图格可视化。如果为 true,则此方法中的输入字段应引用该图层的 featureReduction 属性中定义的聚合字段

optional

允许可取消的请求。如果取消,则承诺将被拒绝,并返回一个名为 AbortError 的错误。另请参见 AbortController

返回
类型 描述
Promise<ContinuousRendererResult> 解析为 ContinuousRendererResult 的实例。
示例
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"
};

// when the promise resolves, apply the renderer to the layer
sizeRendererCreator.createContinuousRenderer(sizeParams)
  .then(function(response){
    layer.renderer = response.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"
  },
  theme: "above"
};

// when the promise resolves, apply the renderer to the layer
sizeRendererCreator.createContinuousRenderer(sizeParams)
  .then(function(response){
    layer.renderer = response.renderer;
  });
createVisualVariables(params){Promise<VisualVariableResult>}

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

有两种不同方式可以调用此方法。最常见的情况是提供 layerviewfield。在这种情况下,数据的统计信息不是众所周知的,并且用户不知道要使用什么大小。您可选择性地使用 valueExpression 而不是字段,根据从运行时执行的脚本返回的数值来可视化要素。

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

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

参数
规范
params Object

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

规范

为其生成视觉变量的图层。

view View
optional

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

field String

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

normalizationField String
optional

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

sizeScheme SizeScheme
optional

在制作应用程序中,用户可以选择预定义的大小方案。将方案对象传递到此属性,以避免基于视图的背景获取方案对象。

valueExpression String
optional

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

valueExpressionTitle String
optional

描述从 valueExpression 返回的值的文本。这由 Legend 微件使用。

theme String
optional
默认值:high-to-low

基于有意义的数据值,设置大小停止点。

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

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

sqlExpression String
optional

一个 SQL 表达式,其计算结果为数字。

sqlWhere String
optional

SQL where 子句,用于过滤统计查询的要素。例如,当您希望避免除以 0 的情况时 (像创建优势可视化的情况那样),这很有用。

sizeOptimizationEnabled Boolean
optional
默认值: false

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

legendOptions Object
optional

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

规范
title String
optional

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

showLegend Boolean
optional

指示是否在图例中描述渲染器。

optional

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

minValue Number
optional

用户设置的自定义最小值。将此参数与 maxValue 结合使用可在下限和上限之间生成统计信息。这将是返回的大小视觉变量中的最低停止点。

maxValue Number
optional

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

worldScale Boolean
optional

表示符号的尺寸单位是否以米为单位。这在使用 3D 体积符号系统生成可视化时应该为 true

axis String
optional
默认值: all

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

可能值"all"|"height"

forBinning Boolean
optional

指示生成的渲染器是否用于图格可视化。如果为 true,则此方法中的输入字段应引用该图层的 featureReduction 属性中定义的聚合字段

optional

允许可取消的请求。如果取消,则承诺将被拒绝,并返回一个名为 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;
  });

类型定义

AgeRendererResult
起始版本:GeoScene Maps SDK for JavaScript 4.9

createAgeRenderer() 方法的结果对象。各属性的详细信息见下表。

属性

配置为最佳匹配视图背景和数据分布的渲染器对象。在图层的 renderer 属性上对它进行设置以更新其可视化效果。

visualVariables SizeVariable[]

根据数据的统计信息和大小方案配置的大小视觉变量。

unit String

用于在输出 renderer 中表示年龄的时间单位。

sizeScheme SizeScheme

视觉变量使用的大小方案。

defaultValuesUsed Boolean

表示在图层中没有足够的数据和/或统计数据时是否使用默认值。当所有要素都具有相同的字段值或根本没有值时,通常使用默认值。

从生成的表达式的查询返回的基本统计信息。

basemapId String

用于确定要素的最佳填充颜色的底图的 ID。

basemapTheme String

表示输入视图底图的平均颜色是 light 还是 dark

ClassBreaksRendererResult
起始版本:GeoScene Maps SDK for JavaScript 4.6

createClassBreaksRenderer() 方法的结果对象。各属性的详细信息见下表。

属性

配置为最佳匹配视图背景和数据分布的渲染器对象。在图层的 renderer 属性上对它进行设置以更新其可视化效果。

classBreaksResult ClassBreaksResult

此对象描述了使用指定分类方法从给定字段的图层数据生成的分类间隔。

sizeScheme SizeScheme

视觉变量使用的大小方案。

defaultValuesUsed Boolean

表示在图层中没有足够的数据和/或统计数据时是否使用默认值。当所有要素都具有相同的字段值或根本没有值时,通常使用默认值。

basemapId String

用于确定要素的最佳填充颜色的底图的 ID。

basemapTheme String

表示输入视图底图的平均颜色是 light 还是 dark

ContinuousRendererResult

createContinuousRenderer() 方法的结果对象。各属性的详细信息见下表。

属性

配置为最匹配视图背景和数据展开的渲染器对象。在图层的 renderer 属性上对它进行设置以更新其可视化效果。

visualVariables SizeVariable[]

基于数据的统计信息配置的大小视觉变量。

sizeScheme SizeScheme

视觉变量使用的大小方案。

defaultValuesUsed Boolean

表示在图层中没有足够的数据和/或统计数据时是否使用默认值。当所有要素都具有相同的字段值或根本没有值时,通常使用默认值。

从查询返回给服务的基本统计信息,用于给定字段名称或表达式中的数据。

basemapId String

用于确定要素的最佳填充颜色的底图的 ID。

basemapTheme String

表示输入视图底图的平均颜色是 light 还是 dark

VisualVariableResult

createVisualVariables() 方法的结果对象。各属性的详细信息见下表。

属性
visualVariables SizeVariable[]

基于数据的统计信息和视图比例配置的大小视觉变量数组。

sizeScheme SizeScheme

主视觉变量使用的大小方案。

defaultValuesUsed Boolean

表示在图层中没有足够的数据和/或统计数据时是否使用默认值。当所有要素都具有相同的字段值或根本没有值时,通常使用默认值。

从对服务的查询中返回给定字段或表达式的基本统计信息。

basemapId String

用于确定要素的最佳填充颜色的底图的 ID。

basemapTheme String

表示输入视图底图的平均颜色是 light 还是 dark

authoringInfo AuthoringInfo

与创建视觉变量相关的创作信息。这包括与来自滑块和所选主题的 UI 输入相关的信息。

您的浏览器不再受支持。请升级您的浏览器以获得最佳体验。请参阅浏览器弃用帖子以获取更多信息