在矢量切片中进行标注

创建矢量切片后,地图图层上启用的任何标注均包含在此切片中。 但是,矢量切片的标注功能仅包含 ArcGIS Pro 中提供的标注功能的子集。 在可能的情况下,可将 ArcGIS Pro 中的标注属性转换为矢量切片规范中的相应属性。 ArcGIS Pro 支持两个标注引擎,但是 Maplex 标注引擎 可转换更多属性,如下所示。

标注分类

可以将一个或多个标注类转换为矢量切片。 与 ArcGIS Pro 中的标注引擎相比,矢量切片客户端的放置功能相对有限。 例如,如果一个点图层的两个标注类都将标注放置在标注右上角的首选位置,则 ArcGIS Pro 的标注引擎将移动标注以使其同时显示。

对于矢量切片,客户端仅将具有最高优先级的标注放置在指定位置,并将删除另一个,因为其与前一个冲突。 因此,建议包含多个标注类的要素具有不同的标注位置以避免冲突,并最大限度减少删除的标注。 在许多情况下,堆叠文本也可以满足多个标注类的需要。 有关详细信息,请参阅以下标注堆叠部分。

文本符号

文本符号将转换为矢量切片规范中的相应符号属性。 字体大小将从点转换为像素。 字体将转换为矢量切片资源中的优化表示,注释将转换为 Sprite。 对于使用基于比例的标注大小调整的文本符号,将针对 "text-size" 属性创建停靠点。 如果标注大小限制在某一大小范围内,则 "text-size" 属性将随停靠点一同应用以获取基于该值的大小变化。

以下是文本符号的示例:

"layout": {
  "text-font": ["Tahoma Bold"],
  "text-size": {
  "stops": [[5, 13.3333], [15, 48]]
  }
}

晕圈符号颜色晕圈大小文本符号属性将转换为 "text-halo-color""text-halo-size"晕圈符号轮廓宽度晕圈符号轮廓颜色文本符号属性在矢量切片规范中不受支持并将被忽略。

指定为小写或全部大写的文本大小写将应用于要素的标注文本。 字母间距将转换为 "text-letter-spacing",单位将转换为 ems。 矢量切片中不支持牵引线。 具有牵引线的注释类型仅显示背景符号。 例如,气球注释指定了颜色和轮廓,但是没有牵引线。

使用“块进程”属性指定为从右至左的垂直文本被转换为文本写入模式,并将 vertical 作为它的值。 此属性用于亚洲文本的垂直放置。 仅当标签中包含至少一个字符并且该字符来自一个支持垂直写入的范围时(例如,CJK 字符),才能垂直放置标签。

创建矢量切片时不支持以下文本符号属性:

  • 文本符号属性,例如轮廓颜色、轮廓宽度、下划线、删除线、文本小写、位置调整、水平对齐、垂直对齐和阴影
  • 文本符号格式化属性,例如词间距、字母宽度、行间距、翻转角度、连字、字距、以几何形式绘制字形、外推基线、字形提示和兼容模式
  • 文本符号段落属性,例如软连字符、首行缩进、向前缩进和向后缩进
  • 文本符号国际化属性,例如文本方向、字形方向、区域语言和字体编码

标注表达式

矢量切片支持采用 Arcade、VBScript、JScript 和 Python 语言的简单单行或高级标注表达式。 还支持用于基于字段值对要素子集进行标注的 SQL 查询。 将对标注表达式进行处理并将其存储为矢量切片中的属性值,属性名称为 "_name"。 如果标注了多个标注类,则属性名称将包含与标注类顺序对应的编号,"_name1""_name2",以此类推。

标注格式化标签不受支持,并将从矢量切片的标注文本中将其移除。

标注堆叠

可以将 Maplex 标注配置为根据标注中存在的字符和地图上的可用空间动态进行堆叠。 或者,可以将 Maplex 标注配置为根据指定字符的存在强制进行堆叠。 矢量切片不支持动态堆叠,但支持强制堆叠。 矢量切片创建过程会将强制堆叠应用于相应文本,该文本将写入正在进行标注的要素的名称属性。

标注缩写

可以将 Maplex 标注配置为根据标注中的文本和地图上的可用空间动态进行缩写。 或者,应用使用翻译选项的 Maplex 缩写字典条目,而不考虑空间。 矢量切片不支持动态缩写,但支持翻译缩写。 矢量切片创建过程会将翻译缩写应用于相应文本,该文本将写入正在进行标注的要素的名称属性。

标注放置

可用的标注放置选项如下:

点放置

矢量切片创建将根据标注放置属性中指定的默认位置来设置标注位置 "text-anchor"。 如果在 Maplex 或标准标注引擎中使用固定放置样式,则将对放置进行匹配。 如果使用 "Best Position" 样式放置,则会将等级最高的位置指定为矢量切片中的位置。 标注使用 "text-offset" 属性从要素偏移,该属性考虑标注放置中的符号大小和指定的偏移量。 如果对文本应用了旋转,则将针对 "text-rotate" 属性设置旋转值。 如果使用旋转字段或表达式对文本进行旋转,则将针对 "text-rotate" 属性来设置旋转字段和任何附加旋转。 如果将地图的标注设置配置为在旋转地图时旋转标注,则将此设置应用于 "text-rotation-alignment" 属性设置为 "map""text-keep-upright" 属性设置为 false 的点标注。

以下示例演示了将点图层的文本标注属性直接放置在点(位于底部的锚点)的顶部:

"id": "U.S. Cities",
"type": "symbol",
"source": "esri",
"source-layer": "U.S. Cities",
"layout": {
  "icon-image": "U.S. Cities",
  "icon-allow-overlap": true,
  "text-font": ["Tahoma Regular"],
  "text-size": 13.3333,
  "text-anchor": "bottom",
  "text-offset": [0, 0.065],
  "text-field": "{_name}",
  "text-optional": true
  }

线放置

矢量切片中的线标注只能采用常规弯曲放置和水平居中放置。 所有其他线放置样式将转换为常规弯曲放置。 如果将偏移限制在线的一侧,则线上的偏移标注放置将转换为矢量切片。 将应用偏移值以将文本移动到正确的一侧。 请注意,如果线段是直的,则通常会将弯曲标注作为平直文本放置。 矢量切片创建过程将创建辅助线几何以平滑弯曲放置。 系统将为水平居中放置创建次要点几何。

以下是线上线放置的示例:

"id": "U.S. National Transportation Atlas Interstate Highways/label/Class 1",
"type": "symbol",
"source": "esri",
"source-layer": "U.S. National Transportation Atlas Interstate Highways/label",
"layout": {
  "symbol-placement": "line",
  "symbol-spacing": 1000,
  "text-font": ["Tahoma Regular"],
  "text-size": 13.3333,
  "text-field": "{_name}",
  "text-optional": true
 }

面放置

支持弯曲、水平、平直和河流放置。 河流放置所产生的放置与弯曲放置相同。 如果需要匹配请求的放置样式,则矢量切片创建过程将创建辅助几何以进行标注。 例如,面内平直面内弯曲等标注放置选项会导致创建点或线几何,以便在每个面内正确定位和定向标注。 如果将地图的标注设置配置为在旋转地图时旋转标注,则将此设置应用于 "text-rotation-alignment" 样式属性设置为 “map” 且 "text-keep-upright" 属性设置为 false 的面标注。

对于面中心的基本放置,不会指定位置属性,如下例所示:

"id": "U.S. Counties (Generalized)/label/Class 1",
"type": "symbol",
"source": "esri",
"source-layer": "U.S. Counties (Generalized)/label",
"layout": {
  "text-font": ["Tahoma Regular"],
  "text-size": 13.3333,
  "text-field": "{_name}",
  "text-optional": true
}

冲突解决

Maplex 标注放置有多种冲突解决设置,但是矢量切片仅支持其中两种。

对于线标注,重复 > 最小间隔将转换为 "symbol-spacing" 属性,以像素为单位。 未放置的标注 > 从不移除(如果启用该选项,将允许压盖标注)将转换为 "text-allow-overlap" 属性,且值为 true。

相关主题