CÓMO

Etiquetar tablas relacionadas con ArcPy en ArcGIS Pro

Last Published: April 11, 2023

Resumen

En ArcGIS Pro, las tablas relacionadas de cualquier tabla de geodatabase o clase de entidad se pueden etiquetar en función de los campos utilizando herramientas del conjunto de herramientas Campos. En este artículo se facilita el flujo de trabajo para etiquetar tablas relacionadas con herramientas del conjunto de herramientas Campos mediante la ejecución de un script de ArcPy en ArcGIS Pro.

Procedimiento

  1. Inicie ArcGIS Pro y abra el proyecto.
  2. En el panel Contenido, haga clic con el botón derecho en la clase de entidad y haga clic en Propiedades de etiquetado para abrir el panel Clase de etiqueta.
El panel Contenido en ArcGIS Pro
  1. En el panel Clase de etiqueta, haga clic en el botón Expresión de etiqueta El icono de expresión de etiqueta y configure los siguientes parámetros.
    1. En Lenguaje, seleccione Python.
    2. Especifique el siguiente script en la sección Expresión. Cambie <keyField1>, <firstLabel1>, <firstLabel2>, key1, key2, L, L2, <label2> y myDataTable para que coincidan con el entorno.
      • <keyField1> y key1 son los campos clave en la clase de entidad, utilizados para relacionar con la tabla relacionada.
      • <firstLabel> y L son el campo de la clase de entidad que se va a etiquetar.
      • <keyField2> y key2 son los campos clave de la tabla relacionada.
      • L2 es el campo de la tabla relacionada que se va a etiquetar.
      • myDataTable es la ruta de acceso de la carpeta del archivo de tabla relacionada y el nombre de la tabla relacionada.
def FindLabel (<keyField1>, <firstLabel>):
    import arcpy
    key1 = <keyField1> # The key field in the feature class
    key2 = "<keyField2>"   # The key field in the related table
    L = <firstLabel> # The label field in the feature class
    L2 = "<label2>"   # The label field in the related table
    myDataTable = r"<path-to-related-table>"   # The related table file path
    cur = arcpy.da.SearchCursor(myDataTable, [key2, L2])
    for row in cur:
        if str(key1) == str(row[0]): 
            L = L + " " + str(row[1])
    return L

El siguiente bloque de código demuestra todo el script.

def FindLabel ([ENAME], [CNAME]):
    import arcpy
    key1 = [ENAME] # Key field in feature class
    key2 = "District"   # Key field in related table
    L = [CNAME] # Label field in feature class
    L2 = "Population"   # Label field in related table
    myDataTable = r"C:\Users\IDT27\Documents\Artwrk\29840\HKPOP\HKPOP.gdb\HK2016_Census_csv"   # Path to related table
    cur = arcpy.da.SearchCursor(myDataTable, [key2, L2])
    for row in cur:
        if str(key1) == str(row[0]): 
            L = L + " " + str(row[1])
    return L
  1. Haga clic en Verificar para ejecutar una prueba de la expresión. Si la expresión es válida, haga clic en Aplicar.
El panel Clase de etiqueta con los parámetros que se van a rellenar

Id. de artículo: 000029840

Recibir notificaciones y encontrar soluciones a problemas nuevos o comunes

Obtenga respuestas resumidas y soluciones de vídeo de nuestro nuevo chatbot de IA.

Descargar la aplicación de soporte de Esri

Información relacionada

Descubrir más sobre este tema

Obtener ayuda de expertos en ArcGIS

Contactar con el soporte técnico

Descargar la aplicación de soporte de Esri

Ir a opciones de descarga