18.2.4. عنصر التسمية¶
العنصر Label أداة تساعد على تزيين خريطتك بنصوص تساعد على فهمها؛ فقد تكون العنوان أو المؤلف أو مصادر البيانات أو أي معلومات أخرى... يمكنك إضافة تسمية باستخدام الأداة
Add Label باتباع تعليمات إنشاء العناصر والتعامل معها بالطريقة نفسها الموضحة في التعامل مع عناصر التخطيط.
افتراضيًا، يوفّر عنصر التسمية نصًا افتراضيًا يمكنك تخصيصه باستخدام لوحة Item Properties الخاصة به. إضافة إلى الخصائص المشتركة للعناصر، يتمتع هذا العنصر بالوظائف التالية (انظر شكل 18.24):
شكل 18.24 لوحة خصائص عنصر التسمية¶
18.2.4.1. الخصائص الرئيسية¶
المجموعة Main properties هي المكان الذي تُدخل فيه نص التسمية. يمكن أن يكون النص ثابتًا، أو ديناميكيًا باستخدام دوال التعبيرات والمتغيرات، و/أو منسَّقًا بلغة HTML. يجب إحاطة الأجزاء الديناميكية من التسمية بـ [% و %] لكي تُفسَّر وتُقيَّم على هذا الأساس.
لاستخدام التعبيرات في التسميات، يمكنك النقر على الزر Insert/Edit Expression...، وكتابة صيغتك كالمعتاد، وعند تطبيق نافذة الحوار يضيف QGIS تلقائيًا المحارف المحيطة.
تلميح
عند النقر على الزر Insert/Edit Expression... دون تحديد أي شيء في مربع النص، سيُلحق التعبير الجديد بالنص الموجود. أما إذا أردت تعديل تعبير موجود، فإن السلوك يتغير حسب تحديدك: إذا كان هناك نص محدد وكان التحديد داخل تعبير (بين '[%' و '%]')، أو إذا لم يُحدَّد أي نص لكن المؤشر داخل تعبير، فسيُحدَّد التعبير بأكمله. وفي جميع الحالات الأخرى، يبقى التحديد كما هو.
نظرًا لأن الخرائط تحتوي عادة على بعض المعلومات النصية الشائعة (التاريخ، المؤلف، العنوان، رقم الصفحة، ...)، يوفّر QGIS وصولًا مباشرًا إلى التعبيرات أو المتغيرات المقابلة: اضغط على الزر Dynamic text لاختيارها وإدراجها في تسميتك.
نصيحة
يمكن استخدام القائمة العلوية لإنشاء عنصر تسمية جديد مملوء بالتعبير المعرَّف مسبقًا المختار.
يمكن تحويل تسمية ديناميكية إلى ثابتة: اضغط على السهم المنسدل المجاور للزر Insert/Edit Expression... واختر Convert to Static. ستُقيَّم أي أجزاء ديناميكية من محتويات التسمية وتُستبدل بقيمها الحالية. ويمكنك بعد ذلك تعديل النص الناتج يدويًا عند الحاجة.
يمكن تفسير التسميات كشيفرة HTML: فعّل
Render as HTML. يمكنك الآن إدراج وسوم أو أنماط HTML، أو عنوان URL، أو صورة قابلة للنقر ترتبط بصفحة ويب، أو شيء أكثر تعقيدًا...
تجمع الشيفرة التالية بين عرض HTML والتعبيرات، للحصول على تسمية متقدمة، وستُنتج شكل 18.25:
<html>
<head>
<style>
/* Define some custom styles, with attribute-based size */
name {color:red; font-size: [% ID %]px; font-family: Verdana; text-shadow: grey 1px 0 10px;}
use {color:blue;}
</style>
</head>
<body>
<!-- Information to display -->
<u>Feature Information</u>
<ul style="list-style-type:disc">
<li>Feature Id: [% ID %]</li>
<li>Airport: <name>[% NAME %]</name></li>
<li>Main use: <use>[% USE %]</use></li>
</ul>
Last check: [% concat( format_date( "control_date", 'yyyy-MM-dd'), ' by <b><i>', @user_full_name, '</i></b>' ) %]
<!-- Insert an image -->
<p align=center><img src="path/to/logos/qgis-logo-made-with-color.svg" alt="QGIS icon" style="width:80px;height:50px;"</p>
</body>
</html>
شكل 18.25 الاستفادة من تسمية بتنسيق HTML¶
18.2.4.2. المظهر¶
حدّد خط النص ونمطه بالنقر على الزر Font. في القائمة Label Font يمكنك استخدام بعض خيارات تنسيق نص التسمية.
يمكنك تحديد هوامش أفقية ورأسية مختلفة بوحدة
mm. وهذا هو الهامش من حافة عنصر التخطيط. ويمكن وضع التسمية خارج حدود عنصر التسمية، مثلًا لمحاذاة عناصر التسمية مع عناصر أخرى. وفي هذه الحالة عليك استخدام قيم سالبة للهامش.استخدام محاذاة النص طريقة أخرى لتحديد موضع تسميتك. ويمكن أن تكون:
Left أو Center أو Right أو Justify بالنسبة إلى Horizontal alignment
و Top أو Vertical Center أو Bottom بالنسبة إلى Vertical alignment.
نصيحة
تغيير حجم عنصر التسمية في التخطيط ليلائم محتوياته
افتراضيًا، لا يعتمد حجم عنصر التسمية في التخطيط على النص الذي يحتويه. فقد يكون كبيرًا جدًا مع مساحة فارغة لا فائدة منها أو صغيرًا جدًا فيُخفي جزءًا من النص. لتغيير حجم التسمية تلقائيًا بحيث تلائم النص الموجود فيها تمامًا، انقر نقرًا مزدوجًا على أحد مقابض التسمية المربعة. ستضبط التسمية حجمها ليطابق النص، بالتوسيع أو التقليص حسب الحاجة، بينما يبقى المقبض المقابل من التسمية ثابتًا في مكانه. وهذا يتيح لك التأكد بسرعة من أن التسمية تلائم النص دون تغيير حجمها يدويًا. فمثلًا، يؤدي النقر المزدوج على المقبض الأوسط الأيسر إلى تحريك الجانب الأيسر من التسمية.
شكل 18.26 خصائص مظهر عنصر التسمية¶
18.2.4.3. استكشاف التعبيرات في عنصر التسمية¶
فيما يلي بعض الأمثلة على التعبيرات التي يمكنك استخدامها لملء عنصر التسمية بمعلومات مفيدة - تذكّر أن الشيفرة، أو على الأقل الجزء المحسوب منها، يجب أن تُحاط بـ [% و %] في الإطار Main properties:
عرض عنوان بقيمة "field1" لمعلم الأطلس الحالي:
'This is the map for ' || "field1"
أو، مكتوبًا في القسم Main properties:
This is the map for [% "field1" %]
إضافة ترقيم صفحات لمعالم الأطلس المعالَجة (مثل
Page 1/10):concat( 'Page ', @atlas_featurenumber, '/', @atlas_totalfeatures )
إرجاع أسماء المطارات لمعلم منطقة الأطلس الحالي، استنادًا إلى سماتها المشتركة:
aggregate( layer := 'airports', aggregate := 'concatenate', expression := "NAME", filter := fk_regionId = attribute( @atlas_feature, 'ID' ), concatenator := ', ' )
أو، إذا كانت هناك علاقة سمات مضبوطة:
relation_aggregate( relation := 'airports_in_region_relation', aggregate := 'concatenate', expression := "NAME", concatenator := ', ' )
إرجاع أسماء المطارات الواقعة ضمن معلم منطقة الأطلس الحالي، استنادًا إلى علاقتها المكانية:
aggregate( layer := 'airports', aggregate := 'concatenate', expression := "NAME", filter := contains( geometry( @parent ), $geometry ), concatenator := ', ' )أو:
array_to_string( array:= overlay_contains( layer := 'airports', expression := "NAME" ), delimiter:= ', ' )
إرجاع إحداثي X الأدنى لامتداد العنصر
Map 1:x_min( map_get( item_variables( 'Map 1' ), 'map_extent' ) )
استرجاع أسماء الطبقات في العنصر
Map 1في التخطيط الحالي، وتنسيقها بحيث يكون اسم واحد في كل سطر:array_to_string( array_foreach( map_get( item_variables( 'Map 1' ), 'map_layers' ), -- retrieve the layers list layer_property( @element, 'name' ) -- retrieve each layer name ), '\n' -- converts the list to string separated by breaklines )
عرض قائمة الطبقات مع نصوص تراخيصها (حقوق الاستخدام) في العنصر
Map 1في التخطيط. يجب عليك أولًا ملء خصائص Access metadata للطبقات.array_to_string( map_credits( 'Map 1', true ) )