ラベルを表示する位置を変更する方法を説明します。
プライマリキーを使う方法と座標フィールドを使う方法の2種類があります。
プライマリキーを使う方法は、プロジェクトファイルにラベルの位置を記録します。
一方、座標フィールドを使う方法は、GeoPackageやシェープファイルにラベルの位置を記録します。
なお、QGISのラベルの基本的な設定方法については「ラベル機能の基本的な設定方法。ラベルを表示する方法から見た目の調整まで」にまとめています。
ラベルとは地物の周囲に属性情報を表示する方法です。 以下の例では札幌市営地下鉄南北線の位置の近くに駅名のラベルを表示しています。 ラベルを表示すると図形だけの表示よりも情報がわかりやすい地図を作成することができます。
ラベルを表示する
始めにラベルを表示します。
オリジナルのポリゴンデータを使用して説明します。
このデータには「fid」フィールドに固有の番号、「名称」フィールドに「五稜郭」という属性情報が入っています。
なお、函館市の五稜郭の形状を示すポリゴンです。
ポリゴンの作成方法はQGISでポリゴンを作成して形状を修正する方法で説明しています。
ラベルを表示するにはレイヤ名の上で右クリックし、出てきたメニューから「プロパティ」を選択します。
そして「レイヤプロパティ」ウインドウの左側に並んでいる文字列から「ラベル」を選択します。
選択メニューが一つだけ表示されて「なし」が選択されています。
この選択メニューを「なし」から「単一定義」に変更します。
すると、設定項目がたくさん表示されます。
上部にある「値」と書かれた選択メニューでフィールドを選択すると、そのフィールドの情報が地物のラベルに表示されます。
選択メニューの右側にある▼をクリックするとフィールド一覧が表示されますので該当するフィールドを選択します。
今回の例では「名称」フィールドをラベルに表示します。
選択できたらウインドウの一番下にある「OK」をクリックし地図に戻ります。
するとポリゴンの中心部に「五稜郭」という文字が表示されています。
ラベルを表示する前は以下のようにポリゴンの中心部には何も表示されていませんでした。
このラベルを好きなところに移動する方法を説明します。
2種類の方法を紹介します。
プライマリキーを使う方法
より簡単な方法です。
ただし、この方法はラベルの位置をプロジェクトファイル(.qgz)に保存します。
そのため、GeoPackageやShapeファイルを他のプロジェクトで使用するときにはラベルの位置が引き継がれません。
ウインドウ上部のツールバーにある「ラベル、ダイアグラムを移動」アイコンをクリックします。
するとカーソルが十字マークに変化しラベルを移動できるモードに変わります。
十字マークになったカーソルでラベルをクリックします。
すると「補助テーブル:プライマリキーを選択」というウインドウが出現します。
この選択メニューでは、属性情報にダブりがないフィールドを選択します。
属性情報にダブりがないフィールドとは、1,2,3,・・・・みたいに連番になっているなど異なる行で同じデータが出てこないフィールドです。
GeoPackage形式のファイルの場合は自動で作成される「fid」フィールドが使えます
シェープファイルで該当するフィールドがない場合は新規にそのようなフィールドを作成する必要があります。
作成方法が不明な場合は座標フィールドを使う方法で設定すると簡単です。
例で使用しているのはGeoPackage形式のファイルなので、選択メニューから「fid」を選択して「OK」をクリックします。
するとウインドウが消えます。
これでラベルを移動できる状態になりました。
ラベルをクリックするとカーソルの近くに長方形の形状が出現し、カーソルを動かすと一緒に追随します。
移動したい場所にカーソルを動かし、再度クリックすると長方形の場所にラベルを移動できます。
プロジェクトを保存すると、次回開いた時もラベルは移動した位置に表示されます。
プライマリキーで設定したラベル位置をリセットする方法
位置の設定は初期状態に戻すことができます。
「レイヤプロパティ」ウインドウの左側に並んでいる文字列から「補助テーブル」を選択します。
左下にある「補助テーブル」という選択メニューから「削除」を選択します。
すると、確認ウインドウが表示されて削除してもよいか確認されるので「はい」を選択します。
選択できたらウインドウの一番下にある「OK」をクリックし地図に戻ります。
するとラベルが元の位置に表示されています。
座標フィールドを使う方法
スタンダードな方法です。
この方法ではGeoPackageやShapeファイル自体にラベルの位置を記録するので、他のプロジェクトにもラベル位置を引き継ぐことができます。
位置を指定するフィールドを作成する
始めにラベル位置を記録するためのフィールドを作成します。
ラベル位置はXとYの座標で記録するため、作成するフィールドはX座標とY座標の二つになります。
フィールドを作成するには、レイヤパネルのラベルを表示するレイヤ名の上で右クリックし、出てきたメニューから「属性テーブルを開く」を選択します。
編集モードに切り替えます。
編集モードへの切り替えはツールバーの一番左にある鉛筆マークのアイコンをクリックします。
ツールバーの中ほどにある「新規フィールド」を選択します。
「フィールドを追加」ウインドウが表示されるので以下のように設定を行います。
- 「名前」欄に「x」と入力
- 「型」欄は「小数点付き数値(real)」を選択
入力できたら「OK」をクリックします。
これで「x」という空のフィールドが作成できました。
もう一つ、以下の内容でフィールドを作成します。
- 「名前」欄に「y」と入力
- 「型」欄は「小数点付き数値(real)」を選択
二つのフィールドを作成できたら編集モードを終了して保存します。
編集モードを終了するには、再度ツールバーの鉛筆マークのアイコンをクリックします。
ラベル位置を記録するためのフィールドが二つできました。
ラベルの配置設定を行う
レイヤ名の上で右クリックし、出てきたメニューから「プロパティ」を選択します。
そして「レイヤプロパティ」ウインドウの左側に並んでいる文字列から「ラベル」を選択します。
左下の設定パネルから「配置」を選択すると、右側の表示内容が変化します。
下の方にある「データによる定義」欄でラベルの位置が記録されたフィールドを指定します。
「座標X」の右側にある長方形が二つ並んでいるようなマークをクリックします。
出てきたメニューから「フィールドの型」を選択すると、フィールド一覧が表示されるので上で作成した「x」を選択します。
フィールドを設定するとアイコンが黄色に変わります。
隣の「座標Y」でも同様の手順で「y」を選択します。
両方とも設定できたらウインドウ下の「OK」をクリックして地図に戻ります。
ラベルの位置を移動する
ここまで設定できたら実際にラベルを移動できます。
移動するには、ウインドウ上部のツールバーにある「ラベル、ダイアログを移動」アイコンをクリックします。
するとカーソルが十字マークに変化しラベルを移動できるモードに変わります。
十字マークになったカーソルでラベルをクリックし、移動先で再度クリックするとその場所へラベルを移動できます。
この方法では移動先の座標がxとyフィールドに書き込まれます。
ラベルをクリックした時点で自動的に編集モードに入りますので、ラベルの移動が終わったらツールバーの鉛筆アイコンを選択して編集モードを解除します。
ラベルの移動ができたらレイヤの属性テーブルを開いて確認してみましょう。
すると先ほど作成したフィールドに座標の値が記録されています。