PROCÉDURE

étiqueter des tables associées à l’aide d’ArcPy dans ArcGIS Pro

Last Published: April 11, 2023

Résumé

Dans ArcGIS Pro, les tables associées d’une table de géodatabase ou d’une classe d’entités peuvent être étiquetées en fonction des champs à l’aide des outils du jeu d’outils Champs. Cet article décrit le processus permettant d’étiqueter les tables associées avec les outils du jeu d’outils Champs en exécutant un script ArcPy dans ArcGIS Pro.

Procédure

  1. Démarrez ArcGIS Pro et ouvrez le projet.
  2. Dans la fenêtre Contents (Contenu), cliquez avec le bouton droit de la souris sur la classe d’entités, puis cliquez sur Label Properties (Propriétés d’étiquetage) pour ouvrir la fenêtre Label Class (Classe d’entités).
Fenêtre Contents (Contenu) dans ArcGIS Pro
  1. Dans la fenêtre Label Class (Classe d’entités) , cliquez sur le bouton Label expression (Expression d’étiquette) Icône Expression d’étiquette et configurez les paramètres suivants.
    1. Pour Language (Langage), sélectionnez Python.
    2. Spécifiez le script suivant dans la section Expression. Modifiez les champs <keyField1>, <firstLabel1>, <firstLabel2>, key1, key2, L, L2, <label2> et myDataTable pour qu’ils correspondent à l’environnement.
      • <keyField1> et key1 sont les champs clés de la classe d’entités, qui permettent d’établir des liens avec la table associée.
      • <firstLabel> et L sont les champs de la classe d’entités à étiqueter.
      • <keyField2> et key2 sont les champs clé de la table associée.
      • L2 est le champ de la table associée à étiqueter.
      • myDataTable désigne le chemin d’accès au dossier du fichier de la table associé ainsi que le nom de la table associée.
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

Le bloc de code suivant illustre le script fonctionnel complet.

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. Cliquez sur Verify (Vérifier) pour exécuter un test de l’expression. Si l’expression est valide, cliquez sur Apply (Appliquer).
Fenêtre Label Class (Classe d’étiquettes) avec les paramètres à renseigner

ID d’article: 000029840

Recevoir des notifications et trouver des solutions liées à de nouvelles questions ou à des problèmes connus

Recevez des réponses synthétisées et des solutions en vidéo de notre nouvel agent conversationnel (IA).

Télécharger l’application Esri Support

Obtenir de l’aide auprès des experts ArcGIS

Contacter le support technique

Télécharger l’application Esri Support

Accéder aux options de téléchargement