字典渲染器用于使用配置有多个属性的 CIMSymbols 字典来对层进行符号化。当需要基于多个数据属性可视化单个功能时,应使用此渲染器。这可能会导致产生许多不适合使用 UniqueValueRenderer 的符号排列。
字典渲染器通过关联的字典符号 web 样式将符号应用于要素。web 样式包含所有符号组件以及用于显示符号的规则。
已知限制
-
DictionaryRenderer 只能用于为以下图层类型创建可视化效果:
-
图例微件中不支持 DictionaryRenderer
最佳实践
- 字典符号样式可以手动创建,也可以从 GeoScene Pro 创建。 建议使用 GeoScene Pro 创建和发布样式。有关详细信息,请参见共享 web 样式。有关手动创建字典符号样式的说明,请访问: 创建字典符号样式。
- DictionaryRenderer 在大范围可视化数据(放大到离地面更近)时效果最好。由于这些符号可能很复杂,每个要素包含多个图标和不同的文本,因此当许多要素相互重叠并使视图混乱时,使用 DictionaryRenderer 渲染的层可能难以辨认。我们建议在使用 DictionaryRenderer 渲染的图层上设置 minScale 和 maxScale,以避免在小比例下显示太多信息。
let renderer = new DictionaryRenderer({
url: "./alternative-fuel-stations",
fieldMap: {
fuel_type: "Fuel_Type_Code",
name: "Station_Name"
},
config: {
show_label: "false"
}
});
let layer = new FeatureLayer({
url: "http://url.to.service",
renderer: renderer
});
构造函数
属性列表
属性 | 类型 | 描述 | 类 | |
---|---|---|---|---|
AuthoringInfo | 更多信息 只包含在从在线地图生成的渲染器中。比如 sizeRendererCreator.createContinuousRenderer() 或 colorRendererCreator.createContinuousRenderer(). | 更多信息 | Renderer | |
Object | 更多信息 此属性允许您设置可在字典符号样式上配置的显示选项。 | 更多信息 | DictionaryRenderer | |
String | 更多信息 类名。 | 更多信息 | Accessor | |
HashMap<String> | 更多信息 定义一个字段映射,将输入字段从要素映射到字典符号样式的符号和文本。 | 更多信息 | DictionaryRenderer | |
String | 更多信息 可以设置缩放表达式以增大或减小字典符号的大小。 | 更多信息 | DictionaryRenderer | |
String | 更多信息 描述 scaleExpression 属性中定义的相关联的 Arcade 表达式标题。 | 更多信息 | DictionaryRenderer | |
String | 更多信息 渲染器的类型。 | 更多信息 | DictionaryRenderer | |
String | 更多信息 指向字典样式的 URL。 | 更多信息 | DictionaryRenderer | |
VisualVariable[] | 更多信息 VisualVariable 对象数组。 | 更多信息 | DictionaryRenderer |
属性详细说明
-
-
该元数据仅包含在从在线地图创建方法之一生成的渲染器中, 比如 sizeRendererCreator.createContinuousRenderer() 和 colorRendererCreator.createContinuousRenderer()。这包括来自 UI 元素的信息,如滑块和选定的分类方法和主题。这允许用户客户端保存特定的可覆盖设置,以便下次通过 UI 访问时,可以记住他们的选择。
-
config Object
-
此属性允许您设置可在字典符号样式上配置的显示选项。例如,如果字典符号样式提供了打开/关闭符号/文本的显示选项,则可以在此处进行设置。
示例代码:renderer.config = { show_label: "true" }
-
类名。类的名称声明格式为
geoscene.folder.className
。
-
fieldMap HashMap<String>
-
定义一个字段映射,将输入字段从要素映射到字典符号样式的符号和文本。每个键标识一个字段(在字典的符号和文本属性中定义),该值标识数据集中对应的映射字段,字段名区分大小写。
示例代码:renderer.fieldMap = { fuel_type: "Fuel_Type_Code", connector_types: "EV_Connector_Types", network: "EV_Network", name: "Station_Name" };
-
scaleExpression String
-
可以设置缩放表达式以增大或减小字典符号的大小。 缩放表达式可以是所有符号的常数值,也可以是遵循 Arcade 可视化配置文件的 Arcade 表达式。 DictionaryRenderer 中的表达式可以使用
$feature
全局变量引用字段值,并且必须返回一个数字。- 示例:
示例代码:renderer.scaleExpression = "2"; //Make the symbols two times bigger.
renderer.scaleExpression = "IIF($feature.symbolset == 10, 2, 1)"; //If the value of "symbolset" field of a feature is 10, make the symbols two times bigger.
-
scaleExpressionTitle String
-
描述 scaleExpression 属性中定义的关联 Arcade 表达式的标题。
示例代码:renderer.scaleExpression = "IIF($feature.symbolset == 10, 2, 1)"; renderer.scaleExpressionTitle = "Scale by symbol set";
-
type String
-
渲染器类型。
对于 DictionaryRenderer,类型始终是"dictionary"。
-
url String
-
指向字典样式的 URL。
示例代码:renderer.url = "https://www.geosceneonline.cn/sharing/rest/content/items/30cfbf36efd64ccf92136201d9e852af/data";
-
visualVariables VisualVariable[]autocast
-
VisualVariable 对象数组。 每个对象必须指明要应用的视觉变量类型(例如, ColorVisualVariable、 SizeVisualVariable、OpacityVisualVariableRotationVisualVariable) 驱动可视化的数值字段或表达式,以及映射到数据的视觉值。下面的列表标识了每种可视变量类型,并提供了指向每种类型规范表的链接。
类型 对象规范 图例 color ColorVariable size SizeVisualVariable opacity OpacityVisualVariable rotation RotationVisualVariable - 视觉变量主要有两种使用方式。
1. 专题制图
在大多数情况下,视觉变量用于基于2D或3D中的主题属性(例如人口、教育、等级、金钱、大小等)创建可视化。
renderer.visualVariables = [{ type: "size", field: "POP_POVERTY", normalizationField: "TOTPOP_CY", legendOptions: { title: "% population in poverty by county" }, stops: [ { value: 0.15, size: 4, label: "<15%" }, { value: 0.25, size: 12, label: "25%" }, { value: 0.35, size: 24, label: ">35%" } ] }];
您可以进一步进行可视化,并在同一渲染器中使用多个视觉变量。下面的示例使用了三个视觉变量(大小、颜色和透明度)。
2. 真实世界制图
大小视觉变量可用于根据要素在现实世界中的大小可视化要素的真实尺寸(例如树冠、道路宽度、建筑高度等)。在 3D SceneView 中工作时,这种功能尤其强大。下图显示了一层树,它使用视觉变量根据存储在多个属性字段中的数据将每个要素的大小调整为每个树的真实尺寸。
有关使用多个可视化变量可视化数据的示例,请参阅使用逼真的 3D 符号进行专题可视化。
已知限制
颜色和不透明度视觉变量的停止次数不得超过 8 次,大小视觉变量的停止次数不得超过 6 次。这不适用于由视图比例驱动的变量。
对于用户可以交互更改可视变量的
field
或valueExpression
的应用程序,我们建议您将可视变量引用的所有潜在字段包含在图层的 outFields 中。这样可以确保在切换或更新渲染器中的字段时获得最佳用户体验。
方法列表
属性 | 返回值类型 | 描述 | 类 | |
---|---|---|---|---|
DictionaryRenderer | 更多信息 创建渲染器的深度克隆。 | 更多信息 | DictionaryRenderer | |
* | 更多信息 创建此类的新实例并使用从 GeoScene产品生成的 JSON 对象的值对其进行初始化。 | 更多信息 | Renderer | |
Promise<CIMSymbol> | 更多信息 此方法将使用字典渲染器返回给定图形的符号。 | 更多信息 | DictionaryRenderer | |
Object | 更多信息 将此类的实例转换为其 GeoScene portal JSON 表示。 | 更多信息 | Renderer |
方法详细说明
-
clone(){DictionaryRenderer}
-
渲染器的深度克隆。
返回值:类型 描述 DictionaryRenderer 调用此方法的对象的深度克隆。
示例代码:// 创建第一个图层渲染器的深拷贝 const renderer = view.map.layers.getItemAt(0).renderer.clone();
-
fromJSON(json){*}static
-
创建此类的新实例,并使用从 GeoScene 产品生成的 JSON 对象的值对其进行初始化。传递给输入
json
参数的对象通常来自对 REST API 中的查询操作的响应,或者来自另一个 GeoScene 产品的 toJSON() 方法。有关何时以及如何使用此函数的详细信息和示例,请参阅指南中的使用 fromJSON() 主题。参数:json ObjectGeoScene 格式的实例的 JSON 表示。有关各种输入 JSON 对象的结构示例,请参阅 GeoScene REST API 文档 。
返回值:类型 描述 * 返回一个该类的新实例。
-
此方法将使用字典渲染器返回给定图形的符号。
参数:graphic Graphic用于获取结果符号的图形。
返回值:类型 描述 Promise<CIMSymbol> 将返回一个 CIMSymbol 。
-
将此类的实例转换为其 GeoScene portal JSON 表示。 有关更多信息,请参阅使用 fromJSON() 主题。
返回值:类型 描述 Object 此类实例的 GeoScene portal JSON 表示。