• geoscene/smartMapping

type

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

此对象包含帮助程序方法,用于根据 Layer 中要素的字段值生成具有唯一类型 (或类别) 的数据驱动可视化。createRenderer() 方法生成一个 Renderer 对象,可直接将其应用于用于生成它的图层。此渲染器包含具有最适合视图背景的颜色的唯一值。

已知限制

  • SceneLayers 必须启用 supportsRenderersupportsLayerQuery 功能,除非将预定义 statistics 对象提供给方法的 statistics 参数。请使用 getFieldInfoUsage() 方法检查 SceneLayer 的功能。
  • 使用 SQL 表达式生成的渲染器和视觉变量目前仅限于托管在 GeoScene Online 上的要素服务。

方法概述

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

基于 PointCloudLayer 的给定字段生成 PointCloudUniqueValueRenderer

更多详情
type
Promise<RendererResult>

生成一个渲染器,可直接将其应用于支持渲染器的图层

更多详情
type

方法详细说明

createPCClassRenderer(params){Promise<PCClassRendererResult>}
起始版本:GeoScene Maps SDK for JavaScript 4.5

基于 PointCloudLayer 的给定字段生成 PointCloudUniqueValueRenderer。此渲染器可视化相同类型的点,通常来自 CLASS_CODE 字段或存储与数据分类 (例如低植被、高植被、地面等) 相关的信息的等效字段。生成的渲染器使用与点的类代码相匹配的标准预定义颜色来可视化每个点。

所需要的只是图层实例和字段名称。您可以选择设置点的大小和密度以满足所需的可视化需求。

参数
规范
params Object

根据输入图层的给定字段生成渲染器的输入参数。各参数的详细信息见下表。

规范

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

field String

包含给定图层分类数据的字段名称。用于此渲染器类型的通用字段名称是 CLASS_CODE,但也可以使用其他字段。

size String
optional
默认值:100%

每个点的大小以百分比表示。该值将确定基于给定点 density 缩放的点大小。当该值为 100% 时,将设置每个点的大小,以使相邻点之间的间隙数量最小化。任何高于 100% 的值都将允许点与缩放到给定值的相邻点重叠。低于 100% 的值可将点缩放至更小的尺寸,以便点之间的间隙似乎更大。

density Number
optional
默认值:25

视图中每英寸的点数。

optional

在制作应用程序中,用户可以选择预定义的类型方案。将方案对象传递到此属性,以避免基于 basemap 获取方案对象。

optional

uniqueValues 函数生成的统计信息对象。如果已生成了字段的统计信息,则在此处传递对象以避免向服务器进行第二次统计信息查询。

optional

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

返回
类型 描述
Promise<PCClassRendererResult> 解析为一个包含渲染器的对象,可以在输入图层上设置。有关更多详情,请参阅 PCClassRendererResult
示例
let layer = new PointCloudLayer({
  url: "https://tiles.arcgis.com/tiles/V6ZHFr6zdgNZuVG0/arcgis/rest/services/BARNEGAT_BAY_LiDAR_UTM/SceneServer"
});

let params = {
  layer: layer,
  field: "CLASS_CODE"
};

// when the promise resolves, apply the renderer to the layer
typeRendererCreator.createPCClassRenderer(params)
  .then(function(response){
    layer.renderer = response.renderer;
  });
createRenderer(params){Promise<RendererResult>}

生成一个渲染器,可直接将其应用于支持渲染器的图层。渲染器包含表示从指定字段返回的字符串或数值的唯一符号。

在大多数情况下,您将提供 layerviewfield 来生成此渲染器。在这种情况下,字段的值不是众所周知的,并且用户不知道要在可视化中使用什么颜色。您还可以使用 valueExpression 而不是 field,根据从运行时执行的脚本返回的值来可视化要素。

参数
规范
params Object

输入参数,用于根据从给定字段返回的数据生成表示唯一类型的符号。各参数的详细信息见下表。

规范

为其生成渲染器的图层。

view View
optional

渲染输入图层的视图。此方法可检查视图的背景 (即底图、web 地图背景或视图容器),以确定输出渲染器的最佳颜色。在实践中应始终设置此参数,但如果未提供,此方法将假定生成的渲染器显示在浅色背景上。使用 valueExpression 创建渲染器或用于在 SceneView 中显示的渲染器时,此参数是必需的。

field String
optional

要从中提取唯一值的字段的名称,这些值将用作数据驱动型可视化的基础。如果使用 valueExpression,则忽略此属性。

field2 String
optional

指定用于对要素进行分类的第二个属性字段的名称。fieldfield2field3 值的所有组合都是唯一的类别,并可能有自己的符号。如果使用 valueExpression,则忽略此属性。起始版本:4.25

field3 String
optional

指定用于对要素进行分类的第三个属性字段的名称。fieldfield2field3 值的所有组合都是唯一的类别,并可能有自己的符号。如果使用 valueExpression,则忽略此属性。起始版本:4.25

numTypes Number
optional
默认值:10

按渲染器显示的类型 (或类别) 的数量。使用 -1 以显示所有返回的类型。

sortBy String
optional
默认值: count

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

可能值 描述
count 唯一值/类型将根据每个类别中的要素数量从高到低排序。
value 唯一值/类型将按字母顺序排序。

可能值"count"|"value"

typeScheme TypeScheme
optional

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

valueExpression String
optional

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

valueExpressionTitle String
optional

描述从 valueExpression 返回的值的文本。这由 Legend 微件使用。

outlineOptimizationEnabled Boolean
optional
默认值: false

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

sizeOptimizationEnabled Boolean
optional
默认值: false

仅适用于点和折线图层。指示符号大小是否应根据视图比例而变化。设置后,必须在 view 参数中提供有效的 MapView 实例。3D SceneViews 不支持此选项。

legendOptions Object
optional

提供用于设置字段标题的选项,该字段标题将覆盖服务中定义的字段别名。此标题将表示 Legend 中的字段。

规范
title String

用于表示 Legend 中的给定字段的标题。

defaultSymbolEnabled Boolean
optional

在渲染器上启用 defaultSymbol,并将其分配给没有值的要素。

symbolType String
optional
默认值:2d

要生成的符号类型。这取决于您正在使用的视图和所需的可视化效果。对于具有 mesh 几何类型的图层,可以忽略此参数。下面描述了可能的值。

描述
2d 使用 2D 符号生成可视化,如 SimpleMarkerSymbolSimpleLineSymbolSimpleFillSymbol。如果为 MapView 中的数据生成可视化效果,请使用此选项。
3d-flat 使用具有平面符号图层的 3D 符号生成可视化,例如 IconSymbol3DLayerLineSymbol3DLayerFillSymbol3DLayer。如果为 SceneView 中的数据生成 2D 可视化,请使用此选项。
3d-volumetric 使用具有体积符号图层的 3D 符号生成可视化效果,例如 ObjectSymbol3DLayerPathSymbol3DLayerExtrudeSymbol3DLayer。如果为 SceneView 中的数据生成 3D 可视化效果,并且只有符号的高度是可变的,例如圆柱体,请使用此选项。如果使用此选项,则必须为 view 参数提供 SceneView 实例。
3d-volumetric-uniform 使用具有体积符号图层的统一大小的 3D 符号生成可视化效果。如果为 SceneView 中的数据生成 3D 可视化效果,并且符号的大小应一致,例如球体,请使用此选项。如果使用此选项,则必须为 view 参数提供 SceneView 实例。

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

optional

uniqueValues 函数生成的统计信息对象。如果已生成了字段的统计信息,则在此处传递对象以避免向服务器进行第二次统计信息查询。

colorMixMode String
optional
默认值:replace

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

描述
tint 将符号 color 应用于不饱和的几何体/纹理颜色。
replace 移除几何/纹理颜色并应用符号color
multiply 将几何图形/纹理颜色值与符号 color 值相乘。结果是颜色变深。与白色相乘可使几何图形颜色保持不变。
returnAllCodedValues Boolean
optional

表示如果给定字段具有域值,则应返回所有域代码。

forBinning Boolean
optional

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

optional

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

返回
类型 描述
Promise<RendererResult> 解析为 RendererResult 的实例。
示例
let layer = new FeatureLayer({
  portalItem: { id: "5ce5374a461e45bab714b43ffedf151d" }
});

// visualization based on categorical field
let typeParams = {
  layer: layer,
  view: view,
  field: "Party"
};

// when the promise resolves, apply the visual variables to the renderer
typeRendererCreator.createRenderer(typeParams)
  .then(function(response){
    layer.renderer = response.renderer;
  });
let layer = new FeatureLayer({
  url: "https://services.arcgis.com/V6ZHFr6zdgNZuVG0/arcgis/rest/services/counties_politics_poverty/FeatureServer/0"
});

// visualization based off Arcade expression
let typeParams = {
  layer: layer,
  valueExpression: "IIF($feature.DEMOCRAT > $feature.REPUBLICAN, 'Democrat', 'Republican', 'Tied')",
  view: view,
  valueExpressionTitle: "Election Winner"
};

// when the promise resolves, apply the visual variables to the renderer
typeRendererCreator.createRenderer(typeParams)
  .then(function(response){
    layer.renderer = renderer;
  });

类型定义

PCClassRendererResult

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

属性

配置为表示点云中的类代码的渲染器对象。在输入图层的 renderer 属性上设置这个对象来更新它的可视化。

RendererResult

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

属性

配置为最佳匹配视图背景的渲染器对象。在图层的 renderer 属性上对它进行设置以更新其可视化效果。

uniqueValueInfos UniqueValueInfo[]

描述渲染器中所表示的每个唯一类型或类别的值、符号和计数的对象数组。请参阅下面用于描述每个属性的表。

excludedUniqueValueInfos Object[]

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

typeScheme TypeScheme

用于 uniqueValueInfos 中表示每个类别的方案。

basemapId String

用于确定代表分类变量的最佳配色方案的底图 ID。

basemapTheme String

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

UniqueValueInfo

描述由 createRenderer() 方法生成的唯一值的符号、标注和值。

属性

表示图层中要素类型或类别的唯一值。

count Number

具有给定 value (或属于给定类别) 的要素数。

label String

Legend 中描述值或类别的标注。

symbol Symbol

用于表示属于给定类别的要素的符号。

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