Utilisation de texte dynamique pour afficher les crédits de calque

9

Je cherche un moyen de mettre à jour les «crédits de couche» dans une zone de texte dynamique. J'ai trouvé des moyens d'utiliser les crédits de carte ou les crédits de trame de données ici, mais ne semble pas être un moyen d'obtenir les informations dérivées d'une couche.

Il me semble juste produire une chaîne vide à chaque fois. Quelqu'un a-t-il fait cela ou trouvé un travail? Cela semble être un moyen extrêmement utile de mettre à jour les crédits de carte avec peu ou pas de ressources.

Propriétés de la couche dérivée

Slevy
la source
Il n'y a aucun moyen de le faire dynamiquement, car les textes dynamiques intégrés sont tous basés sur le document ou le bloc de données. Cependant, cela est certainement possible si vous êtes prêt à exécuter un script pour remplir un champ de texte chaque fois que vous créez une carte. Vous pouvez également remplir les crédits de carte à partir de tous les crédits de couche. Si c'est ce que vous recherchez, je peux fournir du code arcpy pour le faire.
Fezter

Réponses:

17

Comme mentionné dans mon commentaire ci-dessus, il n'y a aucun moyen de le faire en utilisant du texte dynamique. Cependant, vous pouvez écrire un script pour ce faire et le joindre à un bouton de complément python ou à exécuter lorsque vous enregistrez le MXD ou quelque chose. Vous devrez créer un élément de texte pour contenir les crédits et le nommer quelque chose comme "CRÉDITS" comme suit:

entrez la description de l'image ici

Le code de base ressemblerait à ceci:

mxd = arcpy.mapping.MapDocument("current")
credit_text = ""
for layer in arcpy.mapping.ListLayers(mxd):
    credit_text += (layer.credits + "\n") # separate each line with a carriage return
for el in arcpy.mapping.ListLayoutElements(mxd, "TEXT_ELEMENT"):
    if el.name == "CREDITS":
        el.text = credit_text
Fezter
la source
2
+1 C'est comme ça que je le ferais - aurait répondu avec à peu près le même code.
Midavalo