将标注转换为注记 (制图)

描述

将单个图层或整个地图的标注转换为注记。既可以创建标准注记,也可以创建关联要素的注记。

使用方法

  • 标注可以转换为单个图层或整个地图的注记。如果选择了单个图层选项,则必须指定图层,并且该图层必须位于地图中。

  • 标注分类比例范围将被考虑。当该工具生成指定地图比例的注记时,它将仅转换该比例下呈启用状态并且可见的标注分类。

    注:

    ArcGIS Pro 中,标注分类比例范围可在标注选项卡中进行设置。

  • 即使指定的后缀已存在,也不会覆盖注记要素类。在这种情况下,注记要素类后缀中将添加一个数字(例如,CitiesAnno、CitiesAnno_1 等)。命名的完整格式如下:

    <layer name> <duplicate feature class count> <anno suffix> <running number>

  • 如果正在生成多个参考比例下的注记,请在每种比例下分别设计地图并避免在地图中设置参考比例。然后针对各个比例和名称将标注正确转换为注记,例如,CitiesAnno_1000、CitiesAnno_100000。

  • 此工具的一种输出为图层组。在目录窗格、Python 窗口或独立 Python 脚本中工作时,可使用保存至图层文件工具将输出图层组写入图层文件。使用 ArcGIS Pro 时,该工具会将图层组添加到显示区域中。所创建的图层组是临时性的,如果不保存工程,该图层组将在会话结束后消失。

  • 如果指定的图层名称相同并且已明确声明允许覆盖输出,则现有图层组将被覆盖。

  • 如果未选中创建要素关联注记选项,则可使用将所有图层中的标注转换为单个输出要素类选项为整个地图创建单个注记要素类。

    为地图创建单个注记要素类时,可以使用合并类似标注类选项将具有类似属性的标注类合并到一个注记类中。

  • 与要素关联的注记与地理数据库中另一个要素类中的特定要素相关联。如果选中创建关联要素的注记选项,则在创建输出注记要素类时,也将自动生成关系类。

  • 创建关联要素的注记时,输出工作空间必须与所关联要素类的输出工作空间相同。

  • 某些标注目前可能未显示在地图上,原因是没有空间。要转换这些标注,请选中将未放置的标注转换为未放置的注记复选框。这样便可将未放置的标注保存到注记要素类中,以便今后在 ArcGIS Pro 编辑会话中可以找到它们。

  • 内存和 in_memory 工作空间不支持要素关联注记。

语法

ConvertLabelsToAnnotation(input_map, conversion_scale, output_geodatabase, {anno_suffix}, {extent}, {generate_unplaced}, {require_symbol_id}, {feature_linked}, {auto_create}, {update_on_shape_change}, {output_group_layer}, {which_layers}, {single_layer}, {multiple_feature_classes}, {merge_label_classes})
参数说明数据类型
input_map

输入地图。

Map
conversion_scale

转换标注时使用的比例。如果已在地图上设置参考比例,则在调整符号大小和创建注记要素类时,将使用该参考比例,但是将以此比例进行转换。

Double
output_geodatabase

用来保存输出要素类的工作空间。此工作空间可以是现有地理数据库或现有要素数据集。如果此数据库与地图中所有图层使用的数据库不同,则将禁用关联要素选项。

Workspace; Feature Dataset
anno_suffix
(可选)

为每个新注记要素类添加的后缀。该后缀将追加到各新注记要素类的源要素类名称之后。

String
extent
(可选)

指定包含要转换为注记的标注的范围。它可以是地图的范围、输入图层的并集、输入图层的交集、当前显示范围,也可以与指定的图层范围相同或使用值来指定。

  • MAXOF - 输入的并集
  • MINOF - 输入的交集
  • DISPLAY - 与当前显示的范围相同
  • <图层> - 与指定图层的范围相同
Extent
generate_unplaced
(可选)

指定是否将基于未放置标注创建未放置注记。

  • ONLY_PLACED仅为当前已标注的要素创建注记。这是默认设置。
  • GENERATE_UNPLACED未放置的注记将存储到注记要素类中。这些注记的状态字段将设置为“未放置”。
Boolean
require_symbol_id
(可选)

指定是否限制可以编辑的文本符号属性。

  • NO_REQUIRE_ID允许对任何文本符号属性进行编辑。这是默认设置。
  • REQUIRE_ID仅允许对启用注记要素的符号属性进行编辑,以保持集合中对其关联文本符号的引用。
Boolean
feature_linked
(可选)
许可:

仅当具有 ArcGIS Desktop StandardArcGIS Desktop Advanced 级别许可时,此参数才可用。

用于指定是否将输出注记要素类关联到其他要素类中的要素。

  • STANDARD输出注记要素类将不会关联到其他要素类中的要素。这是默认设置。
  • FEATURE_LINKED输出注记要素类将关联到其他要素类中的要素。
Boolean
auto_create
(可选)

如果 feature_linked 参数设置为 FEATURE_LINKED,用于指定在向链接要素类添加新要素时是否创建注记。

  • AUTO_CREATE向关联要素类添加新要素时,将创建关联要素注记。这是默认设置。
  • NO_AUTO_CREATE向关联要素类添加新要素时,不会创建关联要素注记。
Boolean
update_on_shape_change
(可选)

如果 feature_linked 参数设置为 FEATURE_LINKED,用于指定在更新链接要素的形状时是否更新注记的位置。

  • SHAPE_UPDATE修改链接要素的形状时,将更新注记的位置。这是默认设置。
  • NO_SHAPE_UPDATE修改链接要素的形状时,不会更新注记的位置。
Boolean
output_group_layer
(可选)

包含所生成注记的图层组。可使用保存至图层文件工具将输出图层组写入图层文件中。

Group Layer
which_layers
(可选)

指定是为地图中的所有图层还是为单个图层转换注记。必须指定单个图层。

  • ALL_LAYERS将地图中所有图层的标注转换为注记。这是默认设置。
  • SINGLE_LAYER标注将转换为单个图层的注记。必须指定图层。
String
single_layer
(可选)

which_layers 参数设置为 SINGLE_LAYER 时包含要转换注记的图层。该图层必须位于地图中。

Feature Layer
multiple_feature_classes
(可选)

指定标注将转换为单独的注记要素类还是单个注记要素类。如果转换为单个注记要素类,则注记不能与要素关联。

  • SINGLE_FEATURE_CLASS所有图层中的标注将转换为单个注记要素类。
  • FEATURE_CLASS_PER_FEATURE_LAYER标注将转换为与其图层对应的单独注记要素类。这是默认设置。
Boolean
merge_label_classes
(可选)

指定当 multiple_feature_classes 参数设置为 SINGLE_FEATURE_CLASS时是否合并类似标注类。

  • MERGE_LABEL_CLASSmultiple_feature_classes 参数设置为 SINGLE_FEATURE_CLASS 时,将合并具有类似属性的标注类。
  • NO_MERGE_LABEL_CLASSmultiple_feature_classes 参数设置为 SINGLE_FEATURE_CLASS 时,不会合并标注类。这是默认设置。
Boolean

派生输出

名称说明数据类型
updated_geodatabase

用来保存输出要素类的工作空间。

工作空间

代码示例

ConvertLabelsToAnnotation 示例(Python 窗口)

ConvertLabelsToAnnotation Python 示例用于将地图中单个图层的标注转换为注记。

import arcpy
arcpy.cartography.ConvertLabelsToAnnotation(
    'Map1', 10000, 'D:/data/Cobourg.gdb', 'Anno', 'MAXOF', 'ONLY_PLACED', 
    'REQUIRE_ID', 'STANDARD', '', '', 'AnnoLayer', 'SINGLE_LAYER', 'Schools', '', '')
ConvertLabelsToAnnotation 示例 2(独立脚本)

此独立脚本使用 ConvertLabelsToAnnotation 函数将地图的标注转换为注记。注记将转换为单个注记要素类,并且将合并类似标注类。

# Name: ConvertLabelsToAnnotation.py
# Description: Find all the maps in the project and
#              convert labels to annotation for each map
# import system modules
import arcpy
# Loop through the project, find all the maps, and
#   convert labels to annotation for each map,
#   using the name of the map as part of the annotation suffix 
project = arcpy.mp.ArcGISProject("D:\\data\\myproject.aprx")
for mp in project.listMaps():
    print("Converting labels to annotation for: " + mp.name)
    arcpy.cartography.ConvertLabelsToAnnotation(
            mp, 10000, 'D:/data/Cobourg.gdb', 'Anno_' + mp.name, 'MAXOF', 
            'ONLY_PLACED', 'REQUIRE_ID', 'STANDARD', '', '', 
            'AnnoLayers_' + mp.name, 'ALL_LAYERS', '', 'SINGLE_FEATURE_CLASS', 
            'MERGE_LABEL_CLASS')

许可信息

  • Basic: 是
  • Standard: 是
  • Advanced: 是

相关主题