SimpleRenderer

AMD: require(["geoscene/renderers/SimpleRenderer"], (SimpleRenderer) => { /* 代码 */ });
ESM: import SimpleRenderer from "@geoscene/core/renderers/SimpleRenderer";
类: geoscene/renderers/SimpleRenderer
继承于: SimpleRenderer Renderer Accessor
起始版本: GeoScene API for JavaScript 4.22

SimpleRenderer使用一个 Symbol 渲染 Layer 中的所有要素。该渲染器可用于简单地可视化地理要素的位置。例如,代表政治边界、城市、建筑、河流等的层通常用于在应用程序中提供地理上下文,可以用每层一个符号来定义。

支持的图层

SimpleRenderer 只能用于为以下图层类型创建可视化:

下面屏幕截图中的示例包含三层:一个州边界、另一个高速公路和另一个城市。每个都为地图提供地理要素。

renderer-simple-basic

还可用于以主题方式可视化数字数据属性。这是通过视觉变量完成的。视觉变量定义了数值数据的数据驱动可视化参数。它们允许您轻松地将 颜色大小透明度的连续渐变映射到图层某一数字属性字段的最小和最大值上。

下面的示例在 3D  SceneView 中添加大小颜色视觉变量可视化飓风沿路径不同位置的风速。

symbols-3d-objects

要了解有关可视变量的更多信息,请参阅 visualVariables

示例:
示例代码:
// Set a basic symbol on a layer to visualize all features the same way
let citiesRenderer = {
  type: "simple",  // 转换成 new SimpleRenderer()
  symbol: {
    type: "simple-marker",  // 转换成 new SimpleMarkerSymbol()
    size: 6,
    color: "black",
    outline: {  // 转换成 new SimpleLineSymbol()
      width: 0.5,
      color: "white"
    }
  }
};
let citiesLayer = new FeatureLayer({
  url: "http://url.to.service",
  renderer: citiesRenderer
});
// Set a continuous color ramp on the renderer with visual variables
let citiesRenderer = {
  type: "simple",  // 转换成 new SimpleRenderer()
  symbol: { type: "simple-fill" },  // 转换成 new SimpleFillSymbol()
  visualVariables: [{
    type: "color",
    field: "POPULATION",
    normalizationField: "SQ_KM",
    // features with 30 ppl/sq km or below are assigned the first color
    stops: [{ value: 100, color: "#FFFCD4" },
          { value: 500, color: "#0D2644" }]
  }]
};
let citiesLayer = new FeatureLayer({
  url: "http://url.to.service",
  renderer: citiesRenderer
});

构造函数

new SimpleRenderer(properties)
参数:
properties Object
optional

所有可传入构造函数的属性,请参见属性列表。

属性列表

可以设置、检索或监听的属性。参见使用属性主题。
展示继承属性 隐藏继承属性
属性 类型 描述
String更多信息

类名。

更多信息Accessor
String更多信息

渲染器的标签。

更多信息SimpleRenderer
Symbol更多信息

渲染器用来可视化图层中所有要素的符号。

更多信息SimpleRenderer
String更多信息

渲染器的类型。

更多信息SimpleRenderer
VisualVariable[]更多信息

一组 VisualVariable 对象。

更多信息SimpleRenderer

属性详细说明

declaredClass Stringreadonly inherited
起始版本: GeoScene API for JavaScript 4.22

类名。类的名称声明格式为 geoscene.folder.className

label String

渲染器的标签。这描述了具有给定符号的要素在现实世界中代表什么。 这将显示在图例微件内的图层符号旁边。

当使用 visualVariables 时,图例中不会显示文本。 当渲染器包含 visualVariables 时,您应该在每个legendOptions上设置 title 属性来描述可视化。

渲染器用来可视化图层中所有要素的符号。

示例代码:
let renderer = {
  type: "simple",  // 转换成 new SimpleRenderer()
  symbol: {
    type: "simple-fill",  // 转换成 new SimpleFillSymbol()
    color: [ 255, 128, 0, 0.5 ],
    outline: {  // 转换成 new SimpleLineSymbol()
      width: 1,
      color: "white"
    }
  }
};
type Stringreadonly

渲染器类型。

对于 SimpleRenderer,类型始终为 "simple"

visualVariables VisualVariable[]autocast
自动转换自 Object[]

VisualVariable 对象数组。 每个对象必须指明要应用的视觉变量类型(例如, ColorVisualVariableSizeVisualVariableOpacityVisualVariableRotationVisualVariable)、驱动可视化的数值字段或表达式,以及映射到数据的视觉值。下面的列表标识了每种可视变量类型,并提供了指向每种类型规范表的链接。

类型 对象规范 图例示例
color ColorVariable legend-color-vv
size SizeVisualVariable legend-color-vv
opacity OpacityVisualVariable legend-color-vv
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%" }
  ]
}];

size-image-here

您可以进一步进行可视化,并在同一渲染器中使用多个视觉变量。下面的示例使用了三个视觉变量(大小、颜色和透明度)。

visualization-multivariate-2d

2. 真实世界制图

大小视觉变量可用于根据要素在现实世界中的大小可视化要素的真实尺寸(例如树冠、道路宽度、建筑高度等)。在3D SceneView 中工作时,这种功能尤其强大。下图显示了一层树,它使用视觉变量根据存储在多个属性字段中的数据将每个要素的大小调整为每个树的真实尺寸。

renderer-vv-rw


有关使用多个可视化变量可视化数据的示例,请参阅使用逼真的 3D 符号进行专题可视化。

已知限制

颜色和不透明度视觉变量的停止次数不得超过 8 次,大小视觉变量的停止次数不得超过 6 次。这不适用于由视图比例驱动的变量。

对于用户可以交互更改可视变量的 field 或 valueExpression 的应用程序,我们建议您将可视变量引用的所有潜在字段包含在图层的 outFields 中。这样可以确保在切换或更新渲染器中的字段时获得最佳用户体验。

示例:

方法列表

展示继承方法 隐藏继承方法
属性 返回值类型 描述
SimpleRenderer更多信息

创建渲染器的深拷贝。

更多信息SimpleRenderer
*更多信息

创建此类的新实例并使用从 GeoScene 产品生成的 JSON 对象的值对其进行初始化。

更多信息Renderer
Object更多信息

将此类的实例转换为其 GeoScene portal JSON 格式。

更多信息Renderer

方法详细说明

clone(){SimpleRenderer}

创建渲染器的深拷贝。

返回值:
类型 描述
SimpleRenderer 返回调用此方法对象的深拷贝。
示例代码:
// 创建第一个图层渲染器的深拷贝
let renderer = view.map.layers.getItemAt(0).renderer.clone();
fromJSON(json){*}static

创建此类的新实例,并使用从 GeoScene 产品生成的 JSON 对象的值对其进行初始化。传递给输入 json 参数的对象通常来自对 REST API 中的查询操作的响应,或者来自另一个 GeoScene 产品的 toJSON() 方法。有关何时以及如何使用此函数的详细信息和示例,请参阅指南中的使用 fromJSON() 主题。

参数:
json Object

实例的 json 表达式,以 geoscene 格式显示。

返回值:
类型 描述
* 返回一个该类的新实例。
toJSON(){Object}inherited

将此类的实例转换为 GeoScene portal JSON 格式。 有关更多信息,请参阅使用 fromJSON() 指南。

返回值:
类型 描述
Object 此类实例的 GeoScene portal JSON 格式。

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