J'essaye de trouver un moyen de changer entre deux séries d'étiquettes sur une carte. J'ai une carte avec les codes postaux qui sont étiquetés et je veux pouvoir produire deux cartes: une avec l'étiquette de code postal (ZIP) et une avec une valeur d'un champ que j'ai joint aux données (appelé chrlabel). Le but est d'avoir une carte montrant des données pour chaque code postal, et une seconde carte donnant le code postal comme référence.ArcMap Data Driven Pages Etiquettes d'entités dynamiques
Ma première tentative que je ne peux pas me travailler ressemble à ceci:
1) J'ai ajouté une seconde trame de données à ma carte et ajouter une nouvelle couche qui contient deux polygones avec des noms « zip » et « chrlabel ».
2) J'utilise ce cadre pour activer les pages pilotées par les données, puis je le cache derrière le cadre principal (je ne veux pas voir ces polygones, je veux juste les utiliser pour contrôler les pages pilotées par les données).
3) Dans les étiquettes de code postal J'ai essayé d'écrire une expression VBScript comme ce pseudo-code:
test = "
Si le test = "zip", puis
label = postal
autre
label = CHRLABEL
endif
cela ne fonctionne pas parce que le texte dynamique ne résout pas le nom de la page dans le VBScript.
Est-il possible d'appeler le nom de la page VBScript pour que je puisse faire ce travail?
Sinon, existe-t-il un autre moyen de le faire?
Mon autre pensée est d'ajouter un autre champ à la couche qui est remplie avec un ou un zéro. Ensuite, je pourrais remplacer la condition de test if-then par if NewField = 1.
Ensuite, je voudrais juste écrire un script qui met à jour tous les NewFields pour les fonctionnalités de code postal lorsque la page pilotée par les données avance à la deuxième page. Existe-t-il un moyen de déclencher un script (python ou autre) lorsqu'une page pilotée par les données change?
Merci
Merci, ce n'est plus vraiment un problème, mais comme je suis passé plus loin dans l'utilisation de python pour contrôler arcmap, cela semble être le cas ont été le meilleur moyen de le faire. – orh
Avait parcouru mon profil utilisateur et remarqué cette question; soudainement réalisé que l'OQ demandait quelque chose de légèrement différent que je pensais. La meilleure option serait probablement de modifier l'étiquette du calque de la façon suivante: "layer.labelClasses [0] .expression = '[attr_field]'" (remarque: possibilité d'avoir plus d'une étiquette de classe) – brichins