Bật nhãn của lớp bằng ArcPy?


8

Tôi không thể bật nhãn trong tập lệnh Python của mình:

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

Nếu tôi cần bật nhãn trong trình quản lý nhãn trước, điều đó có thể được thực hiện với ArcPy không?

Kịch bản không bị phá vỡ. Tôi không nhận được bất kỳ lỗi nào. Các điểm không được dán nhãn.

Câu trả lời:


5

Tôi nghĩ vấn đề của bạn là mã của bạn đang kích hoạt hộp kiểm bên dưới Thuộc tính lớp có nội dung "Các tính năng nhãn trong lớp này". Phần bạn đang thiếu là mã để bật hộp kiểm cho "Tính năng nhãn trong lớp này"

Hãy thử chèn mã này:

layer.showLabels = True

Sau câu lệnh if của bạn kích hoạt các lớp nhãn, như sau:

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

Nếu bạn không phải lúc nào cũng sử dụng các lớp nhãn và chỉ muốn bật nhãn, thì mã có thể được đơn giản hóa thành:

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

và nếu bạn muốn thực hiện những việc như làm mới chế độ xem dữ liệu / bố cục (bất kỳ hoạt động nào), hãy xem hộp kiểm được đánh dấu trong Mục lục và / hoặc để lưu các thay đổi vào bản đồ của bạn, sau đó chỉ cần thêm các dòng như:

arcpy.RefreshActiveView()
arcpy.RefreshTOC()
mxd.save()
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.