#1 Mon 05 December 2005 13:54
[arcGIS 9.0] Eléments dynamiques et Atlas
Bonjour à tous,
Alors voilà je suis en pleine préparation de sorites de très nombreuses cartes en série. J'ai donc téléqhargé les deux add-on principaux de chez ESRI : Atlas V9 (ou DSMapBook pour les intimes) et l'Outil de production de cartes en série.
Et les deux ont leurs avantages, mais bien sûrs ils ne peuvent pas être utilisés simultanément... :
- Atlas V9 à une largement meilleure ergonomie pour les utilisateurs "non initiés"
- mais l'outil de production de cartes en séries gère une chose non négligeable : les éléments dynamique à savoir le remplissage automatique d'un bloc de texte avec la valeur d'un champ de la grille des emprises.
Or moi j'ai vraiment besoin de ces éléments dynamiques!!! Qulqu'un aurait-il une idée pour utiliser de tels éléments dynamiques avec Atlas v9?
Deplus j'ai un gros problème : depuis que j'ai installé Atlas V9 sur mon document de référence de travail, impossible de le retirer... et don de remettre l'outil de production de cartes en séries qui ducoup n'est pas opérationnel (erreur global à son lancement) Vous auriez un idée?
Merci beaucoup d'avance!
____________________________________________
MacGeol
Hors ligne
#2 Mon 05 December 2005 15:22
- Frédéric Prally
- Participant occasionnel
- Date d'inscription: 25 Oct 2005
- Messages: 16
Re: [arcGIS 9.0] Eléments dynamiques et Atlas
Bonjour MacGeol,
Si tu souhaites rendre du texte ou des zones de textes dynamiques dans une mise en page comme le font les deux extensions que tu viens de citer, tu peux utiliser les fonctions suivantes :
1) le code PlaceTexteLayout() va te permettre d'identifier un élément de type texte parmi tous les autres éléments de ta mise en page en lui affectant un nom.
Code:
Public Sub PlaceTexteLayout() '*** Permet de sélectionner l'emplacement précis des champs textes 'dans le but de nommer ce champ en fonction nom choisit par l'utilisateur Dim pMxDoc As IMxDocument Dim pLayout As IPageLayout Dim pGraphics As IGraphicsContainerSelect Set pMxDoc = ThisDocument Set pLayout = pMxDoc.PageLayout Set pGraphics = pLayout If pGraphics.ElementSelectionCount <> 1 Then MsgBox "Veuillez sélectionner un seul élément texte.", vbExclamation Exit Sub End If Dim pElementProp As IElementProperties Set pElementProp = pGraphics.DominantElement Dim strName As String strName = InputBox("Saisir le nom du texte :", "Titre de l'élément graphique texte") pElementProp.Name = strName End Sub
2) le code IdentificationTextLayout va te permettre quand à lui de retrouver son nom une fois que tu l'auras nommé.
Code:
Public Sub IdentificationTextLayout() '*** Permet d'identifier le nom de l'élément text sélectionné 'Ce nom définit par l'utilisateur peut recevoir les valeurs 'issues d'un champ par exemple Dim pMxDoc As IMxDocument Dim pLayout As IPageLayout Dim pGraphics As IGraphicsContainerSelect Set pMxDoc = ThisDocument Set pLayout = pMxDoc.PageLayout Set pGraphics = pLayout If pGraphics.ElementSelectionCount <> 1 Then MsgBox "Veuillez sélectionner un seul élément texte.", vbExclamation Exit Sub End If Dim pElementProp As IElementProperties Set pElementProp = pGraphics.DominantElement MsgBox "Le nom de l'élément texte est :" & pElementProp.Name End Sub
3) Une fois que tu as fait l'opération 1), tu vas pouvoir créer un lien dynamique sur ce texte en le lien par exemple avec un champ d'une table. Ainsi, pour chaque entité representée dans ta mise en page tu peux voir apparaitre le texte de la valeur contenu dans ton champ pour cette entité.
Voir l'extrait ci-dessous :
Code:
''***Partie 3 : remplit les caractéristiques pour chaque objet Set pGraphics = pMxDoc.PageLayout pGraphics.Reset Set pElementProp = pGraphics.Next Do Until pElementProp Is Nothing Select Case pElementProp.name 'Indique le nom de la commune Case "pCommune" Set pTextElement = pElementProp If IsNull(pFeature.Value(pOrganeFClass.FindField("Commune"))) Then pTextElement.Text = "-" Else: pTextElement.Text = pFeature.Value(pOrganeFClass.FindField("Commune")) End If
En espérant que cela réponde à ta demande.
Bien cordialement
Hors ligne
#3 Mon 05 December 2005 18:17
Re: [arcGIS 9.0] Eléments dynamiques et Atlas
Bonjour et un grand merci,
Je viens juste de voir la réponse j'étais chez des utilisateurs.
Je vais m'y mettre, en tout cas ça à l'air de correspondre exactement à ce que j'attendais.
Un grand merci en tout cas... et peut-être d'autre question là dessus dès demain matin...
____________________________________________
MacGeol
Hors ligne
#4 Thu 09 February 2006 14:49
- Jaq2
- Participant occasionnel
- Lieu: Niort
- Date d'inscription: 7 Oct 2005
- Messages: 18
Re: [arcGIS 9.0] Eléments dynamiques et Atlas
Bonjour,
J'ai trouvé ce poste trés intéressant. Cependant, je ne sais pas où mettre le code?
Y aurait'il quelqu'un pour m'indiquer comment utiliser ce code.
Merci
Hors ligne
#5 Thu 25 January 2007 17:22
- juju02
- Juste Inscrit !
- Date d'inscription: 25 Jan 2007
- Messages: 1
Re: [arcGIS 9.0] Eléments dynamiques et Atlas
Bonjour j'ai exactement le meme probleme, j'ai fait la macro VB mais je ne sais pas comment recupérer le contenu d'un champ d'une couche affiché dans la tuile courante, des idées ?
Merci,
Juju02
Hors ligne
#6 Thu 12 November 2009 12:34
- Vincent D
- Membre
- Lieu: Dijon
- Date d'inscription: 30 Nov 2006
- Messages: 55
Re: [arcGIS 9.0] Eléments dynamiques et Atlas
Bonjour,
Juste pour infos et pour les débutants qui liront ce poste très intéressant, car depuis je pense que la réponse a été trouvée pour ceux qui l'ont demandés.
Avec Atlas de la Vertsion 9.3 d'ArcGis, il suffit de créer sa collection de carte, et dans l'onglet Atlas, faire un clic droit sur "Collection de cartes", et rajouter une balise avec la valeur d'un champ. De cette manière on obtient le remplissage d'un texte avec la champ en dynamique, pour toute la collection de carte.
Voilà @ +
Vincent Deniaud
Hors ligne