HeatmapRenderer

AMD: require(["geoscene/renderers/HeatmapRenderer"], (HeatmapRenderer) => { /* code goes here */ });
ESM: import HeatmapRenderer from "@geoscene/core/renderers/HeatmapRenderer";
类: geoscene/renderers/HeatmapRenderer
继承于:HeatmapRenderer Renderer Accessor
起始版本:GeoScene Maps SDK for JavaScript 4.8

HeatmapRenderer 使用核密度分析FeatureLayersCSVLayersGeoJSONLayersOGCFeatureLayers 中的点要素渲染为栅格表面。

要创建此视觉效果,HeatmapRenderer 将在每个点上拟合平滑的曲面。曲面值在该点的位置处最高,并与距该点的距离成比例地减小,在距以半径指定的点的距离处达到零。曲面值等于点的字段值,如果未提供字段,则为 1。每个像素的密度可通过将它们覆盖的所有核曲面的值相加来计算。

由于没有用于在图层视图中查询密度值的 API,我们建议您使用 heatmapRendererCreator 智能制图函数来创建热点图的初始视图,然后根据需要进行渲染器调整。

颜色根据其密度值分配给每个像素。由 colorStops 属性指定的色带将颜色映射到每个像素的密度值与 maxDensity 的比率。这简化了创建自己色标的过程,因为您不需要知道将色带应用于渲染器的密度值范围。

已知限制

3D SceneView 当前不支持标注和过滤器

另请参阅
示例
layer.renderer = {
  type: "heatmap",
  field: "crime_count",
  colorStops: [
    { ratio: 0, color: "rgba(255, 255, 255, 0)" },
    { ratio: 0.2, color: "rgba(255, 255, 255, 1)" },
    { ratio: 0.5, color: "rgba(255, 140, 0, 1)" },
    { ratio: 0.8, color: "rgba(255, 140, 0, 1)" },
    { ratio: 1, color: "rgba(255, 0, 0, 1)" }
  ],
  minDensity: 0,
  maxDensity: 500,
  radius: 10
};

构造函数

new HeatmapRenderer(properties)
参数
properties Object
optional

有关可能传递给构造函数的所有属性的列表,请参见属性

属性概述

可以设置、检索或侦听任何属性。请参阅使用属性主题。
显示继承属性 隐藏继承属性
名称 类型 描述
AuthoringInfo

创作元数据仅包含在从智能制图创建器方法之一生成的渲染器中,例如 sizeRendererCreator.createContinuousRenderer()colorRendererCreator.createContinuousRenderer()

更多详情
渲染器
HeatmapColorStop[]

描述渲染器色带的对象数组。

更多详情
HeatmapRenderer
String

类的名称。

更多详情
Accessor
String

用于对每个热点图的密度进行加权的属性字段的名称。

更多详情
HeatmapRenderer
Object

一个对象,提供用于在图例中描述渲染器的选项。

更多详情
HeatmapRenderer
Number

要在热点图曲面中指定颜色的最大密度值。

更多详情
HeatmapRenderer
Number

要在热点图曲面中指定颜色的最小密度值。

更多详情
HeatmapRenderer
Number

用于创建围绕每个点拟合的平滑内核曲面的搜索半径 (以磅为单位)。

更多详情
HeatmapRenderer
Number

设置后,热点图在给定比例下的可视化将保持静态,不会随着用户放大和缩小视图而改变。

更多详情
HeatmapRenderer
String

渲染器的类型。

更多详情
HeatmapRenderer
String

遵循 Arcade 可视化配置文件定义的规范的 Arcade 表达式 表达式。

更多详情
HeatmapRenderer
String

标题,用于标识和描述 valueExpression 属性中定义的 Arcade 表达式 表达式。

更多详情
HeatmapRenderer

属性详细信息

创作元数据仅包含在从智能制图创建器方法之一生成的渲染器中,例如 sizeRendererCreator.createContinuousRenderer()colorRendererCreator.createContinuousRenderer()。这包括来自 UI 元素的信息,例如滑块和选定的分类方法和主题。这允许用户客户端保存特定的可覆盖设置,以便下次通过 UI 访问时,可以记住它们的选择。

描述渲染器色带的对象数组。像素的密度值与渲染器的 maxDensity 之比将映射到相应的颜色。第一个停靠点的颜色(即具有最低 ratio 值的停靠点)的 alpha 值必须为 0,以便基础底图在应用程序中可见。

默认值如下:

[
  { ratio: 0, color: "rgba(255, 140, 0, 0)" },
  { ratio: 0.75, color: "rgba(255, 140, 0, 1)" },
  { ratio: 0.9, color: "rgba(255, 0,   0, 1)" }
]
declaredClass Stringreadonly inherited

类的名称。声明的类名称格式化为 geoscene.folder.className

field String

用于对每个热点图的密度进行加权的属性字段的名称。

例如,假设您有一个表示建筑物的点图层,其中包含一个字段 num_units,表示建筑中的单元数(如果是公寓综合体)。您可以根据 num_units 字段对热点图渲染器进行加权,以创建表示城市中住房单元密度的热点图。

示例
renderer.field = "num_units";
legendOptions Object
起始版本:GeoScene Maps SDK for JavaScript 4.24

一个对象,提供用于在图例中描述渲染器的选项。

属性
minLabel String
optional

用于描述图例中低密度区域的标注。如果未指定,则图例中将显示本地化版本的 "Low”。

maxLabel String
optional

用于描述图例中最大密度区域的标注。如果未指定,则图例中将显示本地化版本的 "High”。

title String
optional

描述用于驱动可视化的变量。这在 Legend 中显示为相应渲染器的标题,并优先于字段别名

示例
renderer.legendOptions = {
  title: "Car crashes",
  minLabel: "Few crashes",
  maxLabel: "Frequent crashes"
};
maxDensity Number
起始版本:GeoScene Maps SDK for JavaScript 4.24

要在热点图曲面中指定颜色的最大密度值。minDensitymaxDensity 可确定如何将 colorStops 应用于热点图曲面。密度值高于此数字的像素将在色带中分配最终(或最热)颜色。

通常,minDensity 为零,且 maxDensity 将设置为适合数据集的较高值。默认值可能不适合数据集,因此此值可能需要更改。

确定 minDensitymaxDensity 的最佳值是留给开发人员的一项实践,因为不同类型的数据、比例、密度和分布需要为这些属性提供不同的值,以创建适合数据和应用程序的高密度和低密度区域的视觉上令人愉悦的分离。

由于没有用于在图层视图中查询密度值的 API,我们建议您使用 heatmapRendererCreator 智能制图函数来创建热点图的初始视图,然后根据需要进行调整。

默认值:0.04
示例
renderer.maxDensity = 100;
minDensity Number
起始版本:GeoScene Maps SDK for JavaScript 4.24

要在热点图曲面中指定颜色的最小密度值。minDensitymaxDensity 可确定如何将 colorStops 应用于热点图曲面。密度值低于 minDensity 的像素将从可视化中排除。

使用字段对热点图进行加权时,将 minDensity 设置为零以上可能有助于在视觉上降低频繁出现但值较低的区域的重要性。此属性实际上不会过滤数据或修改计算的密度值。相反,它会缩放色带,以便像素需要更高的密度值才能获得明显的颜色。

确定 minDensitymaxDensity 的最佳值是留给开发人员的一项实践,因为不同类型的数据、比例、密度和分布需要为这些属性提供不同的值,以创建适合数据和应用程序的高密度和低密度区域的视觉上令人愉悦的分离。

由于没有用于在图层视图中查询密度值的 API,我们建议您使用 heatmapRendererCreator 智能制图函数来创建热点图的初始视图,然后根据需要进行调整。

默认值:0
示例
renderer.minDensity = 10;
自动转换自 String|Number
起始版本:GeoScene Maps SDK for JavaScript 4.24

用于创建围绕每个点拟合的平滑内核曲面的搜索半径 (以磅为单位)。密度值在点的位置处最高,并随离点的距离增加而减小。在以 radius 指定的点距离处,密度值为 0

已知限制

默认值:18
示例
// radius in points
renderer.radius = 14;
// radius in pixels
renderer.radius = "20px";
// radius in points
renderer.radius = "14pt";
referenceScale Number
起始版本:GeoScene Maps SDK for JavaScript 4.24

设置后,热点图在给定比例下的可视化将保持静态,不会随着用户放大和缩小视图而改变。这将每个点的影响半径固定为不随缩放级别而变化的实际范围。radius 的像素在参考比例下定义。

值为 0 表示热点图没有 referenceScale

以下图像演示了设置参考比例如何在不同比例上保持热点图,而不是在缩放时动态更新。

与参考比例的缩放偏移 静态 (参考比例) 动态 (无参考比例)
+1 LOD static-in1 dynamic-in1
reference scale static-out1 dynamic-out1
-1 LOD static-out1 dynamic-out1
示例
// locks the heatmap surface at the current view scale
// so that it doesn't change as the user zooms in and out
renderer.referenceScale = view.scale;
type Stringreadonly

渲染器的类型。

对于 HeatmapRenderer,类型总是 "heatmap"

valueExpression String
起始版本:GeoScene Maps SDK for JavaScript 4.25

遵循 Arcade 可视化配置文件定义的规范的 Arcade 表达式 表达式。HeatmapRenderer 中的表达式可能使用 $feature 配置变量来引用字段值,并且必须返回一个数字。

此表达式返回的值用于加权每个热点的密度。

该属性通常用作数据驱动可视化的字段的替代值。

已知限制

另请参阅
示例
// expression calculating voter turnout based on two field values
let renderer = {
  type: "heatmap",  // autocasts as new HeatmapRenderer()
  valueExpression: "( $feature.TOT_VOTES / $feature.REG_VOTERS ) * 100",
};
valueExpressionTitle String
起始版本:GeoScene Maps SDK for JavaScript 4.25

标题,用于标识和描述 valueExpression 属性中定义的 Arcade 表达式 表达式。如果 legendOptions 属性中没有 title,则它将在 Legend 中显示为渲染器的标题。

已知限制

另请参阅
示例
renderer.valueExpression = "($feature.POP / $feature.SQ_MI) * 100";
renderer.valueExpressionTitle = "Population per square mile";

方法概述

显示继承的方法 隐藏继承的方法
名称 返回值类值 描述

添加一个或多个与对象的生命周期相关联的句柄。

更多详情
Accessor
HeatmapRenderer

创建 renderer 的深度克隆。

更多详情
HeatmapRenderer
*

创建此类的新实例并使用从 GeoScene 产品生成的 JSON 对象值对其进行初始化。

更多详情
渲染器
Boolean

如果存在指定的句柄组,则返回 true。

更多详情
Accessor

移除对象拥有的句柄组。

更多详情
Accessor
Object

将此类的实例转换为 GeoScene Portal JSON 表示。

更多详情
渲染器

方法详细说明

addHandles(handleOrHandles, groupKey)inherited
起始版本:GeoScene Maps SDK for JavaScript 4.25

添加一个或多个与对象的生命周期相关联的句柄。当对象被销毁时,将移除句柄。

// Manually manage handles
const handle = reactiveUtils.when(
  () => !view.updating,
  () => {
    wkidSelect.disabled = false;
  },
  { once: true }
);

// Handle gets removed when the object is destroyed.
this.addHandles(handle);
参数
handleOrHandles WatchHandle|WatchHandle[]

对象销毁后,标记为要移除的句柄。

groupKey *
optional

标识句柄应添加到的组的键。组中的所有句柄稍后都可使用 Accessor.removeHandles() 进行删除。如果未提供键,则句柄将被添加到默认组。

创建 renderer 的深度克隆。

返回
类型 描述
HeatmapRenderer 调用此方法的对象的深度克隆。
示例
// Creates a deep clone of the first layer's renderer
let renderer = view.map.layers.getItemAt(0).renderer.clone();
fromJSON(json){*}static

创建此类的新实例并使用从 GeoScene 产品生成的 JSON 对象值对其进行初始化。传入到输入 json 参数的对象通常来自对 REST API 中查询操作的响应或来自另一个 GeoScene 产品的 toJSON() 方法。有关何时以及如何使用该函数的详细信息和示例,请参阅指南中的使用 fromJSON() 主题。

参数
json Object

GeoScene 格式实例的 JSON 表示。有关各种输入 JSON 对象的结构示例,请参阅 GeoScene REST API 文档

返回
类型 描述
* 返回该类的新实例。
hasHandles(groupKey){Boolean}inherited
起始版本:GeoScene Maps SDK for JavaScript 4.25

如果存在指定的句柄组,则返回 true。

参数
groupKey *
optional

组键。

返回
类型 描述
Boolean 如果存在指定的句柄组,则返回 true
示例
// Remove a named group of handles if they exist.
if (obj.hasHandles("watch-view-updates")) {
  obj.removeHandles("watch-view-updates");
}
removeHandles(groupKey)inherited
起始版本:GeoScene Maps SDK for JavaScript 4.25

移除对象拥有的句柄组。

参数
groupKey *
optional

要移除的组键或组键的数组或集合。

示例
obj.removeHandles(); // removes handles from default group

obj.removeHandles("handle-group");
obj.removeHandles("other-handle-group");
toJSON(){Object}inherited

将此类的实例转换为 GeoScene Portal JSON 表示。有关详细信息,请参阅使用 fromJSON() 指南主题。

返回
类型 描述
Object 此类实例的 GeoScene Portal JSON 表示。

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