尝试一下在线预览此示例揭示了一种可视化样式沃曼点,它通过网格圆圈内的各种填充量来表示值。这种风格的灵感来自 Richard Saul Wurman 1966 年出版的《城市地图集:20 个美国城市》一书。其中,地图的风格适用于单一主题,例如人口密度,也适用于多个主题,例如人口密度和收入。统计数据表示为与大小相等的外圆网格内的数据成比例的内圆。较高的百分比由填充较多的符号表示,而较低的百分比表示较空的圆圈。完全没有价值的区域不会被符号化。
在此示例中,我们根据森林覆盖的土地百分比 (NLCD) 填充圆圈。我们使用颜色视觉变量来表示总人口。森林茂密的地区用实心圆圈表示。人口多的地区是橙色的,人口少或没有人口的地区是绿色的。
我们使用 SimpleRenderer 中的 CIMSymbol 实现了这种可视化。CIM 符号用于在 MapView 中显示要素和图形的多层矢量符号。
CIMSymbol 有两个符号层 —— 一个代表外圈(总面积),另一个代表内圈(或森林面积的百分比)。外圈的大小因视图比例而异。内圈的大小随视野比例乘以林地百分比而变化。
下面的代码片段演示了如何使用 Arcade 表达式覆盖内圈的大小。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
symbol.primitiveOverrides = [
{
type: "CIMPrimitiveOverride",
primitiveName: "innerSizeOverride",
propertyName: "Size",
valueExpressionInfo: {
type: "CIMExpressionInfo",
title: "Size in pixels of inner ring at maxScale",
// outerSize 是最大比例的像素大小
// innerSize 由
// outerSize 乘以森林比率确定
expression: `
const outerSize = 42 * 2311161 / $view.scale;
const forestRatio = $feature.NLCDfrstPt / 100;
const innerSize = outerSize * forestRatio;
return IIF( innerSize < 3, 3, innerSize );
`,
returnType: "Default"
}
}
]
有关详细信息,请参阅 CIM 规范。