类型

AMD: require(["geoscene/smartMapping/renderers/type"], (typeRendererCreator) => { /* 代码 */ });
ESM: import * as typeRendererCreator from "@geoscene/core/smartMapping/renderers/type";
对象: geoscene/smartMapping/renderers/type
起始版本: GeoScene API for JavaScript 4.4

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

已知限制

  • SceneLayers 必须启用 supportsRenderersupportsLayerQuery 功能,除非为方法的统计参数提供了预定义的 统计对象。 要检查 SceneLayer 的功能,请使用 getFieldInfoUsage() 方法。
  • 使用 SQL 表达式生成渲染器和可视化变量目前仅限于GeoScene Online 上的要素服务。
另请参阅:

方法概述

名称 返回类型 总结 对象
Promise<PCClassRendererResult>更多信息

基于 PointCloudUniqueValueRenderer 的给定字段生成一个 PointCloudLayer

更多信息type
Promise<RendererResult>更多信息

生成一个渲染器,可以直接应用到支持渲染器的图层

更多信息type

方法详述

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

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

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

参数:
规范:
params Object

根据输入图层的给定字段生成呈现程序的输入参数。各参数详细信息见下表。

 详述:

生成可视化的图层。

field String

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

size String
optional
默认值: 100%

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

density Number
optional
默认值: 25

视图中每英寸的点数。

typeScheme TypeSchemeForPoint
optional

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

statistics UniqueValuesResult
optional

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

signal AbortSignal
optional

允许取消请求。如果被取消,promise 将被拒绝,并返回 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>}

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

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

参数:
规范:
params Object

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

详述:

生成渲染器的图层。

view View
optional

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

field String
optional

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

numTypes Number
optional
默认值: 10

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

sortBy String
optional
默认值: count

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

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

可能值:"count"|"value"

typeScheme TypeScheme
optional

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

valueExpression String
optional

遵循  Arcade Visualization Profile 定义的规范的 Arcade表达式。 表达式可以使用  $feature  全局变量引用字段值,并且必须返回字符串或数字。 此属性覆盖field 属性,因此用于代替输入field 值。

valueExpressionTitle String
optional

描述 valueExpression返回值的文本。它由图例微件使用。

outlineOptimizationEnabled Boolean
optional
默认值: false

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

sizeOptimizationEnabled Boolean
optional
默认值: false

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

legendOptions Object
optional

提供用于设置字段标题的选项,该字段标题将覆盖服务中定义的字段别名。这个标题将代表图例中的字段。

详述:
title String

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

defaultSymbolEnabled Boolean
optional

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

symbolType String
optional
默认值: 2d

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

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

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

statistics UniqueValuesResult
optional

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

colorMixMode String
optional
默认值: replace

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

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

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

signal AbortSignal
optional

允许可取消的请求。 如果取消,promise 将被拒绝并出现名为  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() 方法的结果对象。有关每个属性的详细信息,请参见下表。

属性:

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

uniqueValueInfos UniqueValueInfo[]

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

excludedUniqueValueInfos Object[]

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

typeScheme TypeScheme

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

basemapId String

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

basemapTheme String

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

UniqueValueInfo

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

属性:
value String|Number

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

count Number

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

label String

图例中描述值或类别的标签。

symbol Symbol

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

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