Suite

Supprimer les couches WMS des mxds à l'aide d'ArcPy ?

Supprimer les couches WMS des mxds à l'aide d'ArcPy ?


J'essaie de supprimer les couches WMS d'un mxd à l'aide d'arcpy. Je peux supprimer avec succès les services de type "MapServer" en utilisant le code ci-dessous, mais pas WMS ?

Voici un exemple de mxd (zippé) avec deux calques WMS différents que j'essaye de supprimer : ici

J'ai également posté sur le forum ArcGIS Resources : ici

Code:

import arcpy, os inFName = "wms.mxd" outFName = "wms_removed.mxd" pth = r"c:	emp" inFULLPTH = os.path.join(pth,inFName) outFULLPTH = os.path.join(pth,outFName ) mxd = arcpy.mapping.MapDocument(inFULLPTH) pour df dans arcpy.mapping.ListDataFrames(mxd) : LyrList = arcpy.mapping.ListLayers(mxd, "", df) pour lyr dans LyrList : if lyr.supports("SERVICEPROPERTIES "): if lyr.serviceProperties["ServiceType"] == "WMS": arcpy.mapping.RemoveLayer(df, lyr) mxd.saveACopy(outFULLPTH) del mxd

Des idées? Est-ce que arcpy.mapping.RemoveLayer est la meilleure approche ? J'ai des centaines de mxds à parcourir et je souhaite en supprimer les couches WMS.


J'ai regardé votre MXD et il semble que le problème soit dû au fait que les couches WMS sont des sous-couches de la couche WMS principale. Je ne pense pas qu'il soit possible de supprimer ces "sous-couches" avec python car ce n'est pas possible de le faire dans l'interface graphique d'ArcMap. Est-ce que ça a du sens? Je peux me tromper, mais c'est ce que mon intuition me dit. Vous voudrez peut-être essayer de supprimer la couche WMS parente ensemble.


Voir la vidéo: ArcGis - Cours 2: Couches et importation de tableaux dans ArcMap