描述
基于面索引图层将地图中的各图层的标注转换为注记。
该工具将地图划分为多个分块并依次为每一块创建注记。这非常适合于将大量标注转换为注记。面索引图层可以使用地图服务器缓存切片方案转换为面或格网索引要素工具生成,也可以是覆盖了要创建注记的区域的任何其他面要素类。
使用方法
标注可以转换为单个图层或整个地图的注记。如果选择了单个图层选项,则必须指定图层,并且该图层必须位于地图中。
标注分类比例范围将被考虑。当该工具生成指定参考比例的注记时,它将仅转换该比例下呈启用状态并且可见的标注分类。
注:
在 ArcGIS Pro 中,标注分类比例范围可在图层属性中进行设置。配置好标注属性后,请先保存工程,再运行该工具。
如果在运行该工具之前选择分块,则只会为所选分块创建注记。
若只需为面索引图层中的某些分块更新注记,可先选择带有该特定 TileID 值的注记要素并删除它们。然后选择面要素并重新运行该工具。
该工具的输出是一系列图层组。在每个图层组中,需要创建注记的每个参考比例均将对应一个组中图层。
-
在目录窗格或 ModelBuilder 中工作时,可使用保存至图层文件工具将输出图层组写入图层文件中。
如果指定的图层名称相同并且已明确声明允许覆盖输出,则现有图层组将被覆盖。
如果地图中存在重复的要素类名称,则注记中的要素类名之后将添加一个数字(例如,Cities01Anno10000、Cities02Anno10000 等)。
即使指定的后缀已存在,也不会覆盖注记要素类。在这种情况下,注记要素类后缀中将添加一个数字(例如 CitiesAnno10000、CitiesAnno10000_1 等)。
注记要素类的参考比例可通过以下两种方式之一进行指定:
- 第一种是,通过面索引图层中的某个字段来确定输出注记要素类的参考比例。如果要为各个比例级别创建注记,则可以选用这种方式。
- 第二种就是明确声明一个参考比例值。所有的注记要素类都将使用这个参考比例。如果在地图中设置了参考比例,则该参考比例将作为默认值输入到工具中。如果地图中未设置参考比例,则当前比例将作为默认值。
如果使用的是通过地图服务器缓存切片方案转面工具创建的面索引图层,请使用参考比例字段参数的 Tile_Scale 字段。将会为每个图层-Tile_Scale 组合创建新的注记要素类。
如果正在生成多个参考比例下的注记,请在每种比例下分别设计地图并避免设置参考比例。
如果面索引图层中提供坐标系字段,则各分块的注记将投影到该坐标系中,以便进行绘制和放置。
如果未选中创建要素关联注记参数,则可使用将所有图层中的标注转换为单个输出要素类参数为整个地图创建单个注记要素类。
为地图创建单个注记要素类时,可以使用合并类似标注类参数将具有类似属性的标注类合并到一个 注记类中。
与要素关联的注记与地理数据库中另一个要素类中的特定要素相关联。如果选中,则在创建输出注记要素类时,也将自动生成关系类。
创建关联要素的注记时,输出工作空间必须与所关联要素类的输出工作空间相同。
某些标注目前可能未显示在地图上,原因是没有供它们显示的空间。要转换这些标注,请选中生成未放置的注记复选框。这样便可将未放置的标注保存到注记要素类中,以便今后在编辑会话中可以找到它们。
内存和 in_memory 工作空间不支持要素关联注记。
语法
TiledLabelsToAnnotation(input_map, polygon_index_layer, out_geodatabase, out_layer, anno_suffix, {reference_scale_value}, {reference_scale_field}, {tile_id_field}, {coordinate_sys_field}, {map_rotation_field}, {feature_linked}, {generate_unplaced_annotation}, {which_layers}, {single_layer}, {require_symbol_id}, {auto_create}, {update_on_shape_change}, {multiple_feature_classes}, {merge_label_classes})
参数 | 说明 | 数据类型 |
input_map | 包含要转换为注记的标注的地图。 | Map |
polygon_index_layer | 包含分块要素的面图层。 | Table View |
out_geodatabase | 用来保存输出要素类的工作空间。此工作空间可以是现有地理数据库或现有要素数据集。 | Workspace; Feature Dataset |
out_layer | 包含所生成注记的图层组。可使用保存至图层文件工具将输出图层组写入图层文件中。 | Group Layer |
anno_suffix | 为每个新注记要素类添加的后缀。该后缀将追加到各新注记要素类的源要素类名称之后。注记的参考比例遵照该后缀。 | String |
reference_scale_value (可选) | 将用作注记参考的比例值。注记中的所有符号及文本的大小都会参照此比例。 | Double |
reference_scale_field (可选) | 面索引图层中用于确定注记参考比例的字段。注记中的所有符号及文本的大小都会参照此比例。 | Field |
tile_id_field (可选) | 面索引图层中用于唯一标识分块区域的字段。这些值将填充到注记要素类属性表中的 TileID 字段。 | Field |
coordinate_sys_field (可选) | 面索引图层中包含各分块坐标系信息的字段。考虑到存储坐标系信息时所需的字段长度,包含坐标系字段的面索引图层必须为地理数据库要素类。 | Field |
map_rotation_field (可选) | 面索引图层中包含数据框所需旋转角度值的字段。 | Field |
feature_linked (可选) | 许可:仅当具有 ArcGIS Desktop Standard 和 ArcGIS Desktop Advanced 级别许可时,此参数才可用。 用于指定是否将输出注记要素类关联到其他要素类中的要素。
| Boolean |
generate_unplaced_annotation (可选) | 指定是否将基于未放置标注创建未放置注记。
| Boolean |
which_layers (可选) | 指定是为地图中的所有图层还是为单个图层创建注记。必须指定单个图层。
| String |
single_layer (可选) | 当 which_layers 参数设置为 SINGLE_LAYER 时将转换的图层。该图层必须位于地图中。 | Feature Layer |
require_symbol_id (可选) | 指定是否可以编辑所有文本符号属性。
| Boolean |
auto_create (可选) | 如果 feature_linked 参数设置为 FEATURE_LINKED,用于指定在向链接要素类添加新要素时是否创建注记。
| Boolean |
update_on_shape_change (可选) | 如果 feature_linked 参数设置为 FEATURE_LINKED,用于指定在更新链接要素的形状时是否更新注记的位置。
| Boolean |
multiple_feature_classes (可选) | 指定标注将转换为单独的注记要素类还是单个注记要素类。如果转换为单个注记要素类,则注记不能与要素关联。
| Boolean |
merge_label_classes (可选) | 如果 multiple_feature_classes 参数设置为 SINGLE_FEATURE_CLASS,用于指定是否合并类似的标注类。
| Boolean |
派生输出
名称 | 说明 | 数据类型 |
out_workspace | 用来保存输出要素类的工作空间。 | 工作空间;要素数据集 |
代码示例
此 TiledLabelsToAnnotation 的 Python 示例基于面索引图层将地图中单个图层的标注转换为注记。
import arcpy
arcpy.env.workspace = "C:/data/data.gdb"
arcpy.TiledLabelsToAnnotation_cartography("Map1", "Tiles", "data.gdb",
"GroupAnno", "Anno", "", "Tile_Scale",
"OID", "", "", "FEATURE_LINKED",
"GENERATE_UNPLACED_ANNOTATION",
"SINGLE_LAYER", "Towns",
"REQUIRE_ID", "AUTO_CREATE",
"SHAPE_UPDATE", "", "")
以下脚本演示了使用 MapServerCacheTilingSchemeToPolygons 函数和 TiledLabelsToAnnotation 函数的工作流。
# Name: TiledLabelsToAnnotation_Example2.py
# Description: Create a tile feature class and use those tiles to create annotation.
# Requirements: ArcGIS Desktop Advanced license
# Import system modules
import arcpy
import os
# Set environment settings
arcpy.env.workspace = "C:/data/data.gdb"
# Set local variables
aprx = arcpy.mp.ArcGISProject(r"C:/data/Annotation.aprx")
inMap = aprx.listMaps("Map")[0]
inTilingScheme = os.path.join(
arcpy.GetInstallInfo()['InstallDir'],
'Resources\\TilingSchemes\\ArcGIS_Online_Bing_Maps_Google_Maps.xml')
outFeatureClass = "C:/data/data.gdb/Tiles"
inTileExtent = "USE_MAP_EXTENT"
inClipping = "CLIP_TO_HORIZON"
inAntialiasing = "NONE"
inScales = ""
# Execute MapServerCacheTilingSchemeToPolygons
arcpy.MapServerCacheTilingSchemeToPolygons_cartography(
inMap, inTilingScheme, outFeatureClass, inTileExtent, inClipping,
inAntialiasing, inScales)
# Set local variables
inPolygonIndexLayer = "Tiles"
inOutGeodatabase = "C:/data/data.gdb"
outOutLayer = "GroupAnno"
inAnnoSuffix = "Anno"
inRefScaleValue = ""
inRefScaleField = "Tile_Scale"
inTileIDField = "OID"
inCoordSysField = ""
inMapRotationField = ""
inFeatureLinked = "STANDARD"
inGenerateUnplaced = "GENERATE_UNPLACED_ANNOTATION"
inWhichLayers = "ALL_LAYERS"
inSingleLayer = ""
inRequireSymbolID = ""
inAutoCreate = ""
inUpdateOnShapeChange = ""
inMultipleFeatureClasses = "SINGLE_FEATURE_CLASS"
inMergeFeatureClasses = "MERGE_LABEL_CLASS"
# Execute TiledLabelsToAnnotation
arcpy.TiledLabelsToAnnotation_cartography(
inMap, inPolygonIndexLayer, inOutGeodatabase, outOutLayer, inAnnoSuffix,
inRefScaleValue, inRefScaleField, inTileIDField, inCoordSysField,
inMapRotationField, inFeatureLinked, inGenerateUnplaced, inWhichLayers,
inSingleLayer, inRequireSymbolID, inAutoCreate, inUpdateOnShapeChange,
inMultipleFeatureClasses, inMergeFeatureClasses)
环境
许可信息
- Basic: 是
- Standard: 是
- Advanced: 是