Ebenenbeschriftungen mit ArcPy aktivieren?


8

Ich kann die Beschriftungen in meinem Python-Skript nicht aktivieren:

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

Kann ich dies mit ArcPy tun, wenn ich zuerst die Beschriftung im Etikettenmanager aktivieren muss?

Das Skript wird nicht unterbrochen. Ich bekomme keine Fehler. Die Punkte werden einfach nicht beschriftet.

Antworten:


5

Ich denke, Ihr Problem ist, dass Ihr Code das Kontrollkästchen unter den Ebeneneigenschaften aktiviert, das "Beschriftungsfunktionen in dieser Klasse" lautet. Der Teil, den Sie vermissen, ist der Code, der für das Kontrollkästchen "Beschriftungsfunktionen in dieser Ebene" aktiviert werden soll.

Versuchen Sie, diesen Code einzufügen:

layer.showLabels = True

Nach Ihrer if-Anweisung, die die Label-Klassen aktiviert, wie folgt:

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

1

Wenn Sie nicht immer Beschriftungsklassen verwenden und einfach Beschriftungen aktivieren möchten, kann der Code wie folgt vereinfacht werden:

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

Wenn Sie beispielsweise die Daten- / Layoutansicht aktualisieren möchten (je nachdem, was aktiv ist), das im Inhaltsverzeichnis markierte Kontrollkästchen aktivieren und / oder die Änderungen an Ihrer Karte speichern möchten, fügen Sie einfach folgende Zeilen hinzu:

arcpy.RefreshActiveView()
arcpy.RefreshTOC()
mxd.save()
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.