#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 Sub
En 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 Sub
Hors 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