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

Printemps des cartes 2024

#1 Sat 05 May 2007 16:51

aziz_emi
Participant occasionnel
Date d'inscription: 4 May 2007
Messages: 11

fonction zoom

bjr tt le monde
je travaill sur l'elaboration d'un sig aur l'alimentation en eau potable et je cherche s'il y a quelqu'un qui a un code en vba qui permet de zoomer sur une entité en lui donnant son code ( c a d son identifiant )
merci d'avance

Hors ligne

 

#2 Tue 08 May 2007 20:20

aziz_emi
Participant occasionnel
Date d'inscription: 4 May 2007
Messages: 11

Re: fonction zoom

bjr tt le monde
je travail sur une application vba sur arcgi9.1
je sait pa la fonction qui permet de zoomer sur une entité dans une couche . s'il y a klk1 qui peut m'aider ?
merci infiniment

Hors ligne

 

#3 Wed 09 May 2007 08:31

janyv
Participant assidu
Lieu: Montreuil, France
Date d'inscription: 8 Feb 2006
Messages: 356

Re: fonction zoom

Bonjour,

ce petit bout de code devrait fonctionner :

Code:

Public Sub ZoomCouche()
Dim pMxDoc As IMxDocument
Dim pMap As IMap
Dim pLayers As IEnumLayer
Dim pLayer As ILayer
Dim pFLayer As IFeatureLayer
Dim pFClass As IFeatureClass
Dim pQFilter As IQueryFilter

Dim pFCursor As IFeatureCursor
Dim pFeature As IFeature

Set pMxDoc = ThisDocument
Set pMap = pMxDoc.FocusMap
Set pLayers = pMap.Layers

Set pLayer = pLayers.Next
Do While Not pLayer Is Nothing
    If pLayer.Name = "NOM_COUCHE" Then
        If TypeOf pLayer Is IFeatureLayer Then
            Set pFLayer = pLayer
            Set pFClass = pFLayer.FeatureClass
            Set pQFilter = New QueryFilter
            pQFilter.WhereClause = "NOM_CHAMP = 'VALEUR'"
            Set pFCursor = pFClass.Search(pQFilter, False)
            Set pFeature = pFCursor.NextFeature
            If Not pFeature Is Nothing Then
                pMxDoc.ActiveView.Extent = pFeature.Extent
        
                pMxDoc.ActiveView.Refresh
            End If
        End If
        
        Set pFCursor = Nothing
        Set pQFilter = Nothing
        Set pFClass = Nothing
        Set pFLayer = Nothing
        
        Set pLayer = Nothing
    Else
        Set pLayer = pLayers.Next
    End If
Loop

Set pLayers = Nothing
Set pMap = Nothing
Set pMxDoc = Nothing

End Sub

Cette Sub fonctionne pour la carte active (FocusMap) et cadre l'affichage sur une entité trouvée à partir d'une requête attributaire (dans l'exemple, la valeur d'un champ de type texte) pour une couche  dont le nom est fourni.

Bon courage,

yvan

Dernière modification par janyv (Wed 09 May 2007 08:57)


Si tu ne sais pas demande, si tu sais partage smile

Hors ligne

 

#4 Wed 09 May 2007 09:26

nicolas valls
Participant assidu
Date d'inscription: 28 Oct 2005
Messages: 154

Re: fonction zoom

Moi je fais comme ça :
Une fois que les objets sont sélectionnés

Code:

dim outil as icommanditem

'permet de zoomer sur la selection
Set outil = Application.Document.CommandBars.Find(arcid.Query_ZoomToSelected)

'execute l'outil
outil.Execute

Nicolas VALLS
Géomaticen
Cabinet Pierre GRILLET

Hors ligne

 

#5 Thu 10 May 2007 02:01

aziz_emi
Participant occasionnel
Date d'inscription: 4 May 2007
Messages: 11

Re: fonction zoom

merci infiniment pour vous deux Nicolas VALLS et janyv

Hors ligne

 

#6 Thu 10 May 2007 08:20

janyv
Participant assidu
Lieu: Montreuil, France
Date d'inscription: 8 Feb 2006
Messages: 356

Re: fonction zoom

You're welcome aziz_emi smile

yvan


Si tu ne sais pas demande, si tu sais partage smile

Hors ligne

 

Pied de page des forums

Powered by FluxBB