Показувати лише великий текст у якості міток у QGIS?


15

Використовуйте QGIS 2.14 і дивіться, що тепер маркування на основі правил. Я хочу показувати мітки міст, які мають великі літери (наприклад, CRAWLEY), а не показувати мітки з малих літер (наприклад, Faygate)

Таблиця атрибутів не відрізняє різні міста крім їх назви. Чи є спосіб зробити це?

введіть тут опис зображення

Відповіді:


20

Для цього вам дійсно не потрібен стиль на основі правил.

  1. Виберіть опцію Показати мітки для цього шару (або на основі правил, якщо вам зручніше) та натисніть піктограму Вираз і перейдіть до редактора функцій, як показано нижче.

    Функція редактор

  2. Створіть новий файл (або відредагуйте наявний) та введіть наступне:

    from qgis.core import *
    from qgis.gui import *
    
    @qgsfunction(args='auto', group='Custom')
    def func(value, feature, parent):
        if value.isupper():
            return value
    
  3. Клацніть Завантажити, потім перейдіть на вкладку Вираз і введіть наступне:

    func("fieldName")
    
  4. Потім застосувати всі зміни. Тепер ваші етикетки повинні містити лише ті, які є великими літерами.


Приклад :

Перед запуском функції:

Перед функцією

Після запуску функції:

Після функції


8
Замість використання спеціальної функції python тут можна також використовувати вбудований вираз"fieldName"=upper("fieldName")
ndawson

3
@ndawson - Ну це дуже зручна функція, дякую! Хоча ваш вираз повертає лише булевий, замість цього ви можете використовувати if("fieldName" = upper("fieldName"), "fieldName", ''). Так чи інакше, я думаю, ви повинні опублікувати це як відповідь ;)
Йосип
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.