Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
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é ?

Annonce

Rencontres QGIS 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#1 Thu 28 February 2008 10:36

anne.pleney
Juste Inscrit !
Date d'inscription: 28 Feb 2008
Messages: 1

[ArcView 9.1] Grille cliquable

Bonjour,
je cherche à créer une grille cliquable sur arcview 9.1 (comme on peut le faire sur mapinfo avec les hotlink). Je voudrais qu'en cliquant sur un des carrés de la grille, arcview m'ouvre la photo aérienne correspondante. Est ce que quelqu'un peut m'aider (j'ai essayer les hyperliens mais un message d'erreur me dit que le chemin d'acces n'est pas bon qlors qu'il l'est et qu'il ne contient ni espace ni caractere spécial), mes fichiers raster sont des ecw.
merci d'avance

Hors ligne

 

#2 Thu 28 February 2008 16:24

lablatte
Juste Inscrit !
Date d'inscription: 29 Aug 2006
Messages: 7

Re: [ArcView 9.1] Grille cliquable

Tient c'est marrant, je fait ça aujourd'hui aussi. Faut passer par du VBA pour cela. Je suis au stade "supérieur". j'ai récupérer un bout de code mais ça marche presque pas bien du tout. Faut dire que VBA = chinois pour moi :-)

J'ai récupérer le code sur le forum SIG. Dites les modos, je peux le coller par ici pour voir si quelqu'un peut le customiser ou expliquer rapidement comment l'utiliser ???

EDIT : J'ai une grille correspondant à l'emprise de mes rasters (fait avec l'outil d'esri proposer par Kevin Jousseaum) avec un champ contenant le nom de l'image (image.ecw ou tif) et un champ avec le chemin complet de l'image.

Voici le code que j'essaye d'utiliser.

Code:

Option Explicit
Const NOM_CHAMP = "NOM_IMAGE"
Const CHEMIN_DOSSIER = "C:\lablatte\carto\BDortho_44\"


Public Sub test()
'---------------------------------------------------------------------------------------
' Module    : ThisDocument
' DateTime  : 02/10/2007
' Purpose   : Permet d'ajouter les rasters correspondants aux emprises sélectionnées
'---------------------------------------------------------------------------------------
    Dim pMxDoc As IMxDocument
    Set pMxDoc = ThisDocument
    
    Dim pMap As IMap
    Set pMap = pMxDoc.FocusMap
    
    'Recherche la sélection de la grille
    Dim pFLayer As IFeatureLayer
    Set pFLayer = pMap.Layer(0)

    Dim pFSelection As IFeatureSelection
    Set pFSelection = pFLayer
    
    If pFSelection.SelectionSet.Count = 0 Then
        MsgBox "Veuillez sélectionner les entités."
        Exit Sub
    Else
        Dim pFCursor As IFeatureCursor
        Dim pSelectSet As ISelectionSet
        Set pSelectSet = pFSelection.SelectionSet
            pSelectSet.Search Nothing, False, pFCursor
        Dim pFeature As IFeature
        Set pFeature = pFCursor.NextFeature
        
        Do Until pFeature Is Nothing
            'Récupère l'index du champ
            Dim pindexField As Long
                pindexField = pFLayer.FeatureClass.FindField(NOM_CHAMP)
            'Récupère le nom du raster
            Dim sNomRaster As String
                sNomRaster = pFeature.Value(pindexField)
            'Ajout l'image
            Call AjouterRaster(pMap, CHEMIN_DOSSIER, sNomRaster)
        Set pFeature = pFCursor.NextFeature
        Loop
    End If

    pMxDoc.ActiveView.Refresh
    pMxDoc.UpdateContents
    MsgBox pSelectSet.Count & " rasters ajoutés."
End Sub
Public Sub AjouterRaster(pMap As IMap, sCheminRaster As String, sNomRaster As String)
    Dim pWSF As IWorkspaceFactory
    Set pWSF = New RasterWorkspaceFactory
    
    Dim pWS As IRasterWorkspace
    Set pWS = pWSF.OpenFromFile(sCheminRaster, 0)
    
    Dim pRasterDataset As IRasterDataset
    Set pRasterDataset = pWS.OpenRasterDataset(sNomRaster & ".tif")
    
    Dim pRasterLayer As IRasterLayer
    Set pRasterLayer = New RasterLayer
    pRasterLayer.CreateFromDataset pRasterDataset
    
    pMap.AddLayer pRasterLayer
    
    pMap.MoveLayer pRasterLayer, pMap.LayerCount
        
End Sub

Ca marche presque puisque quand je n'ai aucun polygone de selectionner et que j'execute le code il me dit de selectionner un entité. Mais quand je selectionne une ou plusieurs entité il me dit ça  (voir pj)

Dernière modification par lablatte (Fri 29 February 2008 09:34)


Fichier(s) joint(s) :
Pour accéder aux fichiers vous devez vous inscrire.

Hors ligne

 

#3 Thu 28 February 2008 19:30

Kevin Jousseaume
Participant assidu
Lieu: Nanterre, région parisienne
Date d'inscription: 20 Mar 2006
Messages: 217

Re: [ArcView 9.1] Grille cliquable

Bonsoir,

N'ayant pas la possibilité de tester, je vais peut-être vous dire des bêtises wink.

anne.pleney, lorsque vous utilisez un hyperlien, ArcMap se charge de lancer le logiciel associé à l'extension du fichier spécifié : Word pour tout document .doc, Excel pour tous les fichiers .xls, etc. Est-ce que vous disposez d'un logiciel vous permettant de visualiser vos ecw ?

Sinon, avez-vous regardé du côté de l'outil "Créer un catalogue d'images et les polygones d'emprise" mis à disposition par le support d'ESRI France à l'adresse suivante : http://support.esrifrance.fr/outilsscri … aster.html

Cela ne répond pas exactement au besoin que vous exprimez, mais peut-être à 1 besoin que vous n'exprimez pas smile.

Sinon, pour répondre à lablatte, vous pouvez mettre votre code en pièce jointe (en éditant simplement votre message et en y ajoutant votre fichier), j'essaierai d'y jeter un coup d'œil d'ici ce week-end.

Bien cordialement,
Kevin Jousseaume.

Hors ligne

 

#4 Mon 03 March 2008 14:55

lablatte
Juste Inscrit !
Date d'inscription: 29 Aug 2006
Messages: 7

Re: [ArcView 9.1] Grille cliquable

J'ai trouvé le problème
C'était cette ligne là

Code:

 Set pRasterDataset = pWS.OpenRasterDataset(sNomRaster & ".tif")

Comme dans le champ qui contient le nom de l'image j'avais déja l'extension .tif (nomimage.tif et non pas nomimage), ce n'était pas la peine de le remettre dans le code.
Donc voici la bonne formule

Code:

 Set pRasterDataset = pWS.OpenRasterDataset(sNomRaster)

Il suffisait de virer le & ".tif"

Si j'arrive a en faire un bouton cliquable, je mettrais le code ici pour les buses en programmation comme moi.

Merci a FredXIII du Forum SIG pour son aide.

Dernière modification par lablatte (Mon 03 March 2008 14:56)

Hors ligne

 

#5 Sat 08 March 2008 16:25

carteq
Participant assidu
Date d'inscription: 8 Mar 2008
Messages: 829

Re: [ArcView 9.1] Grille cliquable

Anne,

J'ai fais un test. J'ai créé un polygone avec un champ "url" qui contient l'emplacement d'un fichier ECW sur mon disque dur. Lorsque je clique sur le polygone avec l'outil Hyperlink, l'image ECW s'ouvre sans problème avec le logiciel ER Viewer qui est le logiciel par défaut sur mon ordinateur pour ouvrir les fichier ECW.

Aucun besoin de script VBA donc pour faire ce que tu veux faire. ER Viewer est gratuit sur le site de ER Mapper.

Vincent

Hors ligne

 

#6 Mon 10 March 2008 16:53

lablatte
Juste Inscrit !
Date d'inscription: 29 Aug 2006
Messages: 7

Re: [ArcView 9.1] Grille cliquable

Ha oui d'accord, mais moi je veux (comme Anne, qui d'ailleurs a déserté :-)) que l'image s'ajoute a ma carte courante dans arcview, pas qu'elle s'ouvre avec un logiciel de photo, d'image ou le visionneur d'image de windows.

J'ai réussi a en faire un bouton dans la barre d'outils ce qui est très pratique. De plus pour créer mes polygone d'emprise j'utilise l'outil du site esri (voir lien sur le post de Kevin J.) qui te crée une table contenant le nom de l'image et le chemin. Bref tout ça vas très vite une fois le code en place.
IL faut quand même que j'améliore tout ça pour qu'il aillle chercher le chemin du répertoire des images dans le champ "répretoire", car dans le bout de code que je donne (enfin que j'ai pompé ailleur pour être précis) le repertoire est figé au départ. Et comme tout mes rasters ne sont pas au même endroit...
D'ailleur si un super programmeur VB passe par là ^^. Il fera en 5min ce que vais mettre un mois a faire.

Merci du tuyau, ça peut servir quand même.

Matt

Hors ligne

 

#7 Mon 10 March 2008 17:38

Kevin Jousseaume
Participant assidu
Lieu: Nanterre, région parisienne
Date d'inscription: 20 Mar 2006
Messages: 217

Re: [ArcView 9.1] Grille cliquable

Bonjour,

Pour ne pas utiliser votre constante CHEMIN_DOSSIER mais plutôt la valeur contenue dans votre champ "répretoire" (je recopie ce que vous avez écrit, mais je suppose que votre champ porte un libellé quelque peu différent, ne serait-ce pour l'accent), il vous suffit de vous inspirer d'une partie de votre code wink

Je m'explique... Dans le code ci-dessous, vous effectuez une boucle sur vos données sélectionnées et vous récupérez la valeur du champ "NOM_IMAGE".

Code:

        Do Until pFeature Is Nothing
            'Récupère l'index du champ
            Dim pindexField As Long
            pindexField = pFLayer.FeatureClass.FindField(NOM_CHAMP)

            'Récupère le nom du raster
            Dim sNomRaster As String
            sNomRaster = pFeature.Value(pindexField)
            
            'Ajout l'image
            Call AjouterRaster(pMap, CHEMIN_DOSSIER, sNomRaster)
            Set pFeature = pFCursor.NextFeature
        Loop

Plutôt que de faire appel à votre fonction AjouterRaster en passant en paramètre la constante "CHEMIN_DOSSIER", je vous propose la solution suivante :

Code:

Option Explicit
Const NOM_CHAMP = "NOM_IMAGE"
Const NOM_CHAMP_REP = "répretoire"
'Const CHEMIN_DOSSIER = "C:\lablatte\carto\BDortho_44\"

Public Sub test()
'---------------------------------------------------------------------------------------
' Module    : ThisDocument
' DateTime  : 02/10/2007
' Purpose   : Permet d'ajouter les rasters correspondants aux emprises sélectionnées
'---------------------------------------------------------------------------------------
    Dim pMxDoc As IMxDocument
    Set pMxDoc = ThisDocument
    
    Dim pMap As IMap
    Set pMap = pMxDoc.FocusMap
    
    'Recherche la sélection de la grille
    Dim pFLayer As IFeatureLayer
    Set pFLayer = pMap.Layer(0)

    Dim pFSelection As IFeatureSelection
    Set pFSelection = pFLayer
    
    If pFSelection.SelectionSet.Count = 0 Then
        MsgBox "Veuillez sélectionner les entités."
        Exit Sub
    Else
        Dim pFCursor As IFeatureCursor
        Dim pSelectSet As ISelectionSet

        Set pSelectSet = pFSelection.SelectionSet
        pSelectSet.Search Nothing, False, pFCursor

        Dim pFeature As IFeature
        Set pFeature = pFCursor.NextFeature
        
        'Récupère l'index du champ contenant le nom de l'image
        Dim pindexFieldNomImage As Long
        pindexFieldNomImage = pFLayer.FeatureClass.FindField(NOM_CHAMP)
        
        'Récupère l'index du champ contenant le nom du répertoire contenant l'image
        Dim pindexFieldNomRep As Long
        pindexFieldNomRep = pFLayer.FeatureClass.FindField(NOM_CHAMP_REP)
  
        Dim sNomRaster As String
        Dim sNomRepertoire As String

        Do Until pFeature Is Nothing
            'Récupère le nom du raster
            sNomRaster = pFeature.Value(pindexFieldNomImage)

            'Récupère le nom du répertoire contenant le raster
            sNomRepertoire = pFeature.Value(pindexFieldNomRep)

            'Ajout l'image
            'Call AjouterRaster(pMap, CHEMIN_DOSSIER, sNomRaster)
        Call AjouterRaster(pMap, sNomRepertoire, sNomRaster)

            Set pFeature = pFCursor.NextFeature
        Loop
    End If

    pMxDoc.ActiveView.Refresh
    pMxDoc.UpdateContents
    MsgBox pSelectSet.Count & " rasters ajoutés."
End Sub

Comme vous pouvez le voir, je n'ai fait que réutiliser la méthode pFeature.Value(pindexFieldNomImage) que vous utilisiez déjà. Je me suis également permis de changer un tout petit peu la déclaration de vos variables en les sortant de votre boucle (cela ne change sans doute pas grand chose dans votre cas, mais bon, c'est mon côté puriste qui ressort...).

Si vous avez des questions, n'hésitez pas à me les poser par mail, j'essaierai de trouver le temps d'y répondre au mieux.

Bien cordialement,
Kevin Jousseaume.

Dernière modification par Kevin Jousseaume (Mon 10 March 2008 17:40)

Hors ligne

 

#8 Tue 11 March 2008 16:01

lablatte
Juste Inscrit !
Date d'inscription: 29 Aug 2006
Messages: 7

Re: [ArcView 9.1] Grille cliquable

Youhou !!!
Merci, j'avais bien tenté de faire quelque chose du style mais comme c'est un peu de l'hebreu pour moi, j'ai eu quelques difficultés. Et comme à une virgule près ça ne marche pas...Mon autoformation en VB est quelque peu limitée ^^
Je vais essayer ça quand j'aurais 5 min.

Merci Monsieur Kévin J.

EDIT : Utiliser arcview sans VB c'est un peu comme pilloter une F1 en centre ville.

Dernière modification par lablatte (Tue 11 March 2008 16:03)

Hors ligne

 

#9 Thu 17 April 2008 12:25

depdep
Participant actif
Date d'inscription: 24 Sep 2006
Messages: 74

Re: [ArcView 9.1] Grille cliquable

Bonjour,

Ce message s'adresse plus spécialement à Kevin Jousseaume, qui a mis en ligne le code intégral permettant de rendre une grille cliquable dans ArcView...

Cependant, si quelqu'un d'autre a une suggestion... ce sera avec plaisir !

J'ai "copié-collé" le code que vous avez mis en ligne. Lorsque j'exécute ce code, apparaît une "erreur de compliation : sub ou fonction non définie" , sur "Call Raster" dans "Call AjouterRaster(pMap, sNomRepertoire, sNomRaster)".

Effectivement, je n'ai aucune déclaration sur cette fonction dans mon code...

Pouvez-vous m'aider à résoudre ce problème ?

Me sera t-il alors possible de cliquer sur ma grille et d'afficher des dalles au format ECW ?

En vous remerciant,

Gaëlle

Hors ligne

 

#10 Thu 17 April 2008 14:55

Kevin Jousseaume
Participant assidu
Lieu: Nanterre, région parisienne
Date d'inscription: 20 Mar 2006
Messages: 217

Re: [ArcView 9.1] Grille cliquable

Bonjour,

Ce message s'adresse plus spécialement à Kevin Jousseaume, qui a mis en ligne le code intégral permettant de rendre une grille cliquable dans ArcView...


Rendons à lablatte ce qui est à lablatte : je ne suis pas à l'origine du code ci-dessous, je n'ai fait qu'apporter de petites modifications à ce que lablatte avait écrit smile.
De fait, dans la partie du code que j'ai repris, la fonction AjouterRaster() n'est pas implémentée. Cette fonction se trouve cependant dans le message de lablatte datant du jeudi 28 février 2008 à 16:24.

Pour rappel, le code utilisé s'appuie sur une grille générée par un outil développée par Esri. Ainsi, lablatte a écrit le jeudi 28 février 2008 16:24 :

EDIT : J'ai une grille correspondant à l'emprise de mes rasters (fait avec l'outil d'esri proposer par Kevin Jousseaume) avec un champ contenant le nom de l'image (image.ecw ou tif) et un champ avec le chemin complet de l'image.


En vous souhaitant bon courage,
Kevin.

Hors ligne

 

#11 Thu 17 April 2008 21:20

depdep
Participant actif
Date d'inscription: 24 Sep 2006
Messages: 74

Re: [ArcView 9.1] Grille cliquable

Merci de votre réponse et désolée pour lablatte que j'ai destitué sans m'en rendre compte... Je devrais tester tout ça demain.

Encore merci

Gaëlle

Hors ligne

 

#12 Mon 21 April 2008 09:29

depdep
Participant actif
Date d'inscription: 24 Sep 2006
Messages: 74

Re: [ArcView 9.1] Grille cliquable

Bonjour,

J'ai un nouveau souci lorsque je lance le code que vous avez mis à notre disposition.

Dans un premier temps, j'ai le message "veuillez sélectionner les entités" qui s'affiche, comme ce qu'avait indiqué Lablatte le jeudi 28 Fevrier.

J'ai donc supprimé    & ".tif"      de la partie    Set pRasterDataset = pWS.OpenRasterDataset(sNomRaster & ".tif")
comme l'avait indiqué Lablatte.

Mais lorsque je fais à nouveau tourner le code, le même message (veuillez sélectionner les entités) apparaît.

Lorsque je sélectionne l'une des cellules de ma grille, générée avec l'outil d'esri "Créer un catalogue d'images et les polygones d'emprise", et que je relance le code, j'ai une erreur qui apparaît sur "sNomRaster = pFeature.Value(pindexFieldNomImage)". J'ai mis le message d'erreur qui s'affiche en pièce jointe.

Pouvez-vous m'aider ?

En vous remerciant...

Gaëlle



Voici l'intégralité du code que j'ai utilisé :

Code:

Option Explicit
Const IMAGENAME = "NOM DE L'IMAGE"
Const FULLPATH = "REPERTOIRE"
'Const FULLPATH = "X:\BD_ORTHO\26\"

Public Sub test()
'---------------------------------------------------------------------------------------
' Module    : ThisDocument
' DateTime  : 02/10/2007
' Purpose   : Permet d'ajouter les rasters correspondants aux emprises sélectionnées
'---------------------------------------------------------------------------------------
    Dim pMxDoc As IMxDocument
    Set pMxDoc = ThisDocument
    
    Dim pMap As IMap
    Set pMap = pMxDoc.FocusMap
    
    'Recherche la sélection de la grille
    Dim pFLayer As IFeatureLayer
    Set pFLayer = pMap.Layer(0)

    Dim pFSelection As IFeatureSelection
    Set pFSelection = pFLayer
    
    If pFSelection.SelectionSet.Count = 0 Then
        MsgBox "Veuillez sélectionner les entités."
        Exit Sub
    Else
        Dim pFCursor As IFeatureCursor
        Dim pSelectSet As ISelectionSet

        Set pSelectSet = pFSelection.SelectionSet
        pSelectSet.Search Nothing, False, pFCursor

        Dim pFeature As IFeature
        Set pFeature = pFCursor.NextFeature
        
        'Récupère l'index du champ contenant le nom de l'image
        Dim pindexFieldNomImage As Long
        pindexFieldNomImage = pFLayer.FeatureClass.FindField(IMAGENAME)
        
        'Récupère l'index du champ contenant le nom du répertoire contenant l'image
        Dim pindexFieldNomRep As Long
        pindexFieldNomRep = pFLayer.FeatureClass.FindField(FULLPATH)
  
        Dim sNomRaster As String
        Dim sNomRepertoire As String

        Do Until pFeature Is Nothing
            'Récupère le nom du raster
            sNomRaster = pFeature.Value(pindexFieldNomImage)

            'Récupère le nom du répertoire contenant le raster
            sNomRepertoire = pFeature.Value(pindexFieldNomRep)

            'Ajout l'image
            'Call AjouterRaster(pMap, CHEMIN_DOSSIER, sNomRaster)
        Call AjouterRaster(pMap, sNomRepertoire, sNomRaster)

            Set pFeature = pFCursor.NextFeature
        Loop
    End If

    pMxDoc.ActiveView.Refresh
    pMxDoc.UpdateContents
    MsgBox pSelectSet.Count & " rasters ajoutés."
End Sub
Public Sub AjouterRaster(pMap As IMap, sCheminRaster As String, sNomRaster As String)
    Dim pWSF As IWorkspaceFactory
    Set pWSF = New RasterWorkspaceFactory
    
    Dim pWS As IRasterWorkspace
    Set pWS = pWSF.OpenFromFile(sCheminRaster, 0)
    
    Dim pRasterDataset As IRasterDataset
    Set pRasterDataset = pWS.OpenRasterDataset(sNomRaster)
    
    Dim pRasterLayer As IRasterLayer
    Set pRasterLayer = New RasterLayer
    pRasterLayer.CreateFromDataset pRasterDataset
    
    pMap.AddLayer pRasterLayer
    
    pMap.MoveLayer pRasterLayer, pMap.LayerCount
        
End Sub

Fichier(s) joint(s) :
Pour accéder aux fichiers vous devez vous inscrire.

Hors ligne

 

#13 Mon 21 April 2008 11:02

Jeirhome
Membre
Lieu: Liverion
Date d'inscription: 22 Aug 2006
Messages: 4298
Site web

Re: [ArcView 9.1] Grille cliquable

Const IMAGENAME = "NOM DE L'IMAGE"
Const FULLPATH = "REPERTOIRE"
'Const FULLPATH = "X:\BD_ORTHO\26\"


Vous avez laissé ces valeur, ou bien à la place de REPERTOIRE, vous avez le chemin complet où ce situe vos images ?


Jérôme Cuinet
L'avantage de la Chine, c'est que le soleil se couche plus tard !

Hors ligne

 

#14 Mon 21 April 2008 11:37

depdep
Participant actif
Date d'inscription: 24 Sep 2006
Messages: 74

Re: [ArcView 9.1] Grille cliquable

Je ne comprends pas très bien...

J'ai mis en pièce jointe la structure de ma grille "cliquable". Peut-être pourrez-vous m'indiquer ce que je dois écrire dans le code ?


Fichier(s) joint(s) :
Pour accéder aux fichiers vous devez vous inscrire.

Hors ligne

 

#15 Mon 21 April 2008 11:46

Kevin Jousseaume
Participant assidu
Lieu: Nanterre, région parisienne
Date d'inscription: 20 Mar 2006
Messages: 217

Re: [ArcView 9.1] Grille cliquable

La valeur de votre constante IMAGENAME doit prendre le nom du champ comportant le nom de vos images, en l'occurrence IMAGENAME dans votre cas...

Remplacez donc

Code:

Const IMAGENAME = "NOM DE L'IMAGE"

par

Code:

Const IMAGENAME = "IMAGENAME"

tautologie que certains puristes n'apprécieraient guère wink

Dernière modification par Kevin Jousseaume (Mon 21 April 2008 11:47)

Hors ligne

 

#16 Mon 21 April 2008 11:56

depdep
Participant actif
Date d'inscription: 24 Sep 2006
Messages: 74

Re: [ArcView 9.1] Grille cliquable

j'ai déjà essayé en remplaçant la partie de code de cette façon :

Option Explicit
Const IMAGENAME = "IMAGENAME"
Const FULLPATH = "FULLPATH"

ce qui ne change rien à mon problème...

Hors ligne

 

#17 Mon 21 April 2008 11:59

depdep
Participant actif
Date d'inscription: 24 Sep 2006
Messages: 74

Re: [ArcView 9.1] Grille cliquable

pour éviter la "tautologie", le mieux serait que je change le nom de mes constantes, n'est-ce-pas ?

Hors ligne

 

#18 Mon 21 April 2008 13:36

Kevin Jousseaume
Participant assidu
Lieu: Nanterre, région parisienne
Date d'inscription: 20 Mar 2006
Messages: 217

Re: [ArcView 9.1] Grille cliquable

Je suis surpris que cela ne change rien à votre problème. Pourriez-vous regarder la valeur de votre variable pindexFieldNomImage ? Si elle vaut un nombre inférieur à 0, c'est que votre couche de données ne contient pas le champ recherché.

Je pense également que le problème vient du fait que vos données ne soient pas structurées de la même manière que celles de lablatte (tout du moins dans leur version finale...). Dans votre cas, vos données possèdent 1 champ "FULLPATH" qui contient le chemin complet de chaque image. Or la fonction AjouterRaster attend en paramètres le nom de l'image et l'emplacement du dossier contenant l'image, or si vous lui indiquez bien le nom de l'image, vous lui indiquez ensuite le chemin complet de votre image et non le chemin du dossier la contenant.

Pourriez-vous essayer de remplacer

Do Until pFeature Is Nothing
            'Récupère le nom du raster
            sNomRaster = pFeature.Value(pindexFieldNomImage)

            'Récupère le nom du répertoire contenant le raster
            sNomRepertoire = pFeature.Value(pindexFieldNomRep)

            'Ajout l'image
            'Call AjouterRaster(pMap, CHEMIN_DOSSIER, sNomRaster)
            Call AjouterRaster(pMap, sNomRepertoire, sNomRaster)

            Set pFeature = pFCursor.NextFeature
        Loop


Par

Do Until pFeature Is Nothing
            'Récupère le nom du raster
            sNomRaster = pFeature.Value(pindexFieldNomImage)

            'Ajout l'image
            Call AjouterRaster(pMap, IMAGENAME, sNomRaster)

            Set pFeature = pFCursor.NextFeature
        Loop


Et si cela ne marche toujours pas, cela peut aussi venir de la présence de l'extension ".ecw" qui est présente dans la valeur du nom de l'image. Je pense qu'il vous faut l'enlever, par exemple en supprimant les 4 derniers caractères de la variable sNomRaster au sein de la boucle en question.

Bon courage,
Kevin.

PS: pour la tautologie, n'y prenez pas garde, c'était plus une plaisanterie qu'autre chose smile.

Dernière modification par Kevin Jousseaume (Mon 21 April 2008 13:37)

Hors ligne

 

#19 Mon 21 April 2008 14:01

depdep
Participant actif
Date d'inscription: 24 Sep 2006
Messages: 74

Re: [ArcView 9.1] Grille cliquable

Bonjour Kévin,

désolé mais je suis un vrai boulet en programmation...

Comment dois-je faire pour "regarder la valeur de ma variable pindexFieldNomImage" ?.

Comme vous me l'avez indiqué, j'ai remplacé la partie "do until...loop".

Par contre, je n'ai encore rien modifié au niveau de l'extension .ecw

En vous remerciant pour votre aide et votre patience !

Gaëlle

Hors ligne

 

#20 Mon 21 April 2008 14:14

depdep
Participant actif
Date d'inscription: 24 Sep 2006
Messages: 74

Re: [ArcView 9.1] Grille cliquable

Ca y est. J'ai supprimé les extensions .ecw contenues dans le champ "IMAGENAME".
Ne faut-il pas supprimer également ces extensions dans "FULLPATH" ?

Hors ligne

 

#21 Mon 21 April 2008 15:01

Kevin Jousseaume
Participant assidu
Lieu: Nanterre, région parisienne
Date d'inscription: 20 Mar 2006
Messages: 217

Re: [ArcView 9.1] Grille cliquable

Je vous propose de continuer ces échanges par mail, je ne pense pas que cela intéresse les autres membres du forum. Je trouverai bien un autre moyen d'augmenter mon nombre de messages postés tongue

Hors ligne

 

Pied de page des forums

Powered by FluxBB