banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

#1 Mon 05 December 2005 13:54

MacGeol
Participant occasionnel
Lieu: Plessala 22
Date d'inscription: 16 Sep 2005
Messages: 31
Site web

[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

MacGeol
Participant occasionnel
Lieu: Plessala 22
Date d'inscription: 16 Sep 2005
Messages: 31
Site web

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

 

Pied de page des forums

Powered by FluxBB