ラベルの表記について

855 views
Skip to first unread message

b81

unread,
Jun 27, 2023, 9:22:54 PM6/27/23
to QGIS初心者質問グループ
csvtファイルでreal(5.2)というふうに小数点以下を指定して、属性テーブルでも小数点以下の桁数がちゃんと表示されているのですが、ラベルでは小数点以下の0の表示がされません。下記のようなかんじです。

150.00→150

小数点以下の0が表示されるようにするにはどのように設定すればいいのか知りたいです。
ご教授お願い致します。


b81

unread,
Jun 27, 2023, 10:16:50 PM6/27/23
to QGIS初心者質問グループ
一つのラベルを小数点以下の表記をさせる方法はわかったのですが、複数のラベルを以下のように
 "管渠番号" ||  '\n'  ||  "管種"   ||   "管径"  ||  '\n'  ||  "勾配"  || '\n'  || "延長"
単一定義で作った場合、延長は小数点以下2桁、勾配は小数点以下3桁というふうに指定する方法が知りたいです。
よろしくお願いします。
2023年6月28日水曜日 10:22:54 UTC+9 b81:
Message has been deleted
Message has been deleted
Message has been deleted
Message has been deleted
Message has been deleted
Message has been deleted
Message has been deleted

福岡

unread,
Jun 28, 2023, 8:51:24 PM6/28/23
to QGIS初心者質問グループ
b81 様

こんにちは

もっとスマートな方法があるような気がしますので、こんなアイディアもあるということでお願いいたします。
発想としては、数値をテキストにしてしまえば何とかなるというものです。

例えば小数点以下2桁を有効数字として数値をテキストに変換したい場合は、フィールド計算機で次のように処理します。

CASE
WHEN strpos("対象フィールド" ,'.') = 0 THEN "対象フィールド" || '.00'
WHEN length("2") - strpos("対象フィールド" ,'.') = 1 THEN "対象フィールド" || '0'
WHEN length("2") - strpos("対象フィールド" ,'.') = 2 THEN "対象フィールド"
END

strposで小数点より前の文字数を取得し、lengthで全体の文字数を取得します。
これらの差を条件として、適宜、末尾へゼロを追加します。
なお小数点以下はすべてゼロの場合、strposでは「0」を返してきますので、最初にこれを判定するようにしました

2023年6月28日水曜日 11:16:50 UTC+9 b81:
Message has been deleted

b81

unread,
Jun 29, 2023, 1:21:51 AM6/29/23
to QGIS初心者質問グループ
福岡様、回答ありがとうございます。
関数がまだ勉強不足で慣れてないので難しいですが、そういう方法もあるのですね。
フィールド計算機を使わずにする場合は、単一定義ではできなかったので、ラベルのルールに基づく定義で対象となるラベルの小数点の設定をそれぞれやって、それらのラベルを改行したいところで改行しようと試みましたが、うまくできませんでした。

2023年6月29日木曜日 9:51:24 UTC+9 福岡:

ありた

unread,
Jun 29, 2023, 6:11:34 PM6/29/23
to QGIS初心者質問グループ
こんにちは

小数点以下の指定した文字列変換は format 関数で可能です。
ただし、3桁ごとの区切り(カンマが使われるかはロケール設定による)も行われます。
もし区切りのカンマが不要であれば、さらに replace 関数を使う必要があるでしょう。

関数一覧はフィールド計算機にあり、使用方法なども確認できます。
様々な関数があるため、目を通しておくとよいと思います。

ありた

unread,
Jun 29, 2023, 7:05:11 PM6/29/23
to QGIS初心者質問グループ

すみません。 format_number ですね
2023年6月30日金曜日 7:11:34 UTC+9 ありた:

b81

unread,
Jun 29, 2023, 8:14:25 PM6/29/23
to QGIS初心者質問グループ
ありた様、回答ありがとうございます。format_numberという関数があるのですね。
初心者なので、まだまだ知識不足です。勉強させていただきます。

2023年6月30日金曜日 8:05:11 UTC+9 ありた:

b81

unread,
Jun 29, 2023, 10:22:30 PM6/29/23
to QGIS初心者質問グループ
ありた様
ご教授いただいたformat_numberを試したところ、無事解決いたしました。

"管渠番号" ||  '\n'  ||  "管種"   ||   "管径"  ||  '\n'  ||  format_number("勾配",1)  || '\n'  || format_number("延長",2)

ありがとうございました。



2023年6月30日金曜日 9:14:25 UTC+9 b81:
Reply all
Reply to author
Forward
0 new messages