方法概述
名称 | 返回值类值 | 描述 | 对象 |
---|---|---|---|
Promise<RendererResult> | 基于一组竞争的数字字段生成众数渲染渲染器。 更多详情 | predominance |
方法详细说明
-
createRenderer(params){Promise<RendererResult>}
-
基于一组竞争的数字字段生成众数渲染渲染器。
可视化众数渲染涉及根据一组相互竞争的数值属性中的哪个属性在总计数中胜出或击败其他属性来为图层要素进行着色。这方面的常见应用包括可视化选举结果、调查结果和主要人口。
例如,假设有包含中国多个县的图层,其中字段包含各种作物的总销售额:小麦、大豆、玉米、棉花和蔬菜。如果某个要素的每个字段具有以下值:
字段名称 计数 Color Wheat 130 紫色 Soybeans 2000 蓝色 Corn 0 黄色 Cotton 300 绿色 Vegetables 120 红色 然后,渲染器使用蓝色来符号化这一要素,因为大豆是主要作物。
要素的主要字段是根据此方法生成的 Arcade 表达式的结果确定的。您需要提供
layer
、view
和fields
列表来生成此渲染器。或者,您可以将includeSizeVariable
设置为true
来更改每个要素的大小,以表示该要素相对于整个图层的影响程度。您还可将includeOpacityVariable
设置为true
以根据主要字段与所有其他字段相比的强度来为每个要素添加不透明度。对于上面的示例,该要素可能是不透明的,因为大豆销售额远远超过了其他所有要素的总和。如果大豆总额仍然最高,但仅为 301,则该要素将非常透明,表明大豆总额获胜,但差距不大。为方便自定义更复杂的可视化创作应用程序,还提供了其他选项。
参数规范params Object输入参数,用于根据一组竞争字段生成众数渲染可视化。各参数的详细信息见下表。
规范为其生成可视化效果的图层。
view View将在其中渲染可视化的视图实例。
一组相互竞争的数字字段,用作众数渲染可视化的基础。例如,如果创建一个选举地图,您需指示表示存储总选票的候选人或政党的每个字段的名称。
规范name String数值字段的名称。
label Stringoptional描述图例中字段名称 (或类别) 的标注。如果给定字段没有直观的字段名称,则应使用此选项。例如,对于名为
dem
的字段 (表示民主党的总选票计数),您可将标注设置为Democrat
,以明确最终可视化中类别的名称。includeOpacityVariable Booleanoptional表示是否在最终渲染器中包含数据驱动的不透明度。如果为
true
,则主要值大大超过所有其他值的要素被赋予高不透明度。如果某个要素的优势值比其他要素略高,则将为该要素分配低不透明度,表明该要素虽然具有优势值,但优势并不大。includeSizeVariable Booleanoptional表示是否在最终渲染器中包含数据驱动的大小。如果为
true
,则将根据fields
参数中所有竞争值的总和为要素分配大小。根据图层的几何类型,总计数较小的要素将使用小图标或线条调整大小,而总计数较大的要素将使用大图标或线条调整大小。启用此选项有助于可视化特定要素与整个数据集相比的影响力。它消除了由地理面积较大但数据值相对较小的要素带来的偏差。outlineOptimizationEnabled Booleanoptional默认值: false仅适用于面图层。指示多边形轮廓宽度是否应根据视图比例而变化。设置后,必须在
view
参数中提供有效的 MapView 实例。3D SceneViews 不支持此选项。sizeOptimizationEnabled Booleanoptional默认值: false指示符号大小是否应根据视图比例而变化。设置后,必须在
view
参数中提供有效的 MapView 实例。3D SceneViews 不支持此选项。legendOptions Objectoptional提供用于修改 Legend 属性 (用于描述可视化效果) 的选项。
规范title Stringoptional用于描述 Legend 中的渲染器的标题。
showLegend Booleanoptional指示是否在图例中包括渲染器。
statistics SummaryStatisticsResultoptional从 summaryStatistics 函数生成的统计信息对象。
createAgeRenderer()
方法可生成一个 Arcade 表达式,并对图层执行该表达式结果的统计查询。如果已生成表达式的统计信息,则在此处传递对象以避免进行第二次统计信息查询。sortBy Stringoptional默认值: count表示如何在图例中对值进行排序。有关可能传递给该参数的值的信息,请参见下表。
可能值 描述 count 唯一值/类型将根据每个类别中的要素数量从高到低排序。 value 唯一值/类型将按照它们在 fields
参数中指定的顺序进行排序。可能值:"count"|"value"
predominanceScheme PredominanceSchemeoptional在制作应用程序中,用户可以选择预定义的众数渲染方案。将方案对象传递到此属性,以避免基于
view
的背景获取方案对象。symbolType Stringoptional默认值:2d要生成的符号类型。这取决于您正在使用的视图和所需的可视化效果。对于具有
mesh
几何类型的图层,不需要指定此参数。下面描述了可能的值。值 描述 2d 使用 2D 符号生成可视化,如 SimpleMarkerSymbol、SimpleLineSymbol 或 SimpleFillSymbol。如果为 MapView 中的数据生成可视化效果,请使用此选项。 3d-flat 使用具有平面符号图层的 3D 符号生成可视化,例如 IconSymbol3DLayer、LineSymbol3DLayer 或 FillSymbol3DLayer。如果为 SceneView 中的数据生成 2D 可视化,请使用此选项。 3d-volumetric 使用具有体积符号图层的 3D 符号生成可视化效果,例如 ObjectSymbol3DLayer、PathSymbol3DLayer 或 ExtrudeSymbol3DLayer。如果为 SceneView 中的数据生成 3D 可视化,请使用此选项。如果使用此选项,则必须为 view
参数提供 SceneView 实例。3d-volumetric-uniform 使用具有体积符号图层的统一大小的 3D 符号生成可视化效果。如果为 SceneView 中的数据生成 3D 可视化效果,并且符号的大小应一致,例如球体,请使用此选项。如果使用此选项,则必须为 view
参数提供 SceneView 实例。可能值:"2d"|"3d-flat"|"3d-volumetric"|"3d-volumetric-uniform"
defaultSymbolEnabled Booleanoptional默认值:true在渲染器上启用
defaultSymbol
,并将其分配给没有值的要素。colorMixMode Stringoptional默认值:replace此选项仅适用于为网格 SceneLayers 生成渲染器。指定如何将符号的颜色应用于几何颜色/纹理。有关更多上下文,请参阅 FillSymbol3DLayer.material 文档。有关可能的值,请参见下表。
值 描述 tint 将符号 color
应用于不饱和的几何体/纹理颜色。replace 移除几何/纹理颜色并应用符号 color
。multiply 将几何图形/纹理颜色值与符号 color
值相乘。结果是颜色变深。与白色相乘可使几何图形颜色保持不变。forBinning Booleanoptional指示生成的渲染器是否用于图格可视化。如果为
true
,则此方法中的输入字段应引用该图层的featureReduction
属性中定义的聚合字段。signal AbortSignaloptional允许可取消的请求。如果取消,则承诺将被拒绝,并返回一个名为
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 UniqueValueRenderer
表示众数渲染可视化的唯一值渲染器对象。在图层的
renderer
属性上对它进行设置以更新其可视化效果。predominantCategoryInfos UniqueValueInfo[]描述渲染器中所表示的每个唯一类型或类别的值、符号和计数的对象数组。
一组对象,描述了在可视化给定字段的数据时排除在考虑之外的值或类别。每个对象的规范与
predominantCategoryInfos
属性中指定的对象的规范相匹配。size VisualVariableResult大小视觉变量,表示众数渲染可视化中包含的所有字段的总数。如果参数
includeSizeVariable
为 true,则包含该变量。opacity VisualVariableResult不透明度视觉变量,表示由所有字段的主要值组成的总计数的百分比。此变量表示与其他值相比,特定值的优势强度。
predominanceScheme PredominanceScheme渲染器使用的众数渲染方案。
basemapId String用于确定要素的最佳填充颜色的底图的 ID。
basemapTheme String表示输入视图底图的平均颜色是
light
还是dark
。