4.2. Lesson: ダイナミック印刷レイアウトを作成する
基本的な地図レイアウトの作成方法を学んだので、さらに一歩進んで、地図の範囲やページのプロパティ(例えば、ページのサイズを変更したとき)に動的に適応する地図レイアウトを作成しましょう。また、作成日付も動的に適応します。
4.2.1. Follow Along: 動的マップキャンバスの作成
ESRIシェープファイル形式のデータセット
protected_areas.shp
、places.shp
、rivers.shp
およびwater.shp
をマップキャンバスに読み込み、そのプロパティを自分の良いように修正します。すべてがあなたの好みに合わせてレンダリングされ、シンボル化されたら、 プロジェクト ツールバーの 新規印刷レイアウト アイコンをクリックするか :menuselection:`新規印刷レイアウト`を選択します。新しい印刷レイアウトのタイトルを選択するようプロンプトが表示されます。
ヘッダと南アフリカのスウェレンダム近くの地域の地図で構成される地図レイアウトを作成します。レイアウトのマージンは7.5 mmで、ヘッダの高さは36mmでなければなりません。
キャンバス上に
main map
という地図アイテムを作成し、 レイアウト パネルに移動します。 変数 セクションまでスクロールして、 レイアウト の部分を探します。ここでは、動的印刷レイアウト全体で使用することができるいくつかの変数を設定します。 レイアウト パネルに移動して、 変数 セクションにスクロールダウンしてください。最初の変数がマージンを定義します。 ボタンを押し、sw_layout_margin
という名前を入力します。値を7.5
に設定します。もう一度 ボタンを押して、sw_layout_height_header
という名前を入力します。値を36
に設定します。これで、マップキャンバスの位置とサイズを変数によって自動的に作成する準備が整いました。地図アイテムが選択されていることを確認して、 アイテムプロパティ パネルに移動し、スクロールダウンして 位置とサイズ セクションを開いてください。 X の データによって定義された上書き をクリックし、 変数 の項目から
@sw_layout_margin
を選択します。Y の データによって定義された上書き をクリックし、 編集... を選択して数式を入力します:
to_real(@sw_layout_margin) + to_real(@sw_layout_height_header)
地図アイテムのサイズは、 幅 と 高さ の変数を使用して作成することができます。 幅 の データによって定義された上書き をクリックし、 編集... を再度選択します。数式を記入します:
@layout_pagewidth - @sw_layout_margin * 2
高さ の データによって定義された上書き をクリックし、 編集... を選択します。ここで数式を入力します:
@layout_pageheight - @sw_layout_height_header - @sw_layout_margin * 2
また、メインキャンバスの地図範囲の座標を含むグリッドを作成します。再び アイテムプロパティ に移動して、 グリッド セクションを選択します。 ボタンをクリックして、グリッドを挿入します。 グリッドの修正... をクリックして、QGISメインキャンバスで選択した地図の縮尺に従って、 X, Y と オフセット に 間隔 を設定します。 グリッドタイプ クロス は、私たちの目的にとてもよく合っています。
4.2.2. Follow Along: 動的ヘッダを作成する
再び アイテムプロパティ に移動し、 位置とサイズ セクションを開きます。 データ定義によって定義された上書き を使用して、 X と Y に
sw_layout_margin
変数を選択します。 幅 は式で定義されるものとします:@layout_pagewidth - @sw_layout_margin * 2
そして 高さ を
sw_layout_height_header
変数で指定します。ここでは、 ノートアイテムを追加 を使って、ヘッダーを分割するための1本の横線と2本の縦線を挿入します。1本の横線と2本の縦線を作成し、それぞれを
Horizontal line
,Vertical line 1
,Vertical line 2
という名前にします。横線:
変数
sw_layout_margin
を X にしますY の式に次を設定します:
@sw_layout_margin + 8
幅 の式に次を設定します:
@layout_pagewidth - @sw_layout_margin * 3 - 53.5
最初の縦線:
X の式に次を設定します:
@layout_pagewidth - @sw_layout_margin * 2 - 53.5
Y に変数
sw_layout_margin
を設定します高さは作ったヘッダと同じでなければならないので、 高さ には変数
sw_layout_height_header
を設定します。
2本目の縦線は、1本目の縦線の左側に配置されます。
X の式に次を設定します:
@layout_pagewidth - @sw_layout_margin * 2 - 83.5
Y に変数
sw_layout_margin
を設定します高さはもう一本の縦線と同じでなければならないので、変数
sw_layout_height_header
を 高さ に設定します。
以下の図は、動的レイアウトの構造を示しています。線によって作成された領域をいくつかの要素で埋めます。
4.2.3. Follow Along: 動的ヘッダのラベルを作成する
あなたのQGISプロジェクトのタイトルを自動的に含めることができます。タイトルは プロジェクトプロパティ で設定します。 ラベルを追加 ボタンでラベルを挿入し、
project title (variable)
という名前を入力します。 アイテムプロパティ パネルの メインプロパティ に式 を入力します:[%@project_title%]
ラベルの位置を設定します。
X には次の式を使います:
@sw_layout_margin + 3
Y には次の式を使います:
@sw_layout_margin + 0.25
幅 には次の式を使います:
@layout_pagewidth - @sw_layout_margin *2 - 90
高さ には
11.25
を入力します
外観 にあるフォントサイズに16 ptを設定します。
二つ目のラベルには、作成した地図の説明を入れます。ここでもラベルを挿入し、名前を
map description
とします。 メインプロパティ にmap description
というテキストを入力します。また、 メインプロパティ には、次のように入力します:printed on: [%format_date(now(),'dd.MM.yyyy')%]
ここでは、2つの
日付と時刻
関数 (now
とformat_date
) を使用しました。ラベルの位置を設定します。
X には次の式を使います:
@sw_layout_margin + 3
Y には次の式を使います:
@sw_layout_margin + 11.5
3つ目のラベルには、あなたの組織に関する情報を記載します。まず、 アイテムプロパティ の 変数 メニューで、いくつかの変数を作成します。レイアウト メニューから ボタンをクリックして、
o_department
,o_name
,o_adress
,o_postcode
という名前を入力してください。2行目には、あなたの組織に関する情報を入力してください。これらの変数は メインプロパティ セクションで使用します。メインプロパティ で次を入力します:
[% @o_name %] [% @o_department %] [% @o_adress %] [% @o_postcode %]
ラベルの位置を設定します。
X には次の式を使います:
@layout_pagewidth - @sw_layout_margin - 49.5
Y には次の式を使います:
@sw_layout_margin + 15.5
幅 を
49.00
にします高さ には次の式を使います:
@sw_layout_height_header - 15.5
4.2.4. Follow Along: 動的ヘッダに画像を追加する
画像を追加 ボタンを使って、ラベル
organisation information
の上に画像を配置することができます。organisation logo
という名前を入力した後、ロゴの位置とサイズを決定します:X には次の式を使います:
@layout_pagewidth - @sw_layout_margin - 49.5
Y には次の式を使います:
@sw_layout_margin + 3.5
幅 を
39.292
にします高さ を
9.583
にします
あなたの組織のロゴを入れるには、ロゴをホームディレクトリに保存し、
にパスを入力する必要があります。私たちのレイアウトにはまだ方位記号が必要です。これも 方位記号を追加 を使って挿入します。ここでは既定の方位記号を使用します。位置を定義します:
X には次の式を使います:
@layout_pagewidth - @sw_layout_margin * 2 - 78
Y には次の式を使います:
@sw_layout_margin + 9
幅 を
21.027
にします高さ を
21.157
にします
4.2.5. Follow Along: 動的ヘッダのスケールバーを作成する
ヘッダーにスケールバーを挿入するには、 スケールバーを追加 をクリックして、方位記号の上の矩形に配置します。 メインプロパティ の 地図 で
Main Map(Map 1)
を選択します。これは、QGISのメインキャンバスで選択した範囲に応じて縮尺が自動的に変更されることを意味します。 スタイル は 数値 を選択します。これは、スケールバーのないシンプルなスケールを挿入することを意味します。このスケールにはまだ位置とサイズが必要です。X には次の式を使います:
@layout_pagewidth - @sw_layout_margin * 2 - 78
Y には次の式を使います:
@sw_layout_margin + 1
幅 を
25
にします高さ を
8
にします基準点
を中央に置きます。
おめでとうございます。あなたは最初の動的な地図レイアウトを作成しました。レイアウトを見て、すべてが思い通りに見えるかどうかチェックしてみてください。動的な地図レイアウトは、 ページプロパティ を変更すると自動的に反応します。例えば、ページサイズをDIN A4からDIN A3に変更した場合、 ビューを更新 ボタンをクリックすると、ページデザインが適応されます。
4.2.6. What's Next?
次のページでは、完成すべき課題が与えられます。これによって、これまでに学んだテクニックを実践できます。