生成关系可视化

尝试一下在线预览

此示例演示如何生成 关系可视化 ( 或双变量等值线 )以比较 SceneLayer 中的两个数值字段。 这是通过 关系渲染器创建者帮助对象 中的 createRenderer() 方法完成的。

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

创建双变量 choropleth 可视化通常既乏味又耗时,因为它涉及创建数据的两个分类并将它们小心地组合到 2x2、3x3 或 4x4 网格上的 bin 中。 创建效果良好并正确传达信息的配色方案也可能非常困难。 relationshipRendererCreator 模块中的 createRenderer 方法消除了创建关系可视化所需的大量猜测和时间。 您所要做的就是提供以下信息,然后为您生成渲染器,包括预定的配色方案。 您还可以在 关系符号模块 中使用其他配色方案。

                  
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
const params = {
  layer: layer,
  view: view,
  field1: {
    field: "StarScore"
  },
  field2: {
    field: "ElectricUse"
  },
  focus: "HH", // changes orientation of the legend
  numClasses: 2 // 2x2 grid (value can also be 3 or 4)
};

// That's it! Now apply the renderer to your layer

relationshipRendererCreator.createRenderer(params).then((response) => {
  layer.renderer = response.renderer;
});

从技术上讲,输出渲染器是一个 UniqueValueRenderer 实例。 默认情况下,图例具有通用标签,用于指示图例各个区域的高位和低位。 您可以通过修改每个 UniqueValueInfo 对象的 标签 属性来自定义此文本。

                
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
renderer.uniqueValueInfos.forEach((info) => {
  switch (info.value) {
    case "HH":
      info.label = "High energy score, High electric use";
      break;
    case "HL":
      info.label = "High energy score, Low electric use";
      break;
    case "LH":
      info.label = "Low energy score, High electric use";
      break;
    case "LL":
      info.label = "Low energy score, Low electric use";
      break;
  }
});

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

关系渲染器最容易在 GeoScene Online 中创建和配置。 阅读这个博客 来了解更多如何做到这一点。

注意

请记住,在大多数应用程序中应避免 生成 渲染器,因为会影响最终用户的性能成本。 如 智能制图 指南主题所述,Smart Mapping API 设计用于两种类型的应用程序:数据探索应用程序和类似于 GeoScene Online 的可视化创作应用程序。 在所有其他情况下,渲染器应保存到图层或使用任何 渲染器类 手动创建。

其他可视化示例和资源

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