#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