AMD: require(["geoscene/smartMapping/renderers/predominance"], (predominanceRendererCreator) => { /* 代码 */ });
ESM: import * as predominanceRendererCreator from "@geoscene/core/smartMapping/renderers/predominance";
对象 geoscene/smartMapping/renderers/predominance
自: GeoScene API for JavaScript 4.9

该对象包含一个用于生成优势可视化的辅助方法。 可视化优势涉及根据一组相互竞争的数字属性中的哪个属性在总计数中胜出或击败其他属性来为图层的要素着色。 常见应用包括可视化调查结果和人口多数。

例如,假设有包含中国多个县的图层,其字段包含各种作物的总销售额:小麦、大豆、玉米、棉花和蔬菜。 可使用此模块中的 createRenderer() 方法生成一个默认可视化,以描绘每个县的获胜者或最主要的作物。

下面的例子描述了主要的十年中,住宅是基于城市街区群建造的。

predominance-size

已知限制

  • 目前,3D符号只能在具有几何类型的图层中生成。
  • SceneLayers 必须启用 supportsRenderersupportsLayerQuery 功能,除非为方法的统计参数提供了预定义的统计对象。 要检查 SceneLayer 的功能,请使用 getFieldInfoUsage() 方法。

方法概述

名称 返回类型 总结 对象
Promise<RendererResult>更多细节

基于一组相互竞争的数字字段生成一个优势呈现器。

更多信息predominance

方法详情

createRenderer(params){Promise<RendererResult>}

基于一组相互竞争的数字字段生成一个优势呈现器。

可视化优势涉及根据一组相互竞争的数字属性中的哪个属性在总计数中胜出或击败其他属性来为图层的要素着色。 这方面的常见应用包括可视化调查结果和人口多数。

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

字段名称 总数 颜色
Wheat 130 紫色
Soybeans 2000 蓝色
Corn 0 黄色
Cotton 300 绿色
Vegetables 120 红色

然后渲染器用蓝色来象征这一要素,因为大豆是主要作物。

基于此方法生成的 Arcade 表达式的结果确定要素的主要字段。 您需要提供图层视图字段列表来生成此渲染器。 或者,您可以将 includeSizeVariable 设置为 true 以更改每个要素的大小,以表示该要素相对于整个图层的影响程度。 您还可以将 includeOpacityVariable 设置为 true 以根据主要字段与所有其他字段相比的强度来为每个要素添加不透明度。 对于上面的示例,该要素可能是不透明的,因为 Soybeans 大大超过了所有其他组合的要素。 如果 Soybean total 仍然是最高的,但只有 301,那么该要素将非常透明,表明 Soybean total 获胜,但差距不大。

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

参数:
规范:
params Object

输入参数,用于根据一组竞争领域生成优势可视化。各参数详细信息见下表。

详述:

生成可视化的图层。

view View

将在其中呈现可视化的视图实例。

fields Object[]

一组相互竞争的数字字段,用作优势可视化的基础。

详述:
name String

数字字段的名称。

label String
optional

描述图例中字段名称(或类别)的标签。 如果给定字段没有直观的字段名称,则应使用此选项。

includeOpacityVariable Boolean
optional

表示是否在最终渲染器中包含数据驱动的不透明度。 如果为 true,则主要值大大超过所有其他值的要素被赋予高不透明度。 主要价值以小幅度击败其他要素的要素将被分配低不透明度,这表明虽然该要素具有获胜价值,但它并不会赢得太多。

predominance-opacity

includeSizeVariable Boolean
optional

表示是否在最终渲染器中包含数据驱动的大小。 如果为 true,则将根据字段参数中所有竞争值的总和为要素分配大小。 根据图层的几何类型,总计数较小的要素将使用小图标或线条调整大小,而总计数较大的要素将使用大图标或线条调整大小。 启用此选项有助于可视化特定要素与整个数据集相比的影响力。 它消除了由具有较大地理区域但数据值相对较小的要素引入的偏差。

predominance-size

outlineOptimizationEnabled Boolean
optional
默认值: false

仅适用于多边形图层。 表示多边形轮廓宽度是否应根据视图比例而变化。 设置后,必须在view 参数中提供有效的  MapView 实例。 3D SceneViews 不支持此选项。

sizeOptimizationEnabled Boolean
optional
默认值: false

表示符号大小是否应根据视图缩放而变化。当设置时,一个有效的 MapView 实例必须在 view 参数中提供。3D SceneViews 不支持此选项。

legendOptions Object
optional

提供用于修改描述可视化的图例属性的选项。

详述:
title String
optional

图例中用来描述渲染器的标题。

showLegend Boolean
optional

表示是否将渲染器包含在图例中。

optional

从 summaryStatistics 函数生成的统计对象。createAgeRenderer() 方法生成一个 Arcade 表达式,并对图层执行统计查询以获取表达式的结果。 如果已经生成了表达式的统计信息,则在此处传递对象以避免进行第二次统计查询。

sortBy String
optional
默认值: count

表示如何在图例中对值进行排序。有关可能传递给该参数的值的信息,请参见下表。

可能值 描述
count 唯一值/类型将根据属于每个类别的要素数量从高到低排序。
value 唯一值/类型将按照它们在 fields 参数中指定的顺序进行排序。

可能值:"count"|"value"

predominanceScheme PredominanceScheme
optional

在创作应用程序中,用户可以选择预定义的优势方案。 将方案对象传递给此属性以避免根据 view 的背景获取一个。

symbolType String
optional
默认值: 2d

要生成的符号类型。 这取决于您正在使用的视图和所需的可视化。 不需要为具有 网格 几何类型的图层指定此参数。 可能的值如下所述。

描述
2d 使用 2D 符号(如 SimpleMarkerSymbol, SimpleLineSymbol 或 SimpleFillSymbol)生成可视化。如果在 MapView 中生成数据的可视化,请使用此选项。
3d-flat 使用具有平面符号图层(如  IconSymbol3DLayerLineSymbol3DLayer 或  FillSymbol3DLayer)的 3D 符号生成可视化。 如果为 SceneView 中的数据生成 2D 可视化,请使用此选项。
3d-volumetric 使用具有体积符号图层(例如  ObjectSymbol3DLayerPathSymbol3DLayer 或 ExtrudeSymbol3DLayer)的 3D 符号生成可视化。 如果为  SceneView 中的数据生成 3D 可视化,请使用此选项。 如果使用此选项,则必须将 SceneView 实例提供给 view  参数。
3d-volumetric-uniform 使用具有体积符号图层的统一大小的 3D 符号生成可视化。 如果为  SceneView 中的数据生成 3D 可视化,并且符号的大小应统一(例如球体),请使用此选项。 如果使用此选项,则必须将 SceneView 实例提供给 view 参数。

可能值:"2d"|"3d-flat"|"3d-volumetric"|"3d-volumetric-uniform"

defaultSymbolEnabled Boolean
optional
默认值: true

在渲染器上启用 defaultSymbol,并将其赋值给不带值的要素。

colorMixMode String
optional
默认值: replace

此选项仅适用于为网格 scenelayer 生成渲染器。指定符号颜色如何应用于几何颜色/纹理。 有关更多上下文,请参阅 FillSymbol3DLayer.material 中的文档。 有关可能的值,请参见下表。

描述
tint 将符号颜色应用于去饱和几何/纹理颜色。
replace 移除几何/纹理颜色并应用符号颜色
multiply 将几何/纹理颜色值与符号颜色值值相乘。 结果是颜色较深。 与白色相乘可保持几何颜色相同。
signal AbortSignal
optional

允许取消请求。如果被取消,promise 将被拒绝,并返回 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,
  fields: [{
    name: "M217_07",
    label: "Vegetables"
  }, {
    name: "M188_07",
    label: "Cotton"
  }, {
    name: "M172_07",
    label: "Wheat"
  }, {
    name: "M193_07",
    label: "Soybeans"
  }, {
    name: "M163_07",
    label: "Corn"
  }],
  includeOpacityInfo: true
};

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

类型定义

RendererResult

createRenderer() 方法的结果对象。有关每个属性的详细信息,请参见下表。

属性:

唯一值渲染器对象代表了优势的可视化。设置图层的 renderer 属性来更新它的可视化效果。

predominantCategoryInfos UniqueValueInfo[]

描述呈现器中所表示的每个唯一类型或类别的值、符号和计数的对象数组。

excludedCategoryInfos Object[]

一组对象,描述了在可视化给定字段的数据时排除在考虑之外的值或类别。 每个对象的规范与 predominantCategoryInfos  属性中指定的对象的规范相匹配。

optional

一个大小可视变量,表示显性可视化中包含的所有字段的总数。如果参数 includeSizeVariable 为 true,则包含该变量。

optional

一个不透明度可视变量,表示由所有字段的主要值组成的总计数的百分比。 此变量表示与其他值相比,特定值的优势强度。

predominanceScheme PredominanceScheme

渲染器使用的主导方案。

basemapId String

用于确定要素的最佳填充颜色的底图的 ID。

basemapTheme String

表示输入视图底图的平均颜色是 浅色 还是 深色

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