Ajouter des étiquettes avec des symboles à la légende dans ArcMap?


10

Je crée une carte avec ArcGIS Desktop v10.2.2 , montrant les musées sous forme de points. La couche des musées n'a pas de symbole et les étiquettes sont constituées d'un cercle rempli de couleur avec l'ID à l'intérieur, extrait du [ID]champ.

Je veux ajouter la liste complète des musées dans la légende de la carte de disposition, en ayant une liste de mes symboles avec leurs identifiants et la description (leur nom) prise sur le [LABEL]terrain, sans la créer manuellement.

Je sais qu'une solution manuelle possible serait de définir la symbologie de couche sur "Valeurs uniques", puis d'ajouter toutes les valeurs (plus de 100!) Et de définir une fois pour chaque point la même symbologie d'étiquette. Mais j'espère qu'il y a une meilleure solution!

Jetez un œil à ma carte ci-dessous.

La couche est "Musei" (musées) et comme vous pouvez le voir sur la légende de gauche, elle n'a pas de symbole. Sur la droite, vous pouvez voir la symbologie de la légende décrite, un cercle gris foncé avec du texte rouge à l'intérieur, extrait du [ID]champ. Je souhaite ajouter à ma mise en page une colonne contenant tous les cercles avec ID et l'étiquette correspondante.

Les musées

-- METTRE À JOUR --

Il s'agit des paramètres de la calculatrice de champ que j'ai utilisés en suivant la solution proposée par @FelixIP.

Calculatrice de champ

Mais les points ne sont pas positionnés en alignement vertical comme je m'y attendais. Au lieu de cela, ils sont déplacés un peu ici et là. J'ai également essayé d'utiliser différentes valeurs de pas: 10, 100, 1000, 10000.


Pourriez-vous insérer un tableau à côté de votre légende?
whatahitson

@whatahitson Voulez-vous dire un cadre de table dans la vue de mise en page?
Cheshire Cat

Réponses:


6

Pour l'obtenir:

entrez la description de l'image ici

J'ai utilisé 2 dataframes:

entrez la description de l'image ici

PAS:

a) Créez une copie de votre shapefile de musée; b) Notez xMean, yMax des points et c) Exécutez cette expression de calculatrice de champ plusieurs fois en changeant de pas sur le champ Shape jusqu'à ce que vous soyez satisfait de l'intervalle entre les points verticaux

def vertical(fid, shp,xMean,yMax,step):
 y=yMax-step*fid
 pNew=arcpy.Point(xMean,y)
 return pNew

En utilisant

vertical( !FID!, !Shape!, 1563910,5177655,100)

Il créera une chaîne verticale de vos points à afficher et à étiqueter dans le 2ème cadre de données === légende

Mise à jour: la longitude moyenne des points que j'ai utilisés est 1563910, la longitude maximale 5177655


J'essaie, mais je n'ai peut-être pas bien compris votre procédure. J'ai déjà les coordonnées X et Y des points dans deux champs de la table des musées. Dois-je calculer une nouvelle position X et Y dans un nouveau champ? J'ai utilisé Field Calculatore pour y mettre votre définition de fonction suivie de l'appel de fonction, mais j'obtiens une erreur 999999 non définie et un message "Fin de l'acheminement manquante".
Cheshire Cat

Pas de nouveaux champs. Exécutez la calculatrice sur le champ SHAPE de la copie de sauvegarde. Si vous ne comprenez pas ce que fait la fonction, tracez simplement une ligne verticale dans votre vue et accrochez-la, fid = 0 en haut, fid = 1 en dessous, etc.
FelixIP

J'ai essayé votre solution, veuillez jeter un œil à la mise à jour de ma question.
Cheshire Cat

1
Vous ne lisez pas attentivement ma solution. Lorsque vous appelez expression, vous devez utiliser des chiffres SINGLE pour les 3e et 4e paramètres, et non les coordonnées des points individuels stockés dans les champs. Si vous avez 3 points avec xs 1,2,3 votre 3ème paramètre doit être 2. Prenez un stylo et notez la longitude MOYENNE et la latitude MAXIMALE de vos points
FelixIP

Vous pouvez également exporter les lignes du fichier de formes que vous essayez d'étiqueter, les tirer dans Excel, ajouter des points x, y pour une série de points distribués verticalement (1,9; 1,8; 1,7, etc.), et mettez-le dans la trame de données supplémentaire avec "Ajouter des données X, Y". Assurez-vous également que le placement des étiquettes pour vos deux fichiers de formes d'étiquettes est correctement défini - c'est-à-dire que l'un est "en haut à droite UNIQUEMENT" et l'autre en "en haut à gauche UNIQUEMENT".
Carl
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.