5.2. Lesson: ダイナミック印刷レイアウトを作成する

基本的な地図レイアウトの作成は学習したので、さらに進んで、地図範囲とページプロパティ、ページのサイズを変更したときなど、に動的に適応する地図レイアウトを作成します。また、作成日は動的に調整されます。

5.2.1. moderate Follow Along: 動的地図キャンバスの作成

  1. ESRI Shapefile形式のデータセット protected_areas.shpplaces.shprivers.shp および water.shp を地図キャンバスにロードし、そのプロパティを自分の良いように修正します。

  2. すべて好みに合わせてレンダリングおよびシンボル化されたら、ツールバーの newLayout 新しい印刷レイアウト アイコンをクリックするか、 ファイル->新しい印刷レイアウト を選択します。新しい印刷レイアウトのタイトルを選択するよう求められます。

  3. ヘッダと南アフリカのスウェレンダム近くの地域の地図で構成される地図レイアウトを作成します。レイアウトのマージンは7.5 mmで、ヘッダの高さは36mmでなければなりません。

  4. キャンバスに main map という地図アイテムを作成し、 レイアウト パネルに移動します。 変数 セクションまでスクロールダウンし、 レイアウト 部分を見つけます。ここでは、動的印刷レイアウト全体で使用できる変数を設定します。 レイアウト パネルに移動し、 変数 セクションまでスクロールします。最初の変数は余白を定義します。 signPlus ボタンを押し sw_layout_margin という名前を入力します。値を 7.5 に設定します。もう一度 signPlus ボタンを押し、 sw_layout_height_header という名前を入力します。値を 36 に設定します。

  5. これで、変数を使用して地図キャンバスの位置とサイズを自動的に作成する準備が整いました。 アイテムプロパティ パネルに移動し、 位置とサイズ セクションを開きます。 XdataDefineExpressionOn データ定義上書き をクリックし、 変数 エントリから @sw_layout_margin を選択します。

  6. Y について dataDefineExpressionOn データ定義オーバーライドをクリックし、 :guilabel:`編集... を選択し、式を入力します

    to_real(@sw_layout_margin) + to_real(@sw_layout_height_header)
    
  7. 幅`および :guilabel:`高さ の変数を使用して、地図アイテムのサイズを作成できます。 dataDefineExpressionOn データ定義のオーバーライド をクリックし、再度 編集... を選択します。数式を入力します

    @layout_pagewidth - @sw_layout_margin * 2
    

    Click the dataDefineExpressionOn Data defined override for Height and choose Edit .... Here fill in the formula

    @layout_pageheight -  @sw_layout_height_header -  @sw_layout_margin * 2
    
  8. また、メインキャンバスマップ範囲の座標を含むグリッドを作成します。もう一度 アイテムプロパティ に移動し、 グリッド セクションを選択します。 signPlus ボタンをクリックしてグリッドを挿入します。 グリッドの変更... に移動し、QGISメインキャンバスで選択した地図縮尺に従って、X、Y、および オフセット間隔 を設定します。 グリッドタイプ クロス は、この目的に非常に適しています。

5.2.2. moderate Follow Along: 動的ヘッダを作成する

  1. addBasicShape 図形追加 ボタンでヘッダを含む長方形を挿入します。 アイテム パネルに header という名前を入力します。

  2. 再度、 アイテムのプロパティ に移動して、 位置とサイズ セクションを開きます。 dataDefineExpressionOn を使用する データ定義上書きX および Y に対して @sw_layout_margin 変数を選択します。 は式で定義されます

    @layout_pagewidth - @sw_layout_margin * 2
    

    and Height by the expression

    @sw_layout_height_header
    
  3. addNodesShape ノード項目の追加 を使用して、ヘッダを異なるセクションに分割するために、水平線と2本の垂直線を挿入します。水平線と2本の垂直線を作成します。名前を入力した後、式を挿入します

    @sw_layout_margin
    

    for X,

    @sw_layout_margin + 8
    

    for Y, and

    @layout_pagewidth -  @sw_layout_margin * 2 - 53.5
    

    for the Width.

  4. 最初の垂直線はこう定義されます

    @layout_pagewidth -  @sw_layout_margin * 2 - 53.5
    

    for X and

    @sw_layout_margin
    

    for Y. It's defined by the height of the header we created, so enter the expression

    @sw_layout_height_header
    

    高さ について。2番目の垂直線は最初の垂直線の左側に配置されます。式を入力してください

    @layout_pagewidth-@sw_layout_margin*2-83.5
    

    X

    @sw_layout_margin
    

    Y について。 高さ は最初の垂直線と同じ値を持ちます:

    @sw_layout_height_header
    

    以下の図は、動的レイアウトの構造を示しています。線によって作成された領域をいくつかの要素で埋めます。

../../../_images/dynamic_layout_structure.png

5.2.3. moderate Follow Along: 動的ヘッダのラベルを作成する

  1. QGISプロジェクトのタイトルは自動的に含めることができます。タイトルは プロジェクトプロパティ に設定されます。 addLabel レイアウトに新しいラベルを追加する ボタンでラベルを挿入し、 プロジェクトのタイトル(変数) という名前を入力します。 アイテムのプロパティ パネルの メインプロパティ に式を入力します

    [%@project title%]
    

    Set the position of the label with the expression

    @sw_layout_margin +3
    

    for X and

    @sw_layout_margin + 0.25
    

    for Y. Enter the expression

    @layout_pagewidth - @sw_layout_margin *2 -90
    

    について(これは105 mmの幅を与える必要があります)、そして 高さ11.25 を入力します。 Appearance で、フォントサイズを16 ptに設定します。

  2. 2番目のラベルには、作成したマップの説明が含まれます。繰り返しますが、ラベルを挿入し、 map description という名前を付けます。 メインプロパティ にも map description というテキストを入力します。ここで、日付も使用します

    printed on: [%format_date(now(),'dd.MM.yyyy')%]
    

    ここでもQGISで自動的に作成される変数を使用します。 X の場合、式を挿入します

    @sw_layout_margin + 3
    

    and for Y enter the expression

    @sw_layout_margin + 11.5
    
  3. 3番目のラベルには、組織に関する情報が含まれます。最初に、 アイテムプロパティ変数 メニューでいくつかの変数を作成します。 レイアウト メニューに移動し、下の図に示すように、その都度 signPlus ボタンをクリックして名前「o_department」、「o_name」、「o_adress」、「o_postcode」を入力します。 2行目に、組織に関する詳細情報を入力します。これらの変数は メインプロパティ セクションで使用します。位置は以下によって定義されます

    @layout_pagewidth - @sw_layout_margin - 49.5
    

    for X and

    @sw_layout_margin + 15.5
    

    for Y. Width is 49.00 and Height is defined by

    @sw_layout_height_header - 15.5
    
../../../_images/dynamic_layout_organisation.png

5.2.4. moderate Follow Along: 動的ヘッダに画像を追加する

  1. addNewImage レイアウトに新しい画像を追加 ボタンを使用して、ラベル 組織情報 の上に画像を配置します。名前 organization logo を入力した後、 X の位置を定義します

    @layout_pagewidth - @sw_layout_margin - 48.5
    

    and for Y with

    @sw_layout_margin + 3.5
    

    ロゴのサイズは、 39.292高さ9.583 に設定されます。組織のロゴを含めるには、ロゴをホームディレクトリに保存し、 メインプロパティ->画像ソース にパスを入力する必要があります。

  2. レイアウトにはまだ北向き矢印が必要です。これも addNewImage レイアウトに新しい画像を追加 を使用して挿入されます。名前を「北矢印」に設定し、 メインプロパティ に移動して、 Arrow_02.svg を選択します。位置は以下によって定義されます

    @layout_pagewidth - @sw_layout_margin - 68.25
    

    for X and by

    @sw_layout_margin + 22.5
    

    Y の場合。ここでは静的な数値を使用して 高さ21.02721.157 を定義します。

5.2.5. moderate Follow Along: 動的ヘッダのスケールバーを作成する

  1. ヘッダーにスケールバーを挿入するには、 addScalebar レイアウトに新しいスケールバーを追加 をクリックし、それを北向き矢印の上の長方形に配置します。 Main Properties の下の Mapmain map(Map 0) を選択します。つまり、QGISメインキャンバスで選択した範囲に応じて、スケールが自動的に変更されます。 Style Numeric を選択します。これは、スケールバーなしで単純なスケールを挿入することを意味します。スケールにはまだ位置とサイズが必要です。 X の場合

    @layout_pagewidth - @sw_layout_margin - 68.25
    

    Y について入力

    @sw_layout_margin + 6.5
    

    には 28,639 を入力し、 高さ には 13.100 を入力します。 基準点 は中央に配置する必要があります。

おめでとうございます!最初の動的地図レイアウトを作成しました。レイアウトを見て、すべてが思い通りに見えるかどうかを確認してください!動的地図レイアウトは、 ページプロパティ を変更すると自動的に反応します。たとえば、ページサイズをDIN A4からDIN A3に変更する場合は、[描画]をクリックするだけで、 ビューの更新 ボタンとページデザインが適応されます。

../../../_images/dynamic_layout.png

5.2.6. What's Next?

次のページでは、完成すべき課題が与えられます。これによって、これまでに学んだテクニックを実践できます。