Chỉ hiển thị văn bản chữ hoa dưới dạng nhãn trong QGIS?


15

Sử dụng QGIS 2.14 và xem hiện có quy tắc ghi nhãn. Tôi muốn hiển thị nhãn của các thị trấn có chữ in hoa (ví dụ CRAWLEY) và không hiển thị nhãn của các thị trấn có chữ thường (ví dụ: Faygate)

Bảng thuộc tính không phân biệt các thị trấn khác nhau ngoài tên của chúng. Có cách nào để làm điều này ?

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

Câu trả lời:


20

Bạn không thực sự cần phong cách dựa trên quy tắc cho việc này.

  1. Chọn nhãn Hiển thị cho tùy chọn lớp này (hoặc dựa trên quy tắc nếu bạn thích) và nhấp vào biểu tượng Biểu thức và đi đến Trình chỉnh sửa chức năng như hiển thị bên dưới.

    Chức năng chỉnh sửa

  2. Tạo một tệp mới (hoặc chỉnh sửa tệp hiện có) và nhập thông tin sau:

    from qgis.core import *
    from qgis.gui import *
    
    @qgsfunction(args='auto', group='Custom')
    def func(value, feature, parent):
        if value.isupper():
            return value
    
  3. Nhấp vào Tải, sau đó chuyển đến tab Biểu thức và nhập như sau:

    func("fieldName")
    
  4. Sau đó, áp dụng tất cả các thay đổi. Nhãn của bạn bây giờ chỉ nên chứa những chữ cái đều là chữ in hoa.


Ví dụ :

Trước khi chạy chức năng:

Trước chức năng

Sau khi chạy chức năng:

Sau chức năng


8
Thay vì sử dụng chức năng python tùy chỉnh ở đây, bạn cũng có thể sử dụng biểu thức sẵn có"fieldName"=upper("fieldName")
ndawson

3
@ndawson - Vâng, đó là một chức năng rất tiện dụng, cảm ơn bạn! Mặc dù biểu thức của bạn chỉ trả về một boolean, thay vào đó bạn có thể sử dụng if("fieldName" = upper("fieldName"), "fieldName", ''). Dù bằng cách nào, tôi nghĩ bạn nên đăng nó dưới dạng câu trả lời ;)
Joseph
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.