2017年06月03日

【QGIS】枠外にラベルを置くときにラベルまでラインを引く方法

注意!この記事はかなり古い情報です。現在のQGISとは操作方法が違いますので注意してください

元ネタは、「QGIS Label with a line to a feature」というYoutubeの手順紹介です。

以前から、ラベルを枠外に表示したいとき、そのラベルまでラインを自動で引きたいと思っていました。
こんな感じで。
Image 2017_06_03_232536.png

FaceBookでこの動画を見て歓喜しました。
忘れないように操作方法などをメモっておこうと思います。
動画ではポイントとポリゴンの設定方法を紹介していますが、ここからは、ポリゴンの設定方法をメモしておきます。
なお、自分用のメモなので、あまり画像は貼りません。




1.属性データにラベル位置を設定する「x」と「y」フィールドを追加する


 まずは、属性データにラベルの位置を記録するX座標とY座標を入力するフィールドを作ります。
 新しいフィールドは、フィールド計算機で作成します。
 ポリゴンの中心位置を求める計算式は、X座標「  x( centroid(  $geometry  )  ) 」、Y座標「  y( centroid(  $geometry  )  )」で求められます。
 ただし、いびつなポリゴンの場合には、ポリゴンの外の座標が記録されることもあるので、「realcentroid」プラグインで、ポリゴンの中での中心付近のポイントを作って、そのポイント座標をフィールド計算機の計算式「$x」「$y」で取得してフィールドを作り、「場所で属性を結合する」でX座標とY座標をポリゴンに移してもいいと思います。



2.ラベルにX座標、Y座標を指定する


 レイヤプロパティの「ラベル」で、ポリゴンに表示したいラベルを選択し、「配置」の「X」「Y」にそれぞれ追加した座標値が入力されているフィールドを指定します。
 ここで、一度「適用」をクリックすると、ポリゴンの中心付近にラベルが表示されます。(座標フィールドに入力されている座標値が中心付近の座標のため)



3.スタイルでラベルにラインを引く


 ポリゴンのスタイルを開き、「+」ボタンでシンボルを追加します。追加したシンボルは、ポリゴンの塗りつぶしシンボルより上に移動します。
 追加したシンボルの種類を、「ジオメトリジェネレーター」にします。
 「ジオメトリタイプ」を「Line String」にします。
 計算式の欄に「make_line(  centroid(  $geometry  ) , make_point(  "x" , "y"  )  ) 」と入力します。
 「centroid(  $geometry  )」は、ポリゴンの中心点座標です。
 「 make_point(  "x" , "y"  ) 」は、ラベルの位置です。
 つまり、この計算式は、ポリゴンの中心点からラベルの位置までラインを引きなさい。と言う計算式です。

 Image 2017_06_03_235317.png

 「realcentroid」プラグインで中心点をずらしている場合には、もう一つそのずらした中心点のX座標とY座標を記録したフィールドが必要です。
この場合は、計算式の欄に「make_line(  make_point(  "x1" , "y1"  ) , make_point(  "x2" , "y2"  )  ) 」と入力します。
(x1、y1が中心付近の座標、x2、y2がラベルの位置の座標の場合)



 これで、ラベルを移動すると、自動的にラベルにラインが付いて、そのラベルの地物がわかるようになります。



続きを読む
ラベル:QGIS
posted by kouichi at 23:44| Comment(0) | QGIS | このブログの読者になる | 更新情報をチェックする
×

この広告は90日以上新しい記事の投稿がないブログに表示されております。