• geoscene/smartMapping

dotDensity

AMD: require(["geoscene/smartMapping/renderers/dotDensity"], (dotDensityRendererCreator) => { /* code goes here */ });
ESM: import * as dotDensityRendererCreator from "@geoscene/core/smartMapping/renderers/dotDensity";
类: geoscene/smartMapping/renderers/dotDensity
起始版本:GeoScene Maps SDK for JavaScript 4.12

该对象包含一个用于生成点密度可视化的辅助方法。createRenderer() 方法使用视图的背景来确定每个属性最合适的点颜色。它还查询图层以获取空间统计信息,以确定给定比例的适当点值。起始点值不一定是最适合您的数据的值。相反,建议将其作为创作点密度渲染器的良好起点。

已知限制

方法概述

名称 返回值类值 描述 对象
Promise<RendererResult>

基于一个或多个互补数字字段或 Arcade 表达式生成 DotDensityRenderer

更多详情
dotDensity

方法详细说明

createRenderer(params){Promise<RendererResult>}

基于一个或多个互补数字字段或 Arcade 表达式生成 DotDensityRenderer。此方法将根据所提供视图的比例为数据确定一个适当的 dotValue

例如,假设有包含中国多个县的图层,其中字段包含各种作物的总销售额:小麦、大豆、玉米、棉花和蔬菜。如果某个要素的每个字段具有以下值:

字段名称 计数 Color
Wheat 140 紫色
Soybeans 2000 蓝色
Corn 0 黄色
Cotton 300 绿色
Vegetables 120 红色

此方法将生成一个渲染器,用于确定 dotValue 应为 20。具有上述数据的要素将以 6 个紫点、100 个蓝点、无黄点、60 个绿点和 5 个红点的随机位置进行渲染。

建议值是基于要素进行采样计算的。因此,使用相同的参数多次执行此方法可能会产生不同的结果。

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

参数
规范
params Object

输入参数,用于根据一组互补的数字字段生成点密度可视化。各参数的详细信息见下表。

规范

为其生成可视化效果的面层。

view MapView

将在其中渲染可视化的 MapView 实例。

attributes Object[]

用作点密度可视化的互补的数字字段/表达式集合。

规范
field String
optional

数值字段的名称。

label String
optional

图例中字段名称 (或类别) 的标注。如果字段没有比较直观的字段名称或别名,可以使用此选项设置字段在图例中的描述。例如,对于名为 dem 的字段 (表示民主党的总选票计数),您可将标注设置为 Democrat,以明确最终可视化中类别的名称。

valueExpression String
optional

遵循 Arcade 可视化配置文件定义的规范的 Arcade 表达式。表达式可以使用 $feature 配置变量来引用字段值,并且必须返回一个数字。此属性覆盖 field 属性,因此用于代替输入 field 值。

valueExpressionTitle String
optional

描述从 valueExpression 返回的值的文本。

dotValueOptimizationEnabled Boolean
optional
默认值:true

表示是否根据视图的比例改变每个点的值。这将设置输出渲染器的 referenceScale

dotBlendingEnabled Boolean
optional
默认值:true

指示是否启用在同一像素处渲染的不同色点的颜色混合。这仅在高度密集和高度多样化的要素中可见。

outlineOptimizationEnabled Boolean
optional
默认值: false

指示多边形轮廓宽度是否应根据视图比例而变化。当为 false 时,输出渲染器中不会使用轮廓。

legendOptions Object
optional

提供用于修改 Legend 属性 (用于描述可视化效果) 的选项。

规范
unit String
optional

表示图例中每个点所代表的单位。例如,在人口密度图中,您可将 people 的值设置为此参数。输出渲染器将在图例中显示 1 dot = 300 people

dotDensityScheme DotDensityScheme
optional

在制作应用程序中,用户可以选择预定义的点密度方案。将方案对象传递到此属性,以避免基于视图的背景获取方案对象。

forBinning Boolean
optional

指示生成的渲染器是否用于图格可视化。如果为 true,则此方法中的输入字段应引用该图层的 featureReduction 属性中定义的聚合字段

optional

允许可取消的请求。如果取消,则承诺将被拒绝,并返回一个名为 AbortError 的错误。另请参见 AbortController

返回
类型 描述
Promise<RendererResult> 解析为 RendererResult 的实例。
示例
const layer = new FeatureLayer({
  url: "https://services.arcgis.com/V6ZHFr6zdgNZuVG0/arcgis/rest/services/USA_County_Crops_2007/FeatureServer/0"
});

// will create a visualization of predominant crop by U.S. county

const params = {
  layer: layer,
  view: view,
  attributes: [{
    field: "M217_07",
    label: "Vegetables"
  }, {
    field: "M188_07",
    label: "Cotton"
  }, {
    field: "M172_07",
    label: "Wheat"
  }, {
    field: "M193_07",
    label: "Soybeans"
  }, {
    field: "M163_07",
    label: "Corn"
  }]
};

// when the promise resolves, apply the renderer to the layer
dotDensityRendererCreator.createRenderer(params)
  .then(function(response){
    layer.renderer = response.renderer;
  });

类型定义

RendererResult

createRenderer() 方法的结果对象。各属性的详细信息见下表。

属性

表示点密度可视化的对象。在图层的 renderer 属性上对它进行设置以更新其可视化效果。

dotDensityScheme DotDensityScheme

渲染器基于视图背景使用的点密度方案。

basemapId String

底图的 ID,用于确定点的最佳颜色。

basemapTheme String

表示输入视图底图的平均颜色是 light 还是 dark

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