关系

AMD: require(["geoscene/smartMapping/renderers/relationship"], (relationshipRendererCreator) => { /* 代码 */ });
ESM: import * as relationshipRendererCreator from "@geoscene/core/smartMapping/renderers/relationship";
对象: geoscene/smartMapping/renderers/relationship
自: GeoScene API for JavaScript 4.9

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

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

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

relationship-obesity-diabetes

relationship-obesity-diabetes

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

Generate a relationship visualization

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

已知限制

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

方法概述

名称 返回类型 总结 对象
Promise<RendererResult>更多细节

基于一组竞争的数字字段生成关系呈现器(二元 choropleth)

更多信息relationship
Promise<UniqueValueRenderer>更多细节

根据给定的输入参数更新由 createRenderer() 生成的关系呈现器(二元 choropleth)。

更多信息relationship

方法详述

createRenderer(params){Promise<RendererResult>}

基于一组竞争的数字字段生成关系呈现器(二元 choropleth)。

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

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

参数:
规范:
params Object

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

详述:

生成可视化的图层。

view View

将在其中呈现可视化的视图实例。

field1 Object

数字字段用于研究它与 field2 的关系。在默认的可视化中,这个字段的值沿着图例的垂直轴呈现。

详述:
field String

数字字段的名称。

normalizationField String
optional

用于规格化给定字段的数字字段的名称。在 choropleth 可视化中,最好的做法是对数据值进行规范化(如果它们还没有被规范化)。

maxValue Number
optional

在给定字段中显示的值的最大界限。如果一个要素的值大于这个值,那么它将被分配渲染器的默认符号。

minValue Number
optional

在给定字段中显示的最小值的界限。如果一个要素的值小于这个值,那么它将被分配渲染器的默认符号。

label String
optional

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

field2 Object

一个数字字段,用于探索它与 field1 的关系。在默认的可视化中,这个字段的值沿着图例的水平轴呈现。

 详述:
field String

数字字段的名称。

normalizationField String
optional

用于规格化给定字段的数字字段的名称。在 choropleth 可视化中,最好的做法是对数据值进行规范化

(如果它们还没有被规范化)。

maxValue Number
optional

在给定字段中显示的值的最大界限。如果一个要素的值大于这个值,那么它将被分配渲染器的默认符号。

minValue Number
optional

在给定字段中显示的最小值的界限。如果一个要素的值小于这个值,那么它将被分配渲染器的默认符号。

label String
optional

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

classificationMethod String
optional
默认值: quantile

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

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

focus String
optional
默认值: null

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

例如 描述
null relationship-legend-null 这个图例显示为一个正方形。图例的右上角表明来自 field1 和 field2 的值都被认为是高的。
HH relationship-legend-hh 这个图例显示为一个钻石,焦点在右上角,其中 field1 和 field2 的值都被认为是高的。
HL relationship-legend-hl 这个图例显示为一个菱形,焦点位于右上角,其中 field1 的值高, field2 的值低。
LH relationship-legend-lh 这个图例显示为一个菱形,焦点在右上角,来自 field1 的值是低的,来自 field2 的值是高的。
LL relationship-legend-ll 这个图例显示为一个菱形,焦点在右上角,其中 field1 和 field2 的值都被认为是低的。
numClasses Number
optional
默认值: 3

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

2 类 3 类 4 类
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

提供用于修改描述可视化的图例属性的选项。

详述:
title String
optional

图例中用来描述渲染器的标题。

showLegend Boolean
optional

表示是否将渲染器包含在图例中。

relationshipScheme RelationshipScheme
optional

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

symbolType String
optional
默认值: 2d

要生成的符号类型。 这取决于您正在使用的视图和所需的可视化。 不需要为具有网格几何类型的图层指定此参数。 可能的值如下所述。

描述
2d 使用 2D 符号(如 SimpleMarkerSymbol, SimpleLineSymbol 或  SimpleFillSymbol)生成可视化。如果在 MapView 中生成数据的可视化,请使用此选项。
3d-flat 使用具有平面符号图层(如 IconSymbol3DLayerLineSymbol3DLayer 或 FillSymbol3DLayer)的 3D 符号生成可视化。 如果为  SceneView 中的数据生成 2D 可视化,请使用此选项。
3d-volumetric  使用具有体积符号图层(例如  ObjectSymbol3DLayer, PathSymbol3DLayer 或 ExtrudeSymbol3DLayer)的 3D 符号生成可视化。 如果为 SceneView 中的数据生成 3D 可视化,请使用此选项。 如果使用此选项,则必须将 SceneView 实例提供给view 参数。
3d-volumetric-uniform 使用具有体积符号图层的统一大小的 3D 符号生成可视化。 如果为  SceneView 中的数据生成 3D 可视化,并且符号的大小应统一(例如球体),请使用此选项。 如果使用此选项,则必须将 SceneView 实例提供给  view  参数。

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

defaultSymbolEnabled Boolean
optional
默认值: true

在渲染器上启用defaultSymbol,并将其赋值给没有值或在指定的类断点之外的要素。

colorMixMode String
optional
默认值: replace

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

描述
tint 将符号颜色应用于去饱和几何/纹理颜色。
replace 移除几何/纹理颜色并应用符号颜色
multiply 将几何/纹理颜色 值与符号颜色值相乘。 结果是颜色较深。 与白色相乘可保持几何颜色相同。
signal AbortSignal
optional

允许取消请求。如果被取消,promise 将被拒绝,并返回 AbortError的错误并显示 AbortController

返回:
类型 描述
Promise<RendererResult> 解析 RendererResult 的实例。
例如:
const layer = new FeatureLayer({
  url: "https://www.geosceneonline.cn/..."
});

// 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() 生成的关系呈现器(二元 choropleth)。

参数:
规范:
params Object

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

详述:
field1 Object

一个数字字段,用于研究它与 field2 的关系。在默认的可视化中,这个字段的值沿着图例的垂直轴呈现。

详述:
field String

数字字段的名称。

normalizationField String
optional

用于规格化给定字段的数字字段的名称。在 choropleth 可视化中,最好的做法是对数据值进行规范化(如果它们还没有被规范化)。

classBreakInfos ClassBreak[]

类中断为关系可视化中使用的第一个字段。

label String
optional

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

field2 Object

一个数字字段,用于研究它与 field1 的关系。在默认的可视化中,这个字段的值沿着图例的水平轴呈现。

详述:
field String

数字字段的名称。

normalizationField String
optional

用于规格化给定字段的数字字段的名称。在 choropleth 可视化中,最好的做法是对数据值进行规范化(如果它们还没有被规范化)。

classBreakInfos ClassBreak[]

这个类中断了关系可视化中使用的第二个字段。

label String
optional

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

focus String
optional
默认值: null

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

例如 描述
null relationship-legend-null 图例呈现为正方形。 图例的右上角表示来自  field1 和 field2  的值都被认为是高的。
HH relationship-legend-hh 图例呈现为菱形,焦点位于顶角,其中  field1 和 field2  的值都被视为高。
HL relationship-legend-hl 图例呈现为菱形,焦点位于顶角,其中 field1  的值较高,而 field2 的值较低。
LH relationship-legend-lh 图例呈现为菱形,焦点位于上角,其中 field1  的值较低,而 field2 的值较高。
LL relationship-legend-ll 图例呈现为菱形,焦点位于顶角,其中 field1 和 field2 的值都被视为低。
numClasses Number

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

2 类 3 类 4 类
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[]

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

relationshipScheme RelationshipScheme

呈现程序使用的关系方案。

basemapId String

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

basemapTheme String

表示输入视图底图的平均颜色是 lightdark

Your browser is no longer supported. Please upgrade your browser for the best experience. See our browser deprecation post for more details.