Resumen
Convierte etiquetas en anotación para capas de un mapa basado en una capa de índice de polígono.
La herramienta divide un mapa en teselas y crea una anotación para cada tesela a la vez. Esto resulta útil para convertir una gran cantidad de etiquetas a anotación. La capa de índice de polígono puede generarse con las herramientas Esquema de ordenamiento en teselas del caché del servidor de mapas a polígonos o Entidades de índice de cuadrícula o cualquier otra clase de entidad poligonal que cubra el área donde desea crear la anotación.
Uso
Es posible convertir etiquetas en anotación para una sola capa o para todo el mapa. Si se selecciona la opción de una sola capa, es necesario especificar la capa, y debe estar en el mapa.
Se respetarán los rangos de escala de la clase de etiqueta. Cuando la herramienta genere una anotación para una escala de referencia específica, solo convertirá las clases de etiqueta que estén activadas y visibles en esa escala.
Nota:
Los rangos de escala de la clase de etiqueta se establecen en las propiedades de la capa en ArcGIS Pro. Una vez que haya configurado las propiedades de etiqueta, guarde el proyecto antes de ejecutar esta herramienta.
Si selecciona teselas antes de ejecutar la herramienta, sólo se creará una anotación para las teselas seleccionadas.
Para actualizar la anotación sólo para algunas teselas en la capa de índice de polígono, primero seleccione las entidades de anotación con ese valor TileID específico y elimínelas. Después, seleccione las entidades poligonales y vuelva a ejecutar la herramienta.
Una de las salidas de esta herramienta es una serie de capas de grupo. Una capa de grupo contendrá una capa de grupo para cada escala de referencia para la que se creó una anotación.
-
Cuando esté trabajando en el panel Catálogo o ModelBuilder, puede usar la herramienta Guardar en archivo de capas para escribir la capa de grupo de salida en un archivo de capas.
Una capa de grupo existente se sobrescribirá si se especifica el mismo nombre de capa y si especifica explícitamente que está permitida la sobreescritura de las salidas.
Si se encuentran nombres de clase de entidad duplicados en el mapa, se agregará un número a la anotación después del nombre de la clase de entidad (por ejemplo, Cities01Anno10000, Cities02Anno10000, etc.).
Las clases de entidad de anotación no se sobrescribirán si se especifica un sufijo para indicar que ya existe. En este caso, se agregará un número al sufijo de la clase de entidad de anotación (por ejemplo, CitiesAnno10000, CitiesAnno10000_1, etc.).
La escala de referencia para las clases de entidad de anotación se puede especificar de las dos maneras siguientes:
- La primera opción es utilizar un campo de la capa de índice de polígono para determinar la escala de referencia de las clases de entidad de anotación de salida. Use esta opción si desea crear anotaciones para varios niveles de escalas.
- La segunda opción es especificar explícitamente un valor de escala de referencia. Todas las clases de entidad de anotación utilizarán esta escala de referencia. Si hay una escala de referencia establecida en el mapa, este será el valor predeterminado de entrada para la herramienta. Si no hay una escala de referencia establecida en el mapa, la escala actual será el valor predeterminado.
Si está utilizando una capa de índice de polígono creada con la herramienta Esquema de ordenamiento en teselas del caché del servidor de mapas a polígonos, use el campo Tile_Scale para el parámetro Campo de escala de referencia. Se creará una nueva clase de entidad de anotación para cada combinación de capa-Tile_Scale.
Si está produciendo anotaciones en varias escalas de referencia, diseñe el mapa para cada una de esas escalas y evite establecer una escala de referencia.
Si se proporciona un campo de sistema de coordenadas de la capa de índice de polígono, la anotación para cada tesela se proyectará en ese sistema de coordenadas para cumplir con los objetivos de dibujo y ubicación.
Si el parámetro Crear anotación vinculada a entidad no se activa, se puede utilizar el parámetro Convertir etiquetas de todas las capas a una sola clase de entidad de salida para crear una única clase de entidad de anotación para todo el mapa.
Al crear una única clase de entidad de anotación para el mapa, es posible fusionar las clases de etiqueta con propiedades similares en una clase de anotación con el parámetro Fusionar clases de etiqueta similares.
La anotación vinculada a una entidad está asociada a una entidad específica en otra clase de entidad de la geodatabase. Si está activada, cuando crea la clase de entidad de anotación de salida, también se generará automáticamente una clase de relación.
Cuando se crean anotaciones vinculadas a una entidad, el espacio de trabajo de salida debe ser el mismo que el de las clases de entidad a las que están vinculadas.
Es posible que algunas etiquetas no se visualicen en el mapa debido a que no hay espacio para ellas. Para convertir estas etiquetas, active la casilla Generar anotación no colocada. De este modo, se guardan las etiquetas no colocadas en la clase de entidad de anotación, lo que le permite posicionarlas después en una sesión de edición.
Los espacios de trabajo in_memory y de memoria no admiten la anotación vinculada a entidad.
Sintaxis
arcpy.cartography.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})
Parámetro | Explicación | Tipo de datos |
input_map | El mapa que contiene las etiquetas para convertir en anotación. | Map |
polygon_index_layer | La capa de polígono que contiene entidades de tesela. | Table View |
out_geodatabase | El espacio de trabajo donde se guardan las clases de entidad de salida. El espacio de trabajo puede ser una geodatabase o un dataset de entidades existente. | Workspace; Feature Dataset |
out_layer | El grupo de capas que contiene la anotación generada. Puede usar la herramienta Guardar en archivo de capa para escribir la capa de grupo de salida en un archivo de capa. | Group Layer |
anno_suffix | El sufijo que se agrega a cada clase de entidad de anotación nueva. Este sufijo se incorpora al nombre de la clase de entidad de origen para cada clase de entidad de anotación nueva. La escala de referencia para la anotación aparece a continuación de este sufijo. | String |
reference_scale_value (Opcional) | El valor de escala que se usará como referencia para la anotación. Es la escala en la que se basarán todos los tamaños de texto y símbolos de la anotación. | Double |
reference_scale_field (Opcional) | El campo en la capa de índice de polígono que determina la escala de referencia de la anotación. Es la escala en la que se basarán todos los tamaños de texto y símbolos de la anotación. | Field |
tile_id_field (Opcional) | Un campo en la capa de índice de polígono que identifica de manera única el área con teselas. Estos valores completan el campo TileID en la tabla de atributos de la clase de entidad de anotación. | Field |
coordinate_sys_field (Opcional) | Un campo en la capa de índice de polígono que contiene la información del sistema de coordenadas para cada tesela. Debido a la longitud necesaria para almacenar la información del sistema de coordenadas en un campo, la capa de índice de polígono que contiene el campo de sistema de coordenadas debe ser una clase de entidad de geodatabase. | Field |
map_rotation_field (Opcional) | El campo en la capa de índice de polígono que contiene el ángulo con el que se rota el marco de datos. | Field |
feature_linked (Opcional) | Licencia:Este parámetro solo está disponible con las licencias de ArcGIS Desktop Standard y ArcGIS Desktop Advanced. Especifica si la clase de entidad de anotación de salida se vinculará a las entidades en otra clase de entidad.
| Boolean |
generate_unplaced_annotation (Opcional) | Especifica si se creará una anotación no colocada a partir de etiquetas no colocadas.
| Boolean |
which_layers (Opcional) | Especifica si la anotación se creará para todas las capas del mapa o solo para una. Es necesario especificar la capa única.
| String |
single_layer (Opcional) | La capa que se convertirá si se cambia el valor del parámetro which_layers a SINGLE_LAYER. Esta capa debe estar presente en el mapa. | Feature Layer |
require_symbol_id (Opcional) | Especifica si se pueden editar las propiedades de un símbolo de texto.
| Boolean |
auto_create (Opcional) | Especifica si se creará una anotación cuando se agreguen nuevas entidades a la clase de entidad vinculada si el parámetro feature_linked se define como FEATURE_LINKED.
| Boolean |
update_on_shape_change (Opcional) | Especifica si se actualizará la posición de la anotación cuando la forma de la entidad vinculada se actualiza si el parámetro feature_linked se define como FEATURE_LINKED.
| Boolean |
multiple_feature_classes (Opcional) | Especifica si las etiquetas se convertirán a clases de entidad de anotación individuales o a una sola clase de entidad de anotación. Si se convierte a una sola clase de entidad de anotación, la anotación no se puede vincular a una entidad.
| Boolean |
merge_label_classes (Opcional) | Especifica si las clases de etiqueta similares se fusionarán si el parámetro multiple_feature_classes se define como SINGLE_FEATURE_CLASS.
| Boolean |
Salida derivada
Nombre | Explicación | Tipo de datos |
out_workspace | El espacio de trabajo donde se guardan las clases de entidad de salida. | Espacio de trabajo; dataset de entidades |
Muestra de código
Muestra de Python para TiledLabelsToAnnotation que convierte etiquetas en una anotación para una sola capa mapa basado en una capa de índice de polígono.
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", "", "")
El siguiente script muestra un flujo de trabajo con las funciones MapServerCacheTilingSchemeToPolygons y 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)
Entornos
Información de licenciamiento
- Basic: Sí
- Standard: Sí
- Advanced: Sí