¿Activar etiquetas de capa con ArcPy?

8

No puedo activar las etiquetas dentro de mi script Python:

import arcpy
mxd = arcpy.mapping.MapDocument(r"Mypathhere") #Map document reference
layer = arcpy.mapping.ListLayers(mxd, "Layername")[0] #Indexing list for 1st layer
if layer.supports("LABELCLASSES"):
    for lblclass in layer.labelClasses:
        lblclass.showClassLabels = True
arcpy.RefreshActiveView()
mxd.save()
del mxd

Si primero necesito habilitar el etiquetado en el administrador de etiquetas, ¿puedo hacerlo con ArcPy?

El guión no se rompe. No recibo ningún error. Los puntos simplemente no se etiquetan.

Tim
fuente

Respuestas:

5

Creo que su problema es que su código está habilitando la casilla de verificación en Propiedades de capa que dice "Etiquetar características en esta clase". La parte que falta es el código para habilitar en la casilla de verificación "Etiquetar entidades en esta capa"

Intenta insertar este código:

layer.showLabels = True

Después de su declaración if que activa las clases de etiqueta, como la siguiente:

import arcpy
mxd = arcpy.mapping.MapDocument(r"Mypathhere") #Map document reference
layer = arcpy.mapping.ListLayers(mxd, "Layername")[0] #Indexing list for 1st layer
if layer.supports("LABELCLASSES"):
    for lblclass in layer.labelClasses:
        lblclass.showClassLabels = True
layer.showLabels = True`
arcpy.RefreshActiveView()
mxd.save()
del mxd
Consigue espacial
fuente
1

Si no siempre usa clases de etiquetas y simplemente desea activar las etiquetas, entonces el código puede simplificarse para:

import arcpy
mxd = arcpy.mapping.MapDocument(r"MyPathHere") 
layer = arcpy.mapping.ListLayers(mxd, "LayerName")[0] 
layer.showLabels = True

y si desea hacer cosas como actualizar la vista de datos / diseño (lo que esté activo), vea la casilla de verificación marcada en la Tabla de contenido y / o guarde los cambios en su mapa, luego simplemente agregue líneas como:

arcpy.RefreshActiveView()
arcpy.RefreshTOC()
mxd.save()
PolyGeo
fuente