QGISポイントベクターレイヤーのポイントフィーチャ用にカスタムラベルを作成しようとしています。それを行うためにPythonプラグインを作成したいと思います。ラベルの後ろに色付きの長方形を表示する必要があります(または!)。ラベルは長い文字列であり、ラベル付けエンジンの式と条件を使用して作成されます。
最も簡単な方法は、ユーザーがアクティブレイヤーのラベルを好きなように設定し、プラグインがレイヤーのフィーチャからラベルテキストを取得し、テキスト文字列を使用してボックスを作成できるようにすることだと思いました。私の問題は、QGIS APIでこれらのテキスト文字列にアクセスする方法が見つからないことです。ラベル付けエンジンによって生成されたラベル文字列はQGISにどのように保存され、どのようにして取得できますか?
1
ラベルとは、個々のポイントフィーチャのラベルのことですか?
—
RK
はい。そして、作曲家レベルではなく、レイヤーレベルでそれをしたいのです。テキストコールアウトボックスを自動生成しようとしましたが、それらが印刷作曲家の機能であることに気付いていなかったためです。
—
MonsterMushroom
テキストの背後にある強いバッファ色について考えたことはありますか?私は1つの仕事でそれをしました。別の私にはちょうど....それは....一般的な要求と思われる、それはオプションではありませんでしたクライアントに語った
—
ウィリー・
強い色のバッファは私の現在のソリューションです。ただし、クライアントにはArcGISの実装に(スクリプトを使用して)ボックスがあり、QGISでも同じものを見たいと思っています。(システムを変更しようとしています。)私の現在の答えは、これは選択肢ではないということですが、決して楽しい答えではありません。ポケットから何かを引き出したいです。さらに、ラベルの周りのボックスは、私たちができることでなければなりません。理にかなっています。
—
MonsterMushroom
これに対する答えは、ラベルがラベリングエンジンによって生成され、マップキャンバスにレンダリングされると、文字列としてではなくsvgベクトルとして保存されるため、取り消せないということになると思います。これはブログで見ましたが、まだ確認することができませんでしたので、公式の回答ではありません。(また、シールドラベルが待望の2.0の追加として機能していることを学びました)
—
-MonsterMushroom