• geoscene/smartMapping

relationship

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

该对象包含一个辅助方法,用于创建渲染器以探索两个数字属性之间的关系。这通常称为双变量等值区域可视化。此渲染器沿单独色带将每个变量分为 2、3 或 4 个类。其中一个色带旋转 90 度并覆盖在另一个色带上以创建 2x2、3x3 或 4x4 的方形网格。x 轴表示一个变量的取值范围,y 轴表示第二个变量的取值范围。从左下角到右上角的对角线方格表示两个变量可能相关或一致的要素。

关系渲染器图例
关系渲染器的图例类似于两个单色调连续色带相互叠加的网格,沿对角线形成第三个色调,这表明两个变量可能相关的位置。

右下角和左上角表示一个字段具有高值而另一字段具有低值的要素,反之亦然。下图显示了这种样式在县区地图上的外观,其中将诊断患有糖尿病的人口百分比与肥胖人口的百分比进行了比较。

relationship-obesity-diabetes

虽然这种可视化样式最初是为 2D 分级统计图设计的,但它在 3D 场景中特别有用,因为在 3D 场景中,颜色和大小的双变量可视化是不可能的,因为要素的大小是为真实世界的物体大小 (例如建筑群) 保留的。因此,关系渲染器是创建 3d 对象 SceneLayers 的主题双变量可视化的理想选择。

生成关系可视化

需注意的是:即使您观察到两个感兴趣的变量之间存在正相关关系,也并不意味着它们在统计上是相关的。这也不意味着一个变量的存在会影响另一个变量。因此,应慎重使用此渲染器,并了解两个变量可能相关的先验知识。

已知限制

  • SceneLayers 必须启用 supportsRenderersupportsLayerQuery 功能,除非将预定义 statistics 对象提供给方法的 statistics 参数。请使用 getFieldInfoUsage() 方法检查 SceneLayer 的功能。

方法概述

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

基于一组竞争的数字字段生成关系渲染器 (二元分区着色)。

更多详情
relationship
Promise<UniqueValueRenderer>

根据给定的输入参数更新由 createRenderer() 生成的关系渲染器 (二元分区着色)。

更多详情
relationship

方法详细说明

createRenderer(params){Promise<RendererResult>}

基于一组竞争的数字字段生成关系渲染器 (二元分区着色)。

每个要素的类别都是根据此方法内部生成的 Arcade 表达式的结果确定的。您需要提供 layerviewfield1 名称和 field2 名称来生成此渲染器。或者,您可以设置 focus 以更改图例的旋转和 numClasses 参数以更改图例的网格大小。

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

参数
规范
params Object

输入参数,用于根据一对数字字段生成可视化关系。各参数的详细信息见下表。

规范

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

view View

将在其中渲染可视化的视图实例。

field1 Object

数值字段用于探究它与 field2 的关系。在默认可视化中,此字段的值沿 Legend 的垂直轴进行呈现。

规范
field String

数值字段的名称。

normalizationField String
optional

数值字段的名称,用于规范化给定 field。在分级统计可视化中,最好的做法是对数据值进行归一化 (如果还未对其进行归一化)。

maxValue Number
optional

在给定字段中显示的值的最大界限。如果要素的值大于此值,则为其分配渲染器的默认符号。

minValue Number
optional

在给定字段中显示的值的最小界限。如果要素的值小于此值,则为其分配渲染器的默认符号。

label String
optional

用于描述图例中的字段或变量的标注。

field2 Object

数值字段用于探究它与 field1 的关系。在默认可视化中,此字段的值沿 Legend 的水平轴进行呈现。

规范
field String

数值字段的名称。

normalizationField String
optional

数值字段的名称,用于规范化给定 field。在分级统计可视化中,最好的做法是对数据值进行归一化 (如果还未对其进行归一化)。

maxValue Number
optional

在给定字段中显示的值的最大界限。如果要素的值大于此值,则为其分配渲染器的默认符号。

minValue Number
optional

在给定字段中显示的值的最小界限。如果要素的值小于此值,则为其分配渲染器的默认符号。

label String
optional

用于描述图例中的字段或变量的标注。

classificationMethod String
optional
默认值: quantile

对每个字段的数据值进行分类的方法。有关每个分类类型的更多信息,请参见 classBreaks

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

focus String
optional
默认值: null

确定 Legend 的方向。此值不会更改图层中任何要素的渲染器或符号系统。这仅影响图例。有关可能值的说明,请参阅下表。有关如何阅读图例的更详尽说明,请参阅本页顶部的类说明。

示例 描述
null relationship-legend-null 此图例显示为一个正方形。图例的右上角指示 field1field2 的值被认为是高值。
HH relationship-legend-hh 此图例显示为一个菱形,焦点在上顶角,其中 field1field2 的值被认为是高值。
HL relationship-legend-hl 此图例显示为一个菱形,焦点在上顶角,其中 field1 中的值为高值,field2 的值为低值。
LH relationship-legend-lh 此图例显示为一个菱形,焦点在上顶角,其中 field1 中的值为低值,field2 的值为高值。
LL relationship-legend-ll 此图例显示为一个菱形,焦点在上顶角,其中 field1field2 的值被认为是低值。
numClasses Number
optional
默认值:3

表示用于分解每个字段值的类数。更多的类可提供更多的细节,但更多的颜色,会使可视化更难理解。只有三个可能的值。

2 classes 3 classes 4 classes
relationship-breaks-2 relationship-breaks-3 relationship-breaks-4

可能值:2 | 3 | 4

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

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

relationshipScheme RelationshipScheme
optional

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

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,并将其分配给没有值的要素或在指定的类断点之外的要素。

colorMixMode String
optional
默认值:replace

此选项仅适用于为网格 SceneLayers 生成渲染器。指定如何将符号的颜色应用于几何颜色/纹理。有关更多上下文,请参阅 FillSymbol3DLayer.material 文档。有关可能的值,请参见下表。

描述
tint 将符号 color 应用于不饱和的几何体/纹理颜色。
replace 移除几何/纹理颜色并应用符号color
multiply 将几何图形/纹理颜色值与符号 color 值相乘。结果是颜色变深。与白色相乘可使几何图形颜色保持不变。
forBinning Boolean
optional

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

optional

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

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

// will create a bivariate choropleth visualization exploring the relationship
// between the % of the population classified as obese, and the %
// of the population diagnosed with diabetes

const params = {
  layer: layer,
  view: view,
  field1: {
    field: "POP_Diabetes",
    normalizationField: "TOTAL_POP"
  },
  field2: {
    field: "POP_Obesity",
    normalizationField: "TOTAL_POP"
  },
  focus: "HH",
  defaultSymbolEnabled: false
};

// when the promise resolves, apply the renderer to the layer
relationshipRendererCreator.createRenderer(params)
  .then(function(response){
    layer.renderer = response.renderer;
  });
updateRenderer(params){Promise<UniqueValueRenderer>}

根据给定的输入参数更新由 createRenderer() 生成的关系渲染器 (二元分区着色)。

参数
规范
params Object

用于更新在 createRenderer() 中创建的关系可视化的输入参数。

规范
field1 Object

数值字段,用于探究它与 field2 的关系。在默认可视化中,此字段的值沿 Legend 的垂直轴进行呈现。

规范
field String

数值字段的名称。

normalizationField String
optional

数值字段的名称,用于规范化给定 field。在分级统计可视化中,最好的做法是对数据值进行归一化 (如果还未对其进行归一化)。

classBreakInfos ClassBreak[]

关系可视化中使用的第一个字段的分类间隔。

label String
optional

用于描述图例中的字段或变量的标注。

field2 Object

数值字段,用于探究它与 field1 的关系。在默认可视化中,此字段的值沿 Legend 的水平轴进行呈现。

规范
field String

数值字段的名称。

normalizationField String
optional

数值字段的名称,用于规范化给定 field。在分级统计可视化中,最好的做法是对数据值进行归一化 (如果还未对其进行归一化)。

classBreakInfos ClassBreak[]

关系可视化中使用的第二个字段的分类间隔。

label String
optional

用于描述图例中的字段或变量的标注。

focus String
optional
默认值: null

确定 Legend 的方向。此值不会更改图层中任何要素的渲染器或符号系统。这仅影响图例。有关可能值的说明,请参阅下表。有关如何阅读图例的更详尽说明,请参阅本页顶部的类说明。

示例 描述
null relationship-legend-null 此图例显示为一个正方形。图例的右上角指示 field1field2 的值被认为是高值。
HH relationship-legend-hh 此图例显示为一个菱形,焦点在上顶角,其中 field1field2 的值被认为是高值。
HL relationship-legend-hl 此图例显示为一个菱形,焦点在上顶角,其中 field1 中的值为高值,field2 的值为低值。
LH relationship-legend-lh 此图例显示为一个菱形,焦点在上顶角,其中 field1 中的值为低值,field2 的值为高值。
LL relationship-legend-ll 此图例显示为一个菱形,焦点在上顶角,其中 field1field2 的值被认为是低值。
numClasses Number

表示用于分解每个字段值的类数。更多的类可提供更多的细节,但更多的颜色,会使可视化更难理解。只有三个可能的值。

2 classes 3 classes 4 classes
relationship-breaks-2 relationship-breaks-3 relationship-breaks-4

可能值:2 | 3 | 4

colors Color[]

渲染器的 uniqueValueInfos 中的符号将使用的颜色数组。

关系渲染器 (由 createRenderer() 生成) 使用该方法中提供的其他参数进行更新。

返回
类型 描述
Promise<UniqueValueRenderer> 解析为更新的关系渲染器。

类型定义

RendererResult

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

属性

表示关系可视化的渲染器对象。在图层的 renderer 属性上对它进行设置以更新其可视化效果。

classBreaks Object

描述关系可视化中考虑到的两个字段的每个分类间隔。

规范

此分类间隔是为 field1 参数中的值生成的。

此分类间隔是为 field2 参数中的值生成的。

uniqueValueInfos UniqueValueInfo[]

描述可视化中使用的每个容器或条柱。每个唯一值信息对象描述了 field1field2 的分类间隔。因此,具有相同颜色下降份额的要素将具有属于 field1 的相同分类间隔值和 field2 的相同分类间隔值。

relationshipScheme RelationshipScheme

渲染器使用的关系方案。

basemapId String

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

basemapTheme String

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

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