#1 Thu 07 September 2006 15:41
- Yann LE JUNTER
- Invité
Récupérer Définition d'un layer
Bonjour,
Quelqu'un sait-il comment récupérer par programmation la définition d'un
layer, càd ce qui est inscrit comme définition de l'onglet général de la
fenêtre de propriétés d'une couche [sans faire apparaître cette fenêtre]
merci
yann
#2 Fri 08 September 2006 09:35
- Frédéric Prally
- Participant occasionnel
- Date d'inscription: 25 Oct 2005
- Messages: 16
Re: Récupérer Définition d'un layer
Bonjour,
Voici un exemple de code qui va te permettre de savoir si ta couche sélectionnée possède ou non un ensemble de définition; et si c'est le cas une boite de dialogue affiche l'expression de la requete.
Code:
Public Sub Test()
'Description : Permet d'afficher l'ensemble de définition de la couche sélectionnée dans la TOC
'Date : septembre 2006
Dim pMxDoc As IMxDocument
Set pMxDoc = ThisDocument
Dim pLayer As ILayer
Set pLayer = pMxDoc.SelectedLayer
'Vérifie que la couche sélectionné est bien de type FeatureLayer
If TypeOf pLayer Is IFeatureLayer Then
Dim pFLDEF As IFeatureLayerDefinition
Set pFLDEF = pLayer
If pFLDEF.DefinitionExpression = "" Then
MsgBox "La couche " & pLayer.Name & " ne possède pas un ensemble de définition."
Else
MsgBox "La couche " & pLayer.Name & " possède un ensemble de définition :" _
& vbNewLine & pFLDEF.DefinitionExpression
End If
Else
'Sinon message + sortie
MsgBox "Veuillez sélectionner une classe d'entités.", vbInformation
Exit Sub
End If
End SubEn espérant que cela t'aide.
Hors ligne
#3 Fri 08 September 2006 11:11
- nasca
- Participant occasionnel
- Date d'inscription: 5 Sep 2005
- Messages: 23
Re: Récupérer Définition d'un layer
Ma question ne concerne pas l'ensemble de définition "DefinitionExpression"
mais la définition associée au layer (tab général). Le seul moyen que je
connaisse consiste à avoir le layer dans la map. Si le layer est dans la
map, il est possible de récupérer la définition associée au layer via
l'interface IMapLayerInfo. Cependant je cherche à obtenir cette info sans
avoir à afficher ce layer dans la map et là....je suis coincé.....
Hors ligne
#4 Fri 08 September 2006 14:02
- Frédéric Prally
- Participant occasionnel
- Date d'inscription: 25 Oct 2005
- Messages: 16
Re: Récupérer Définition d'un layer
Bonjour,
Voici un exemple qui va te permettre de récupérer le texte de description de la couche via ArcCatalog cela peu peut-être te donner une piste pour éviter de charger la couche (macouche.lyr) dans Arcmap.
Toutefois, comme je pense que tu utilises MapServer (?) je ne suis pas certain que cela puisse t'aider.
Code:
Public Sub Test01()
'Description : Affiche la description de la couche d'un fichier *.lyr
' à partir d'ArcCatalog
'Date : septembre 2006
'Version : ArcView 9.0
Dim pGxApp As IGxApplication
Set pGxApp = Application
'Récupére l'objet sélectionné
Dim pGxSel As IGxSelection
Set pGxSel = pGxApp.Selection
Dim pGxObjet As IGxObject
Set pGxObjet = pGxSel.FirstObject
'Récupère l'emplacement du chier
Dim pGxLayer As IGxLayer
Set pGxLayer = New GxLayer
Dim pGxFile As IGxFile
Set pGxFile = pGxLayer
pGxFile.Path = pGxObjet.FullName
Dim pLayer As ILayer
Set pLayer = pGxLayer.Layer
'Affiche la description de la couche
Dim pLGenPro As ILayerGeneralProperties
Set pLGenPro = pLayer
If Not pLGenPro.LayerDescription = "" Then
MsgBox pLGenPro.LayerDescription
Else
MsgBox "Pas de description associée à " & pLayer.Name
End If
End SubHors ligne
#5 Sat 09 September 2006 17:08
- nasca
- Participant occasionnel
- Date d'inscription: 5 Sep 2005
- Messages: 23
Re: Récupérer Définition d'un layer
merci bcp pour cette réponse qui répond à mon problème. En effet je ne
connaissais pas l'interface "ILayerGeneralProperties".
C'est elle qui me manquait.
merci
yann
Hors ligne


