定义图层上标注的标注表达式、符号、比例范围、标注优先级和标注放置选项。有关标签的详细信息,请参阅标签指南。
已知限制
- 多边形几何仅支持
always-horizontal
的 labelPlacement。 - 符号中使用的可用字体属性取决于图层类型、几何类型以及您是在 2D 还是 3D 中工作。
- 目前,当 TimeExtent 应用于
layer
或view
时,无法正确标记要素。 - 目前,当 FeatureEffect 和/或 FeatureFilter 应用于 LayerView 时,标签可能无法正确显示。
- 3D SceneViews 每个要素仅支持一个标签。如果一个特征满足多个 LabelClasses 的 where 条件,则只显示第一个匹配的 LabelClass 对应的标签。
- 另请参阅:
const labelClass = { // autocasts as new LabelClass()
symbol: {
type: "text", // autocasts as new TextSymbol()
color: "white",
haloColor: "blue",
haloSize: 1,
font: { // autocast as new Font()
family: "Ubuntu Mono",
size: 14,
weight: "bold"
}
},
labelPlacement: "above-right",
labelExpressionInfo: {
expression: "$feature.Team + TextFormatting.NewLine + $feature.Division"
},
maxScale: 0,
minScale: 25000000,
where: "Conference = 'AFC'"
};
const labelLayer = new FeatureLayer({
portalItem: { // autocasts as new PortalItem()
id: "7f0bfc7bf67a407d8efebf584f6d956d"
},
labelingInfo: [labelClass]
});
构造函数
属性概述
名称 | 类型 | 描述 | 类 | |
---|---|---|---|---|
布尔值 | 更多信息 指定折线标签是否可以超出被标注的要素。 | 更多信息 | LabelClass | |
String | 更多信息 类的名称。 | 更多信息 | Accessor | |
String | 更多信息 定义标签应如何相对于彼此放置。 | 更多信息 | LabelClass | |
String | 更多信息 定义 MapImageLayer 的标签。 | 更多信息 | LabelClass | |
Object | 更多信息 定义 FeatureLayer 的标签。 | 更多信息 | LabelClass | |
String | 更多信息 标签的位置。 | 更多信息 | LabelClass | |
String | 更多信息 指定折线标签的标签位置的方向。 | 更多信息 | LabelClass | |
整数 | 更多信息 标签在视图中可见的最大比例(放大幅度最大)。 | 更多信息 | LabelClass | |
整数 | 更多信息 标签在视图中可见的最大比例(放大幅度最大)。 | 更多信息 | LabelClass | |
布尔值 | 更多信息 指示是否沿折线要素重复标注。 | 更多信息 | LabelClass | |
整数 | 更多信息 折线上标签之间距离的大小(以磅为单位)。 | 更多信息 | LabelClass | |
TextSymbol|LabelSymbol3D | 更多信息 定义用于渲染标注的符号。 | 更多信息 | LabelClass | |
布尔值 | 更多信息 指示如果 labelExpression 或 labelExpressionInfo 中的字段具有域,是否使用域名。 | 更多信息 | LabelClass | |
String | 更多信息 一个 SQL where 子句,用于确定应应用标签类的要素。 | 更多信息 | LabelClass |
属性详情
-
allowOverrun Boolean起始版本:GeoScene API for JavaScript 4.22
-
指定折线标注是否可以覆盖正在标注的要素。例如,在折线段结束之后。
已知限制
目前,此属性仅适用于 2D MapViews 中的折线要素图层、CSVLayer 和 StreamLayer。
- 默认值:false
-
起始版本:GeoScene API for JavaScript 4.7
-
类的名称。声明的类名的格式为
geoscene.folder.className
。
-
deconflictionStrategy String起始版本:GeoScene API for JavaScript 4.16
-
定义标签应如何相对于彼此放置。默认情况下,标签具有
static
消除冲突策略,这意味着重叠的标签被丢弃以使其更易于阅读。在某些标签重叠很少的情况下,最好使用
none
选项关闭标签解除冲突。在使用集群中心的要素计数标记集群时,还建议关闭去冲突。下图说明了您何时可能希望或可能不希望标签消除冲突。
当标记密集图层时,默认的去冲突策略(
static
)更可取,因为标记所有要素会导致显着重叠,使标签难以辨认。保持默认设置允许渲染一些标签。随着用户放大,所有标签最终都会出现。静态(默认) 无 使用小标签标记聚类(甚至稀疏分布的要素)时,最好允许标签略微重叠,因为信息仍然清晰可辨,并且不会明显遮挡可视化效果。在聚类场景中,
static
的标签去冲突设置实际上可能会导致更多的混乱,使某些要素看起来不是聚类。静态(默认) 无 已知限制
目前,此属性仅适用于 2D MapViews 中的 FeatureLayer、CSVLayer 和 StreamLayer。
可能值:"none"|"static"
- 默认值:static
示例:// Ensures all labels are displayed regardless // of whether they overlap labelClass.deconflictionStrategy = "none";
-
labelExpression String
-
定义 MapImageLayer 的标签。如果使用支持 Arcade 的 MapImageLayer,您也可以改用 labelExpressionInfo。要确定这一点,请检查 supportsArcadeExpressionForLabeling 属性。如果为
true
,则可以使用 labelExpression 或 labelExpressionInfo。如果为false
,那么只能使用 labelExpression。如果使用 FeatureLayer,请改用 labelExpressionInfo。
属性值可以使用 SQL 语法包含在标签中。要在标签中包含属性值,请将字段名称括在方括号
[]
中。请参阅下面的示例片段。- 默认值:null
示例:// For Spokane County, WA, label will display: "Spokane County, Washington" labelClass.labelExpression = '[COUNTY_NAME] CONCAT " County, " CONCAT [STATE_NAME]';
-
labelExpressionInfo Object
-
定义 FeatureLayer 的标签。
如果使用支持 Arcade 的 MapImageLayer,您也可以改用 labelExpressionInfo。 要确定这一点,请检查 supportsArcadeExpressionForLabeling 属性。如果为
true
,则可以使用 labelExpression 或 labelExpressionInfo。如果为false
,那么只能使用 labelExpression。- 属性:
-
value String已弃用起始版本 4.5。请改用可选
expression
。定义标签文本内容的 SQL 表达式。
expression String遵循 Arcade label Profile 定义的规范的 Arcade 表达式。 标签中的表达式可以使用
$feature
全局变量引用字段值,并且必须返回一个字符串。例如,要使用城市名称标记一层城市,只需使用全局变量引用字段值:
$feature.CITY_NAME
。表达式可以更复杂并使用逻辑函数。如果您想使用分类标签,这可能很有用。例如,如果要素的人口字段包含大于 10,000 的数字,则以下表达式将city
附加到标签的末尾。否则,town
将附加到标签的末尾。此外,您可以使用TextFormatting.NewLine
向标签添加新行。IIF($feature.POPULATION > 10000, $feature.NAME + ' city', $feature.NAME + ' town')
title String标签表达式的标题。这在多个标签类别的情况下特别有用。
- 默认值:null
- 另请参阅:
示例:// For Spokane County, WA, label will display: "Spokane County, Washington" labelClass.labelExpressionInfo = { expression: "$feature.COUNTY_NAME + ' County, ' + $feature.STATE_NAME" };
-
labelPlacement String
-
标签的位置。可能的值取决于要素类型。此属性需要一个值。
要素类型 可能值 点 above-center
,above-left
,above-right
,below-center
,below-left
,below-right
,center-center
,center-left
,center-right
折线 above-after
,above-along
,above-before
,above-start
,above-end
,below-after
,below-along
,below-before
,below-start
,below-end
,center-after
,center-along
,center-before
,center-start
,center-end
面 always-horizontal
可能值:"above-center"|"above-left"|"above-right"|"below-center"|"below-left"|"below-right"|"center-center"|"center-left"|"center-right"|"above-after"|"above-along"|"above-before"|"above-start"|"above-end"|"below-after"|"below-along"|"below-before"|"below-start"|"below-end"|"center-after"|"center-along"|"center-before"|"center-start"|"center-end"|"always-horizontal"
示例:labelClass.labelPlacement = "above-right";
-
labelPosition String起始版本:GeoScene API for JavaScript 4.22
-
指定折线标签的标签位置的方向。如果
"curved"
,这意味着字符遵循折线的曲线,而"parallel"
意味着字符将始终是直的,并且方向将基于折线曲线在标签位置处的角度。可能值:"curved"|"parallel"
- 默认值:"curved"
-
maxScale Number
-
标签在视图中可见的最大比例(放大幅度最大)。值为
0
时,表示标签的可见性没有最大比例。maxScale 值应始终小于 minScale 值,并且大于或等于服务规范。- 默认值:0
-
minScale Number
-
标签在视图中可见的最大比例(放大幅度最大)。值为
0
时,表示标签的可见性没有最小比例。minScale 应始终大于 maxScale 值,并且小于或等于服务规范。- 默认值:0
-
repeatLabel Boolean起始版本:GeoScene API for JavaScript 4.22
-
指示是否沿折线要素重复标注。如果为
true
,标签将根据 repeatLabelDistance 重复。如果为false
,则标签将在每个折线段显示一次。已知限制
目前,此属性仅适用于 2D MapViews 中的折线要素图层、CSVLayer 和 StreamLayer。
- 默认值:true
-
起始版本:GeoScene API for JavaScript 4.22
-
折线上标签之间距离的大小(以磅为单位)。该值可以使用以点或像素表示大小的字符串进行自动转换(例如
100
,"64pt"
,"128px"
)。repeatLabel 属性必须为true
才能使用此属性。已知限制
- 目前,此属性仅适用于 2D MapViews 中的折线要素图层、CSVLayer 和 StreamLayer。
- 默认值:null
示例:const labelClass = { // autocasts as new LabelClass() symbol: { type: "text", // autocasts as new TextSymbol() color: "white", font: { // autocast as new Font() family: "Orbitron", size: 12, weight: "bold" } }, labelExpressionInfo: { expression: "$feature.rte_num1" }, labelPlacement: "center-along", repeatLabel: true, repeatDistanceLabel: 100 };
-
-
定义用于渲染标注的符号。如果未设置,将使用默认符号。请参见下面的示例。
示例:// If not set, this default symbol will be used labelClass.symbol = { type: "text", color: [255, 255, 255, 255], // white font: { family: "Arial Unicode MS", size: 10, weight: "bold" }, haloColor: [0, 0, 0, 255], // black haloSize: 1 };
-
useCodedValues Boolean
-
指示如果 labelExpression 或 labelExpressionInfo 中的字段具有域,是否使用域名。
-
where String
-
一个 SQL where 子句,用于确定应应用标签类的要素。指定时,只有基于此表达式评估为
true
的要素才会被标记。- 默认值:null
示例:labelClass.where = "CITYNAME = 'Redlands'";
labelClass.where = "MARKER_ACTIVITY IN ('Picnicking', 'Group Camping')";
方法概述
名称 | 返回类型 | 描述 | 类 | |
---|---|---|---|---|
LabelClass | 更多信息 创建 LabelClass 的深层克隆。 | 更多信息 | LabelClass | |
* | 更多信息 创建此类的新实例,并使用从 GeoScene 产品生成的 JSON 对象中的值对其进行初始化。 | 更多信息 | LabelClass | |
Object | 更多信息 将此类的实例转换为其 GeoScene portal JSON 表示形式。 | 更多信息 | LabelClass |
方法详情
-
clone(){LabelClass}
-
创建 LabelClass 的深层克隆。
返回:类型 说明 LabelClass 调用此方法的对象的深层克隆。 示例:// Creates a deep clone of the layer's first labelClass let label = layer.labelingInfo[0].clone();
-
fromJSON(json){*}static
-
创建此类的新实例,并使用从 GeoScene 产品生成的 JSON 对象中的值对其进行初始化。传递到输入
json
参数的对象通常来自对 REST API 中的查询操作的响应或来自另一个 GeoScene 产品的 toJSON() 方法。请参阅指南中的 fromJSON() 主题,了解有关何时以及如何使用此功能的详细信息和示例。参数:json ObjectGeoScene 格式的实例的 JSON 表示形式。有关各种输入 JSON 对象的结构示例,请参阅 GeoScene REST API 文档。
返回:类型 说明 * 返回此类的新实例。
-
toJSON(){Object}
-
将此类的实例转换为其 GeoScene portal JSON 表示形式。有关更多信息,请参阅 使用 fromJSON() 主题。
返回:类型 说明 Object 此类示例的 GeoScene portal JSON 表现形式。