主题
不透明度
字数统计: 1.5k 字
阅读时长: 约 3 分钟
当前版本: 4.29
山洪灾害预警 (2002 - 2012)。警告区均被赋予相同的透明符号,这使得洪水活动更频繁的区域可以更清楚地显示。
聚类和热力图仅适用于点图层。当面重叠时,您可以使用每个要素的不透明度来可视化其密度。
什么是每个要素的不透明度?
通过在要素上设置高透明度符号,可以有效地可视化具有大量重叠要素的图层 (至少 90-99% 的透明度效果会最好)。这对于显示许多面和折线堆叠在一起的区域特别有效。
例如,以下地图显示了在 10 年内经历山洪警报的区域。每个多边形代表一个持续时间跨度为 1 到 12 小时的山洪警报。每个都分配了一个 alpha 值为 0.04
(96% 透明度) 的蓝色填充符号。

可视化为高透明度多边形的山洪警报。不透明地区经历了大量的山洪预警。透明地区的山洪预警较少
仅经历一次山洪警报的区域的不透明度值为 0.04
。经历多次山洪警报的区域将具有更高的不透明度值,使其更明显。
如果未基于每个要素设置不透明度,则只能区分至少经历一次山洪警报的区域。

可视化为不透明多边形的山洪警报。没有视觉提示指示比其他区域经历更多警报的区域。
无论您将所有数据存储在一个图层中,还是存储在多个图层中,此可视化技术都有效。在任一情况下,每个要素的透明度都会与其他重叠要素相乘,因此与要素稀疏的区域相比,您可以轻松查看要素密度较高的位置。
如何设置不透明度
不透明度只能通过符号 (表示每个要素) 的颜色属性进行设置。这允许给定像素处的不透明度与重叠要素相乘。
请注意下面代码段中的颜色值。每个参数表示一个颜色通道 (即 rgba(red, green, blue, alpha)
)。alpha (即不透明度) 值必须是一个非常小的数字。根据要素的密度,介于 0.01 和 0.1 之间的数字通常效果最佳。
js
layer.renderer = new SimpleRenderer({
symbol: new SimpleFillSymbol({
color: "rgba(0,76,115,0.04)",
outline: null
})
});
注:修改 layer.opacity
(而不是渲染器的符号) 会在所有要素上应用一致的透明度,并不会产生所需的结果。
示例
一个图层的面密度
以下示例演示了如何基于每个要素设置不透明度,以有效地显示重叠面的密度。
创建一个简单渲染器。
在渲染器中设置一个符号,其 color 属性具有非常小的 alpha 值 (例如 0.01 - 0.1)。
js
layer.renderer = new SimpleRenderer({
symbol: new SimpleFillSymbol({
color: "rgba(0,76,115,0.04)",
outline: null
})
});
山洪灾害预警 (2002 - 2012)。所有警告区均被赋予相同的透明符号,这使得活动更激烈的区域可以更清楚地显示出来
两个图层的面密度
您可能需要考虑多个图层之间的要素密度。以下示例演示了如何显示两个图层 (表示火灾区域) 中的面密度。由于图层彼此重叠绘制,因此我们可以在两个或多个图层的要素上设置相同的符号,以实现与上一个示例相同的可视化效果。
创建一个简单渲染器。
在渲染器中设置一个符号,其具有非常小的 alpha 值 (例如 0.01 - 0.1)。
将同一渲染器应用于表示相同或相似现象的两个或多个图层。
js
const renderer = new SimpleRenderer({
symbol: new SimpleFillSymbol({
color: "rgba(168, 0, 0, 0.17)",
outline: null
})
});
burnsLayer.renderer = renderer;
prescribedLayer.renderer = renderer;
加州火灾区域 (1878 - 2020)。此可视化显示了哪些区域经历了更多的火灾,无论其是预先规划的、自然的还是意外的
多类型密度
以下示例演示了如何显示两个图层 (表示不同类型的要素) 中的面密度。此应用程序可视化了 10 年内所有山洪和龙卷风警报的位置。山洪警报被赋予一个透明的蓝色填充符号,龙卷风警报被赋予一个透明的橙色符号。
这使您可以查看洪水密度高的区域,龙卷风密度高的区域,以及两者密度都高的区域。
创建两个简单渲染器对象。
在每个渲染器中设置具有不同颜色的符号。颜色必须具有不同的色调,但颜色的 alpha 值应该是相同的值 (例如 0.01 - 0.1)。
将每个渲染器应用于其各自的图层。
在最顶层的图层上设置
average
混合模式。这将平均其下方所有图层的颜色。这可确保最上面的图层不会仅因为地图中的图层顺序而主导可视化。
山洪和龙卷风预警区 (2002 - 2012)。每个图层均应用具有相同透明度但不同色调的符号。这允许最终用户查看经历高密度山洪警报和/或龙卷风警报的区域。
js
const tornadoes = new FeatureLayer({
title: "Tornado warnings",
url: "https://services.arcgis.com/V6ZHFr6zdgNZuVG0/arcgis/rest/services/Tornado_warnings_2002_to_2011_for_interactive_demo/FeatureServer",
popupEnabled: false,
blendMode: "average",
renderer: new SimpleRenderer({
symbol: new SimpleFillSymbol({
color: "rgba(255, 128, 26,0.03)",
outline: null
})
})
});