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", '')。いずれにせよ、あなたは答えとしてそれを投稿すべきだと思います;)
ジョセフ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.