Sử dụng văn bản động để hiển thị tín dụng lớp


9

Tôi đang tìm cách cập nhật 'tín dụng lớp' vào hộp văn bản động. Tôi đã tìm thấy các cách sử dụng tín dụng bản đồ hoặc tín dụng khung dữ liệu ở đây nhưng dường như không thể là cách để lấy thông tin được lấy từ một lớp.

Tôi dường như chỉ tạo ra một chuỗi trống mỗi lần. Có ai đã làm điều này hoặc tìm thấy một công việc xung quanh? Có vẻ như là một cách cực kỳ hữu ích để cập nhật tín dụng bản đồ với rất ít tài nguyên.

Thuộc tính lớp dẫn xuất


Không có cách nào để thực hiện điều này một cách linh hoạt, vì các văn bản động tích hợp đều dựa trên tài liệu hoặc khung dữ liệu. Tuy nhiên, điều này hoàn toàn có thể nếu bạn sẵn sàng chạy một tập lệnh để điền vào trường văn bản mỗi khi bạn tạo bản đồ. Hoặc, thậm chí điền vào các khoản tín dụng bản đồ từ tất cả các khoản tín dụng lớp. Nếu đây là những gì bạn đang theo đuổi, tôi có thể cung cấp một số mã phức tạp để làm như vậy.
Fezter

Câu trả lời:


17

Như đã đề cập trong nhận xét của tôi ở trên, không có cách nào để làm điều này bằng văn bản động. Tuy nhiên, bạn có thể viết một tập lệnh để làm điều này và gắn nó vào nút addin python hoặc để chạy khi bạn lưu MXD hoặc một cái gì đó. Bạn sẽ cần tạo một yếu tố văn bản để giữ các khoản tín dụng và đặt tên cho nó là "CREDITS" như sau:

nhập mô tả hình ảnh ở đây

Mã cơ bản sẽ trông giống như thế này:

mxd = arcpy.mapping.MapDocument("current")
credit_text = ""
for layer in arcpy.mapping.ListLayers(mxd):
    credit_text += (layer.credits + "\n") # separate each line with a carriage return
for el in arcpy.mapping.ListLayoutElements(mxd, "TEXT_ELEMENT"):
    if el.name == "CREDITS":
        el.text = credit_text

2
+1 Đó là cách tôi làm - sẽ trả lời với cùng một mã.
Midavalo
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.