Mengaktifkan label lapisan menggunakan ArcPy?

8

Saya tidak dapat mengaktifkan label dalam skrip Python saya:

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

Jika saya perlu mengaktifkan pelabelan di manajer label terlebih dahulu, dapatkah itu dilakukan dengan ArcPy?

Script tidak rusak. Saya tidak mendapatkan kesalahan. Poin-poinnya jangan dilabeli.

Tim
sumber

Jawaban:

5

Saya pikir masalah Anda adalah bahwa kode Anda mengaktifkan kotak centang di bawah Properti Lapisan yang mengatakan "Fitur label di kelas ini". Bagian yang Anda lewatkan adalah kode untuk mengaktifkan ke kotak centang untuk "Label fitur di lapisan ini"

Coba masukkan kode ini:

layer.showLabels = True

Setelah pernyataan if Anda yang mengaktifkan kelas label, seperti berikut:

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
Dapatkan Tata Ruang
sumber
1

Jika Anda tidak selalu menggunakan kelas label, dan hanya ingin mengaktifkan label, maka kode dapat disederhanakan menjadi:

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

dan jika Anda ingin melakukan hal-hal seperti menyegarkan tampilan data / tata letak (mana yang aktif), lihat kotak centang yang ditandai dalam Daftar Isi, dan / atau untuk menyimpan perubahan ke peta Anda, kemudian tambahkan saja baris seperti:

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