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
여기에 커스텀 파이썬 함수를 사용하는 대신 내장 표현식을 사용할 수도 있습니다"fieldName"=upper("fieldName")
ndawson

3
@ndawson-글쎄, 그것은 매우 편리한 기능입니다, 감사합니다! 식이 부울 만 반환하지만 대신을 사용할 수 있습니다 if("fieldName" = upper("fieldName"), "fieldName", ''). 어느 쪽이든, 나는 당신이 답으로 그것을 게시해야한다고 생각합니다 .)
Joseph
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.