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 Tue 20 April 2004 16:23

Arnaud Colé
Invité

[ArcView 8.3] Symbologie

Bonjour, une question pratique sur la symbologie dans ArcView 8.3.
Peut-on appliquer rapidement la meme symbologie a plusieurs couches presentes dans un document ?
Jusqu'a maintenant j'utilisais la fonction importer dans l'onglet symbologie, fct pratique lorsqu'il s'agit de quelques couches seulement, mais la j'en ai une cinquantaine !

Merci d'avance

----------------------------------------------------
Arnaud Cole - Geomaticien
Chambery metropole - Direction Dechets

 

#2 Tue 20 April 2004 19:21

RWB EE SA, Dept GIS
Invité

Re: [ArcView 8.3] Symbologie

Bonsoir,

Oui par programmation via VBA et arcObject

Voici le code permettant d’adjoindre un fichier lyr, et par la sa symbologie a une couche :

Code:

''
'' FONCTION  : Application d'une symbologie contenue dans un fichier lyr
'' Parametres : strFileLyr - nom et chemin d'acces du fichier lyr
''          pFeatureLayer - (Feature) Layer a appliquer la symbologie contenue dans le fichier lyr
''
''
Sub ApplyLayerLyrSymbology(strFileLyr As String, pFeatureLayer As IFeatureLayer)
Dim pMxDoc As IMxDocument
Dim pMap As IMap
Dim pGxLayer As IGxLayer
Dim pGxFile As IGxFile
Dim strLayerPath As String
Set pMxDoc = ThisDocument

Set pMap = pMxDoc.FocusMap

'Get the layer file
Set pGxLayer = New GxLayer
Set pGxFile = pGxLayer

' Set this variable to the location of the layer file
strLayerPath = strFileLyr
pGxFile.Path = strLayerPath

Dim pGeoLayer As IGeoFeatureLayer
Set pGeoLayer = pGxLayer.Layer

' Get the Symbology from the layer
Dim pRend As IUniqueValueRenderer
Set pRend = pGeoLayer.Renderer

'Get the layer you would like to apply the symbology to
Dim pLayer As IGeoFeatureLayer
Set pLayer = pFeatureLayer

'Apply the layer files symbology
Set pLayer.Renderer = pRend

'Refresh the view and the Table of Contents
pMxDoc.ActiveView.Refresh
pMxDoc.UpdateContents

End Sub

Il vous suffit des lors d’appeler cette fonction pour chaque FeatureLayer present dans votre mxd, on effectuant une boucle sur
l’ensemble des couches presentent et en passant comme parametre a la fonction :
strFileLyr = chemin d’acces complet et nom du fichier avec extension de votre fichier lyr
pFeatureLayer = « Nom » de votre couche -> classe, soit pMxDoc.pMaps.pFeatureLayer

En esperant vous avoir aide…

Meilleures salutations.

Jean-Bernard Boschung
Directeur-adjoint RWB Cugy VD
Responsable SIG
RWB EE SA, Dept GIS Consulting
chemin des Petits Esserts 14
CH-1053 Cugy VD (Switzerland)
http   www.rwb.ch

 

Pied de page des forums

Powered by FluxBB