背景ボックス付きのテキストラベルを作成する方法


13

QGISポイントベクターレイヤーのポイントフィーチャ用にカスタムラベルを作成しようとしています。それを行うためにPythonプラグインを作成したいと思います。ラベルの後ろに色付きの長方形を表示する必要があります(または!)。ラベルは長い文字列であり、ラベル付けエンジンの式と条件を使用して作成されます。

最も簡単な方法は、ユーザーがアクティブレイヤーのラベルを好きなように設定し、プラグインがレイヤーのフィーチャからラベルテキストを取得し、テキスト文字列を使用してボックスを作成できるようにすることだと思いました。私の問題は、QGIS APIでこれらのテキスト文字列にアクセスする方法が見つからないことです。ラベル付けエンジンによって生成されたラベル文字列はQGISにどのように保存され、どのようにして取得できますか?


1
ラベルとは、個々のポイントフィーチャのラベルのことですか?
RK

はい。そして、作曲家レベルではなく、レイヤーレベルでそれをしたいのです。テキストコールアウトボックスを自動生成しようとしましたが、それらが印刷作曲家の機能であることに気付いていなかったためです。
MonsterMushroom

1
テキストの背後にある強いバッファ色について考えたことはありますか?私は1つの仕事でそれをしました。別の私にはちょうど....それは....一般的な要求と思われる、それはオプションではありませんでしたクライアントに語った
ウィリー・

1
強い色のバッファは私の現在のソリューションです。ただし、クライアントにはArcGISの実装に(スクリプトを使用して)ボックスがあり、QGISでも同じものを見たいと思っています。(システムを変更しようとしています。)私の現在の答えは、これは選択肢ではないということですが、決して楽しい答えではありません。ポケットから何かを引き出したいです。さらに、ラベルの周りのボックスは、私たちができることでなければなりません。理にかなっています。
MonsterMushroom

これに対する答えは、ラベルがラベリングエンジンによって生成され、マップキャンバスにレンダリングされると、文字列としてではなくsvgベクトルとして保存されるため、取り消せないということになると思います。これはブログで見ましたが、まだ確認することができませんでしたので、公式の回答ではありません。(また、シールドラベルが待望の2.0の追加として機能していることを学びました)
-MonsterMushroom

回答:


1

QGIS 2.0では、プラグインを必要とせずに、背景の長方形、楕円形またはカスタムSVG形状を作成できます。[レイヤープロパティ]に移動します| ラベル| 背景セクション。

ここに画像の説明を入力してください

何かをコーディングしたい場合。これが出発点かもしれません:http : //doc.qgis.org/api/qgspallabeling_8cpp_source.html#l04333


ラブリー!2.0は5種類のクールになります。息を切らして待っています。
MonsterMushroom
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.