12.1. نافذة خصائص الطبقة المتجهية

توفر نافذة الحوار Layer Properties للطبقة المتجهية إعدادات عامة لإدارة مظهر معالم الطبقة على الخريطة (الترميز، التسميات، المخططات البيانية)، والتفاعل مع الفأرة (الإجراءات، تلميحات الخريطة، تصميم النماذج). كما توفر معلومات عن الطبقة.

للوصول إلى نافذة الحوار Layer Properties:

  • في لوحة Layers، انقر نقرًا مزدوجًا على الطبقة، أو انقر بزر الفأرة الأيمن واختر Properties... من القائمة المنبثقة؛

  • انتقل إلى القائمة Layer ► Layer Properties... عندما تكون الطبقة محددة.

توفر نافذة الحوار Layer Properties للطبقة المتجهية الأقسام التالية:

metadata المعلومات

system المصدر

symbology الترميز ([1])

labelingSingle التسميات ([1])

labelmask القناع ([1])

3d العرض ثلاثي الأبعاد ([1])

diagram المخططات البيانية

sourceFields الحقول

formView نموذج البيانات الوصفية

join الربط

auxiliaryStorage التخزين المساعد

action الإجراءات

display العرض

rendering التصيير

temporal الزمني

expression المتغيرات

elevationscale الارتفاع

editMetadata البيانات الوصفية (Metadata)

dependencies الاعتماديات

legend مفتاح الخريطة

overlay QGIS Server

digitizing الرقمنة

تبويبات الإضافات الخارجية ([2])

نصيحة

مشاركة خصائص أنماط الطبقة كليًا أو جزئيًا

تتيح لك القائمة Style في أسفل نافذة الحوار استيراد هذه الخصائص أو جزء منها أو تصديرها من/إلى عدة وجهات (ملف، الحافظة، قاعدة بيانات). راجع إدارة الأنماط المخصصة.

ملاحظة

لأن خصائص الطبقات المضمّنة (انظر تضمين الطبقات من مشاريع خارجية) (الترميز، التسميات، الإجراءات، القيم الافتراضية، النماذج...) تُستمد من ملف المشروع الأصلي، ولتجنّب التغييرات التي قد تُخلّ بهذا السلوك، تُجعل نافذة خصائص الطبقة غير متاحة لهذه الطبقات.

12.1.1. خصائص المعلومات

التبويب metadata Information للقراءة فقط، وهو مكان مفيد للحصول سريعًا على معلومات موجزة وبيانات وصفية (Metadata) عن الطبقة الحالية. والمعلومات المتوفرة هي:

  • معلومات عامة مثل الاسم في المشروع، ومسار المصدر، وقائمة الملفات المساعدة، ووقت آخر حفظ والحجم، ومزوّد البيانات المستخدم

  • الخصائص المخصّصة، المستخدمة لتخزين معلومات إضافية عن الطبقة في المشروع النشط. وقد تشمل الخصائص المخصّصة الافتراضية ملاحظات الطبقة، و عناصر واجهة مفتاح الخريطة، و متغيرات الطبقة، و خصائص النموذج... ويمكن إنشاء مزيد من الخصائص المخصّصة وإدارتها باستخدام PyQGIS، وتحديدًا عبر الدالة setCustomProperty().

  • معلومات مبنية على مزوّد بيانات الطبقة: صيغة التخزين، ونوع الشكل الهندسي، وترميز مصدر البيانات، والامتداد، وعدد المعالم...

  • نظام الإحداثيات المرجعي: الاسم، والوحدات، والطريقة، والدقة، والمرجع (أي ما إذا كان ثابتًا أو ديناميكيًا)

  • معلومات مأخوذة من البيانات الوصفية المعبّأة: الوصول، والامتدادات، والروابط، وجهات الاتصال، والسجل التاريخي...

  • ومعلومات متعلقة بشكلها الهندسي (الامتداد المكاني، CRS...) أو بسماتها (عدد الحقول، وخصائص كل منها...).

12.1.2. خصائص المصدر

system استخدم هذا التبويب لتعريف الإعدادات العامة للطبقة المتجهية.

../../../_images/vector_source_menu.png

شكل 12.1 تبويب المصدر في نافذة خصائص الطبقة المتجهية

12.1.2.1. إعدادات

  • عيّن Layer name مختلفًا عن اسم ملف الطبقة، ليُستخدم في تعريف الطبقة داخل المشروع (في Layers Panel، وفي التعبيرات، وفي مفتاح خريطة تخطيط الطباعة، ...)

  • اعتمادًا على صيغة البيانات، اختر Data source encoding إذا لم يكتشفه QGIS بشكل صحيح.

12.1.2.2. نظام الإحداثيات المرجعي

12.1.2.3. مصدر الطبقة والشكل الهندسي

  • اعتمادًا على مزوّد البيانات، تشير مجموعة Layer source إلى مسار مصدر مجموعة البيانات وتتيح استبدال الطبقة المحمّلة:

    • عندما تكون الطبقة مخزّنة كملف على القرص، حرّر المسار المعروض في مربع النص أو اضغط ... Browse لاختيار ملف آخر على القرص. ولا يلزم أن تتشارك الطبقتان حقول السمات أو نوع الشكل الهندسي أو صيغة الملف.

    • عندما تكون الطبقة مقدَّمة من خدمة ArcGIS Feature، يمكن تعديل إعدادات المصادقة الخاصة بها مع إبقاء تفاصيل الاتصال بالخدمة دون تغيير.

  • Create spatial index (للصيغ المدعومة من OGR فقط): يساعد على تسريع تصيير الطبقة واسترجاع الأشكال الهندسية للمعالم.

  • Update extents: تحديث معلومات الامتداد للطبقة.

12.1.2.4. منشئ الاستعلامات

يمكن الوصول إلى نافذة حوار منشئ الاستعلامات عبر الزر Query Builder أسفل التبويب Source في نافذة خصائص الطبقة، ضمن مجموعة Provider feature filter.

يوفر منشئ الاستعلامات واجهة تتيح لك تعريف مجموعة فرعية من معالم الطبقة باستخدام عبارة WHERE شبيهة بلغة SQL، وعرض النتيجة في النافذة الرئيسية. وما دام الاستعلام نشطًا، فلن يتاح في المشروع إلا المعالم المطابقة لنتيجته.

يمكنك استخدام سمة واحدة أو أكثر من سمات الطبقة لتعريف المرشّح في Query Builder. ويظهر استخدام أكثر من سمة في شكل 12.2. وفي المثال، يجمع المرشّح بين السمات

  • toa (حقل DateTime: cast("toa" as character) > '2017-05-17' و cast("toa" as character) < '2019-12-24T18:00:00')،

  • name (حقل String: "name" > 'S') و

  • FID (حقل Integer: FID > 10)

باستخدام العوامل AND و OR و NOT والأقواس. وتعمل هذه الصياغة (بما في ذلك صيغة DateTime للحقل toa) مع مجموعات بيانات GeoPackage.

يُطبَّق المرشّح على مستوى مزوّد البيانات (OGR، PostgreSQL، MS SQL Server...)، لذا تعتمد الصياغة على مزوّد البيانات (فمثلًا DateTime غير مدعوم في صيغة ESRI Shapefile). التعبير الكامل:

cast("toa" as character) > '2017-05-17' AND
cast("toa" as character) < '2019-12-24T18:00:00' AND
NOT ("name" > 'S' OR FID > 10)

يمكنك أيضًا فتح نافذة الحوار Query Builder باستخدام الخيار Filter... من القائمة Layer أو من القائمة السياقية للطبقة. وتساعدك الأقسام Fields و Values و Operators في نافذة الحوار على بناء الاستعلام الشبيه بـ SQL المعروض في مربع Provider specific filter expression.

../../../_images/queryBuilder.png

شكل 12.2 منشئ الاستعلامات

تحتوي القائمة Fields على جميع حقول الطبقة. لإضافة عمود سمة إلى حقل عبارة SQL WHERE، انقر نقرًا مزدوجًا على اسمه أو اكتبه ببساطة في مربع SQL.

يعرض إطار Values قيم الحقل المحدد حاليًا. لعرض جميع القيم الفريدة لحقل ما، انقر على الزر All. أما لعرض أول 25 قيمة فريدة من العمود، فانقر على الزر Sample. لإضافة قيمة إلى حقل عبارة SQL WHERE، انقر نقرًا مزدوجًا على اسمها في قائمة القيم. ويمكنك استخدام مربع البحث أعلى إطار القيم لتصفح قيم السمات والعثور عليها بسهولة في القائمة.

يحتوي قسم المعاملات (Operators) على جميع المعاملات القابلة للاستخدام. لإضافة معامل إلى حقل عبارة SQL WHERE، انقر الزر المناسب. تتوفر المعاملات العلائقية ( = ، > ، ...)، ومعامل مقارنة النصوص (LIKE)، والمعاملات المنطقية (AND، OR، ...).

يساعدك الزر Test على فحص استعلامك، ويعرض مربع رسالة بعدد المعالم التي تحقق الاستعلام الحالي. استخدم الزر Clear لمسح استعلام SQL وإعادة الطبقة إلى حالتها الأصلية (أي تحميل جميع المعالم بالكامل). ويمكن حفظ الاستعلام عبر Save... كملف .QQF، أو تحميله من ملف إلى نافذة الحوار عبر Load....

عند تطبيق مرشّح، يتعامل QGIS مع المجموعة الفرعية الناتجة كما لو كانت الطبقة بأكملها. فمثلًا إذا طبّقت المرشّح أعلاه لـ 'Borough' ("TYPE_2" = 'Borough')، فلن تتمكن من عرض Anchorage أو الاستعلام عنها أو حفظها أو تحريرها، لأنها من نوع 'Municipality' وبالتالي ليست جزءًا من المجموعة الفرعية.

نصيحة

يُشار إلى الطبقات المرشّحة في لوحة الطبقات

في لوحة Layers، تُدرج الطبقة المرشّحة وبجانبها أيقونة indicatorFilter Filter تعرض الاستعلام المستخدم عند مرور الفأرة فوق الزر. ويؤدي النقر المزدوج على الأيقونة إلى فتح نافذة الحوار Query Builder للتحرير. ويمكن تحقيق ذلك أيضًا عبر القائمة Layer ► Filter....

12.1.3. خصائص الترميز

يوفر لك التبويب symbology Symbology أداة شاملة لتصيير بياناتك المتجهية وترميزها. يمكنك استخدام أدوات مشتركة بين جميع البيانات المتجهية، إضافةً إلى أدوات ترميز خاصة صُمّمت لأنواع البيانات المتجهية المختلفة. غير أن جميع الأنواع تتشارك بنية نافذة الحوار التالية: في الجزء العلوي يوجد عنصر واجهة يساعدك على إعداد التصنيف والرمز المستخدم للمعالم، وفي الأسفل عنصر الواجهة تصيير الطبقة.

نصيحة

التبديل السريع بين تمثيلات مختلفة للطبقة

باستخدام القائمة Styles ► Add أسفل نافذة الحوار Layer Properties، يمكنك حفظ ما تحتاجه من الأنماط. والنمط هو تركيبة من جميع خصائص الطبقة (مثل الترميز، والتسميات، والمخططات البيانية، ونموذج الحقول، والإجراءات...) كما تريدها. ثم بدّل ببساطة بين الأنماط من القائمة السياقية للطبقة في Layers Panel للحصول تلقائيًا على تمثيلات مختلفة لبياناتك.

نصيحة

تصدير ترميز الطبقات المتجهية

يمكنك تصدير ترميز الطبقات المتجهية من QGIS إلى ملفات Google *.kml و *.dxf و MapInfo *.tab. افتح فقط قائمة زر الفأرة الأيمن للطبقة وانقر على Save As... لتحديد اسم ملف الإخراج وصيغته. وفي نافذة الحوار، استخدم القائمة Symbology export لحفظ الترميز إما بوصفه Feature symbology ► أو Symbol layer symbology ►. وإذا كنت قد استخدمت طبقات الرموز، فيُنصح باستخدام الإعداد الثاني.

12.1.3.1. تصيير المعالم

أداة الرسم (Renderer) مسؤولة عن رسم المعلم مع الرمز الصحيح. وبغض النظر عن نوع الشكل الهندسي للطبقة، هناك أربعة أنواع شائعة من أدوات الرسم: الرمز المفرد، والمصنّف، والمتدرّج، والمبني على القواعد. وتتوفر لطبقات النقاط أدوات رسم إزاحة النقاط، وتجميع النقاط، والخريطة الحرارية، بينما يمكن أيضًا تصيير طبقات المضلعات باستخدام أدوات رسم المعالم المدمجة، والمضلعات المعكوسة، و 2.5 D.

لا توجد أداة رسم للألوان المتصلة، لأنها في الحقيقة مجرد حالة خاصة من أداة الرسم المتدرّجة. ويمكن إنشاء أداتي الرسم المصنّفة والمتدرّجة بتحديد رمز وتدرّج لوني، وستُعيّنان ألوان الرموز بشكل مناسب. ولكل نوع من البيانات (النقاط والخطوط والمضلعات) تتوفر أنواع طبقات رموز متجهية. واعتمادًا على أداة الرسم المختارة، توفر نافذة الحوار أقسامًا إضافية مختلفة.

ملاحظة

إذا غيّرت نوع أداة الرسم أثناء ضبط نمط طبقة متجهية، فستُحفظ الإعدادات التي أجريتها على الرمز. انتبه إلى أن هذا الإجراء يعمل لتغيير واحد فقط، فإذا كرّرت تغيير نوع أداة الرسم فستفقد إعدادات الرمز.

أداة رسم الرمز المفرد

تُستخدم أداة الرسم singleSymbol Single Symbol لتصيير جميع معالم الطبقة باستخدام رمز واحد يعرّفه المستخدم. راجع محدد الرموز لمزيد من المعلومات عن تمثيل الرموز.

../../../_images/singlesymbol_ng_line.png

شكل 12.3 خصائص الرمز المفرد للخطوط

أداة الرسم بلا رموز

أداة الرسم nullSymbol No Symbols حالة استخدام خاصة من أداة رسم الرمز المفرد، إذ تطبّق التصيير نفسه على جميع المعالم. وباستخدام هذه الأداة لن يُرسم أي رمز للمعالم، لكن التسميات والمخططات البيانية والأجزاء الأخرى غير الرمزية ستظل معروضة.

لا يزال بالإمكان إجراء تحديدات على الطبقة في لوحة الخريطة، وستُصيَّر المعالم المحددة برمز افتراضي. كما ستُعرض المعالم قيد التحرير.

هذه الأداة اختصار مفيد للطبقات التي لا تريد أن تعرض لها سوى التسميات أو المخططات البيانية، وتُغنيك عن تصيير رموز بتعبئة/حدود شفافة تمامًا لتحقيق ذلك.

أداة الرسم المصنّفة

تُستخدم أداة الرسم categorizedSymbol Categorized لتصيير معالم طبقة باستخدام رمز يعرّفه المستخدم يعكس مظهره القيم المنفصلة لحقل أو تعبير.

../../../_images/categorysymbol_ng_line.png

شكل 12.4 خيارات الترميز المصنّف

لاستخدام الترميز المصنّف لطبقة:

  1. اختر Value التصنيف: يمكن أن يكون حقلًا موجودًا أو تعبيرًا تكتبه في المربع أو تبنيه باستخدام الزر expression المرتبط به. ويُغني استخدام التعبيرات في التصنيف عن إنشاء حقل لأغراض الترميز فقط (مثلًا إذا كانت معايير التصنيف مشتقة من سمة واحدة أو أكثر).

    يمكن أن يكون التعبير المستخدم لتصنيف المعالم من أي نوع؛ فمثلًا يمكن أن:

    • يكون مقارنة. في هذه الحالة يُرجع QGIS القيمتين 1 (True) و 0 (False). بعض الأمثلة:

      myfield >= 100
      $id = @atlas_featureid
      myfield % 2 = 0
      within( $geometry, @atlas_geometry )
      
    • يجمع بين حقول مختلفة:

      concat( field_1, ' ', field_2 )
      
    • يكون عملية حسابية على الحقول:

      myfield % 2
      year( myfield )
      field_1 + field_2
      substr( field_1, -3 )
      
    • يُستخدم لتحويل القيم الخطية إلى فئات منفصلة، مثلًا:

      CASE WHEN x > 1000 THEN 'Big' ELSE 'Small' END
      
    • يجمع عدة قيم منفصلة في فئة واحدة، مثلًا:

      CASE
      WHEN building IN ('residence', 'mobile home') THEN 'residential'
      WHEN building IN ('commercial', 'industrial') THEN 'Commercial and Industrial'
      END
      

    نصيحة

    مع أنه يمكنك استخدام أي نوع من التعبيرات لتصنيف المعالم، فقد يكون من الأسهل لبعض التعبيرات المعقدة استخدام التصيير المبني على القواعد.

  2. اضبط الرمز الذي سيُستخدم رمزًا أساسيًا لجميع الفئات؛

  3. حدّد التدرّج اللوني، أي نطاق الألوان الذي يُختار منه اللون المطبّق على كل رمز.

    إلى جانب الخيارات المشتركة لـ عنصر واجهة التدرّج اللوني، يمكنك تطبيق unchecked Random Color Ramp على الفئات. ويمكنك النقر على المدخل Shuffle Random Colors لتوليد مجموعة جديدة من الألوان العشوائية إن لم تكن راضيًا.

  4. ثم انقر على الزر Classify لإنشاء فئات من القيم المميزة للحقل أو التعبير المحدد.

  5. لكل فئة، يمكنك تحرير العمود Legend إلى تسمية أوضح دلالة (تُستخدم في لوحة Layers وفي تخطيط الطباعة).

    ملاحظة

    ضع في اعتبارك أن بعض القيم قد تستخدم عناصر واجهة لا تعرض القيمة الفعلية المخزّنة في الحقل. فمثلًا قد يخزّن عنصر واجهة مربع الاختيار القيمتين 1 و 0 لحالتي التحديد وعدمه، بينما يعرض التسميتين True و False. وفي هذه الحالة، لتصنيف المعالم بناءً على حالة مربع الاختيار، عليك استخدام القيم المخزّنة (1 و 0) في التعبير. وسيستخدم QGIS تلقائيًا القيمة المعروضة لعمود مفتاح الخريطة.

  6. طبّق التغييرات عبر Apply إذا لم يكن التحديث المباشر مستخدمًا، وسيُصيَّر كل معلم على لوحة الخريطة برمز فئته.

    افتراضيًا، يُلحق QGIS فئة all other values بالقائمة. ومع أنها فارغة في البداية، فإن هذه الفئة تُستخدم فئةً افتراضية لأي معلم لا يقع ضمن الفئات الأخرى (مثلًا عند إنشاء معالم بقيم جديدة لحقل/تعبير التصنيف).

يمكن إجراء تعديلات إضافية على التصنيف الافتراضي:

  • يمكنك إضافة فئات جديدة عبر symbologyAdd Add، وإزالة الفئات المحددة عبر symbologyRemove Remove، وحذفها كلها عبر Delete All، أو حذف الفئات غير المستخدمة عبر Delete Unused.

  • يمكن تعطيل فئة بإلغاء تحديد مربع الاختيار على يسار اسم الفئة؛ فتُخفى المعالم المقابلة على الخريطة.

  • اسحب الصفوف وأفلتها لإعادة ترتيب الفئات

  • لتغيير رمز فئة أو قيمتها أو مفتاح خريطتها، انقر نقرًا مزدوجًا على العنصر.

يعرض النقر بزر الفأرة الأيمن فوق العنصر (العناصر) المحدد قائمة سياقية تتيح:

  • Copy Symbol و Paste Symbol، وهي طريقة ملائمة لتطبيق تمثيل العنصر على عناصر أخرى

  • Change Color...: تغيير لون الرمز (الرموز) المحدد

  • Change Opacity...: تغيير عتامة الرمز (الرموز) المحدد

  • Change Output Unit...: تغيير وحدة إخراج الرمز (الرموز) المحدد

  • Change Width...: تغيير عرض رمز (رموز) الخطوط المحدد

  • Change Size...: تغيير حجم رمز (رموز) النقاط المحدد

  • Change Angle...: تغيير زاوية رمز (رموز) النقاط المحدد

  • Merge Categories: يجمع عدة فئات محددة في فئة واحدة. ويتيح ذلك تنسيقًا أبسط للطبقات ذات العدد الكبير من الفئات، إذ يمكن تجميع فئات مميزة عديدة في مجموعة أصغر وأسهل إدارة من الفئات تنطبق على قيم متعددة.

    نصيحة

    بما أن الرمز الذي يُحتفظ به للفئات المدمجة هو رمز الفئة المحددة الأعلى في القائمة، فقد ترغب في نقل الفئة التي تريد إعادة استخدام رمزها إلى الأعلى قبل الدمج.

  • Unmerge Categories: فك دمج الفئات التي دُمجت سابقًا

تظهر الفئات المنشأة أيضًا في تسلسل هرمي شجري في لوحة Layers. انقر نقرًا مزدوجًا على مدخل في مفتاح الخريطة لتحرير الرمز المعيّن له، وانقر بزر الفأرة الأيمن لتحصل على مزيد من الخيارات.

تتيح القائمة Advanced الوصول إلى خيارات لتسريع التصنيف أو ضبط تصيير الرموز بدقة:

  • Match to saved symbols: باستخدام مكتبة الرموز، يعيّن لكل فئة رمزًا يمثل اسمُه قيمةَ تصنيف الفئة

  • Match to symbols from file...: بالاستعانة بملف رموز، يعيّن لكل فئة رمزًا يمثل اسمُه قيمةَ تصنيف الفئة

  • Symbol levels... لتعريف ترتيب تصيير الرموز.

أداة الرسم المتدرّجة

تُستخدم أداة الرسم graduatedSymbol Graduated لتصيير جميع معالم طبقة باستخدام رمز يعرّفه المستخدم يعكس لونه أو حجمه انتماء سمة محددة للمعلم إلى فئة ما.

كما في أداة الرسم المصنّفة، تتيح لك أداة الرسم المتدرّجة تعريف الدوران ومقياس الحجم من أعمدة محددة.

وعلى غرار أداة الرسم المصنّفة أيضًا، تتيح لك اختيار:

  • Value التصنيف: يمكن أن يكون حقلًا موجودًا أو تعبيرًا تكتبه في المربع أو تبنيه باستخدام الزر expression المرتبط به. ويُغني استخدام التعبيرات في التدريج عن إنشاء حقل لأغراض الترميز فقط (مثلًا إذا كانت معايير التصنيف مشتقة من سمة واحدة أو أكثر).

  • الرمز (باستخدام نافذة حوار محدِّد الرموز)

  • صيغة مفتاح الخريطة والدقة

  • الطريقة المستخدمة لتغيير الرمز: اللون أو الحجم

  • الألوان (باستخدام قائمة التدرّج اللوني) إذا اختيرت طريقة اللون

  • الحجم (باستخدام نطاق الحجم ووحدته)

بعد ذلك يمكنك استخدام تبويب المدرّج التكراري (Histogram) الذي يعرض مدرّجًا تكراريًا تفاعليًا لقيم الحقل أو التعبير المعيّن. ويمكن نقل فواصل الفئات أو إضافتها باستخدام عنصر واجهة المدرّج التكراري.

ملاحظة

يمكنك استخدام لوحة الملخص الإحصائي للحصول على مزيد من المعلومات عن طبقتك المتجهية. راجع فريق الملخص الإحصائي.

بالعودة إلى تبويب الفئات (Classes)، يمكنك تحديد عدد الفئات وكذلك طريقة تصنيف المعالم ضمن الفئات (باستخدام قائمة Mode). والطرق المتاحة هي:

  • Equal Count (Quantile) (العدد المتساوي/الكميات): تحتوي كل فئة على العدد نفسه من العناصر (فكرة مخطط الصندوق).

  • Equal Interval (الفترات المتساوية): يكون لكل فئة الحجم نفسه (مثلًا مع القيم من 1 إلى 16 وأربع فئات، يكون حجم كل فئة أربعة).

  • Fixed Interval (الفترة الثابتة): يكون لكل فئة مدى ثابت من القيم (مثلًا مع القيم من 1 إلى 16 وحجم فترة 4، تكون الفئات 1-4 و 5-8 و 9-12 و 13-16).

  • Logarithmic scale (المقياس اللوغاريتمي): مناسب للبيانات ذات المدى الواسع من القيم. فئات ضيقة للقيم المنخفضة وفئات واسعة للقيم الكبيرة (مثلًا للأعداد العشرية في المدى [0..100] مع فئتين، تكون الفئة الأولى من 0 إلى 10 والثانية من 10 إلى 100).

  • Natural Breaks (Jenks) (الفواصل الطبيعية): يُقلَّل التباين داخل كل فئة إلى أدنى حد بينما يُعظَّم التباين بين الفئات.

  • Pretty Breaks (الفواصل الأنيقة): تحسب سلسلة من نحو n+1 قيمة مستديرة متساوية التباعد تغطي مدى القيم في x. وتُختار القيم بحيث تكون 1 أو 2 أو 5 مضروبة في قوة للعدد 10. (استنادًا إلى الدالة pretty من بيئة R الإحصائية https://www.rdocumentation.org/packages/base/topics/pretty).

  • Standard Deviation (الانحراف المعياري): تُبنى الفئات اعتمادًا على الانحراف المعياري للقيم.

يعرض مربع القائمة في الجزء الأوسط من التبويب Symbology الفئات مع مداها وتسمياتها ورموزها التي ستُصيَّر.

انقر على الزر Classify لإنشاء الفئات باستخدام الطريقة المختارة. ويمكن تعطيل كل فئة بإلغاء تحديد مربع الاختيار على يسار اسم الفئة.

لتغيير رمز الفئة و/أو قيمتها و/أو تسميتها، انقر نقرًا مزدوجًا على العنصر الذي تريد تغييره.

يعرض النقر بزر الفأرة الأيمن فوق العنصر (العناصر) المحدد قائمة سياقية تتيح:

  • Copy Symbol و Paste Symbol، وهي طريقة ملائمة لتطبيق تمثيل العنصر على عناصر أخرى

  • Change Color...: تغيير لون الرمز (الرموز) المحدد

  • Change Opacity...: تغيير عتامة الرمز (الرموز) المحدد

  • Change Output Unit...: تغيير وحدة إخراج الرمز (الرموز) المحدد

  • Change Width...: تغيير عرض رمز (رموز) الخطوط المحدد

  • Change Size...: تغيير حجم رمز (رموز) النقاط المحدد

  • Change Angle...: تغيير زاوية رمز (رموز) النقاط المحدد

يبيّن المثال في شكل 12.5 نافذة حوار التصيير المتدرّج للطبقة major_rivers من مجموعة بيانات QGIS النموذجية.

../../../_images/graduatedsymbol_ng_line.png

شكل 12.5 خيارات الترميز المتدرّج

تظهر الفئات المنشأة أيضًا في تسلسل هرمي شجري في لوحة Layers. انقر نقرًا مزدوجًا على مدخل في مفتاح الخريطة لتحرير الرمز المعيّن له، وانقر بزر الفأرة الأيمن لتحصل على مزيد من الخيارات.

الرمز التناسبي والتحليل متعدد المتغيرات

الرمز التناسبي والتحليل متعدد المتغيرات ليسا من أنواع التصيير المتاحة في القائمة المنسدلة لتصيير الترميز. لكن باستخدام خيارات التجاوز المعرّف بالبيانات المطبّقة على أي من خيارات التصيير السابقة، يتيح لك QGIS عرض بيانات النقاط والخطوط بهذا التمثيل.

إنشاء رمز تناسبي

لتطبيق تصيير تناسبي:

  1. طبّق أولًا على الطبقة أداة رسم الرمز المفرد.

  2. ثم عيّن الرمز الذي سيُطبّق على المعالم.

  3. حدّد العنصر في المستوى الأعلى من شجرة الرموز، واستخدم الزر dataDefine Data-defined override بجانب الخيار Size (لطبقة النقاط) أو Width (لطبقة الخطوط).

  4. اختر حقلًا أو أدخل تعبيرًا، وسيطبّق QGIS لكل معلم قيمة الإخراج على الخاصية ويعيد تحجيم الرمز تناسبيًا في لوحة الخريطة.

    عند الحاجة، استخدم الخيار Size assistant... من القائمة dataDefine لتطبيق تحويل ما (أسّي، flannery...) على إعادة تحجيم الرمز (راجع استخدام واجهة المساعد المعرَّف بالبيانات لمزيد من التفاصيل).

يمكنك اختيار عرض الرموز التناسبية في لوحة الطبقات وفي عنصر مفتاح الخريطة في تخطيط الطباعة: افتح القائمة المنسدلة Advanced أسفل نافذة الحوار الرئيسية للتبويب Symbology واختر Data-defined size legend... لضبط عناصر مفتاح الخريطة (راجع مفتاح الخريطة للحجم المعرّف بالبيانات للتفاصيل).

إنشاء تحليل متعدد المتغيرات

يساعدك تصيير التحليل متعدد المتغيرات على تقييم العلاقة بين متغيرين أو أكثر، فمثلًا يمكن تمثيل أحدهما بتدرّج لوني والآخر بالحجم.

أبسط طريقة لإنشاء تحليل متعدد المتغيرات في QGIS هي:

  1. طبّق أولًا تصييرًا مصنّفًا أو متدرّجًا على طبقة، مستخدمًا النوع نفسه من الرموز لجميع الفئات.

  2. ثم طبّق ترميزًا تناسبيًا على الفئات:

    1. انقر على الزر Change فوق إطار التصنيف: ستظهر لك نافذة الحوار محدد الرموز.

    2. أعد تحجيم حجم طبقة الرمز أو عرضها باستخدام عنصر الواجهة dataDefine للتجاوز المعرّف بالبيانات كما رأينا أعلاه.

كما في الرمز التناسبي، يمكن إضافة الترميز المُحجَّم إلى شجرة الطبقات فوق رموز الفئات المصنّفة أو المتدرّجة باستخدام ميزة مفتاح الخريطة للحجم المعرّف بالبيانات. ويتوفر كلا التمثيلين أيضًا في عنصر مفتاح الخريطة في تخطيط الطباعة.

../../../_images/multivariate_example.png

شكل 12.6 مثال متعدد المتغيرات مع مفتاح خريطة للحجم المُحجَّم

أداة الرسم المبنية على القواعد

القواعد هي تعبيرات QGIS تُستخدم للتمييز بين المعالم وفقًا لسماتها أو خصائصها من أجل تطبيق إعدادات تصيير محددة عليها. ويمكن تداخل القواعد، وينتمي المعلم إلى فئة ما إذا كان ينتمي إلى جميع مستويات التداخل الأعلى.

وبذلك صُمّمت أداة الرسم ruleBasedSymbol Rule-based لتصيير جميع معالم طبقة باستخدام رموز يعكس مظهرها انتماء المعلم المحدد إلى فئة دقيقة التفصيل.

لإنشاء قاعدة:

  1. فعّل صفًا موجودًا بالنقر المزدوج عليه (افتراضيًا يضيف QGIS رمزًا بلا قاعدة عند تفعيل نمط التصيير) أو انقر على الزر symbologyEdit Edit rule أو symbologyAdd Add rule.

  2. في نافذة الحوار Edit Rule التي تُفتح، يمكنك تعريف تسمية تساعدك على تمييز كل قاعدة. وهي التسمية التي ستُعرض في Layers Panel وفي مفتاح خريطة مؤلِّف الطباعة أيضًا.

  3. أدخل تعبيرًا يدويًا في مربع النص بجانب الخيار radioButtonOn Filter أو اضغط الزر expression بجانبه لفتح نافذة حوار منشئ التعبيرات.

  4. استخدم الدوال المتوفرة وسمات الطبقة لبناء تعبير يرشّح المعالم التي تريد استرجاعها. اضغط الزر Test للتحقق من نتيجة الاستعلام.

  5. يمكنك إدخال تسمية أطول لإكمال وصف القاعدة.

  6. يمكنك استخدام الخيار checkbox Scale Range لتعيين مقاييس الرسم التي يجب أن تُطبَّق عندها القاعدة.

  7. أخيرًا، اضبط الرمز المستخدم لهذه المعالم.

  8. ثم اضغط OK.

يُضاف صف جديد يلخّص القاعدة إلى نافذة خصائص الطبقة. يمكنك إنشاء ما يلزم من القواعد باتباع الخطوات أعلاه أو بنسخ قاعدة موجودة ولصقها. اسحب القواعد وأفلتها فوق بعضها لتداخلها وتنقيح معالم القاعدة الأعلى في فئات فرعية.

يمكن الجمع بين أداة الرسم المبنية على القواعد وأداتي الرسم المصنّفة أو المتدرّجة. فعند تحديد قاعدة، يمكنك تنظيم معالمها في فئات فرعية باستخدام القائمة المنسدلة Refine selected rules. وتظهر الفئات المنقّحة كعناصر فرعية للقاعدة في تسلسل هرمي شجري، ويمكنك، كما في القاعدة الأم، تعيين ترميز وقاعدة كل فئة. ويمكن أن يعتمد التنقيح الآلي للقواعد على:

  • scales (مقاييس الرسم): بالاستعانة بقائمة من مقاييس الرسم، ينشئ هذا الخيار مجموعة من الفئات تنطبق عليها نطاقات مقاييس الرسم المختلفة التي يعرّفها المستخدم. ويمكن أن يكون لكل فئة جديدة مبنية على المقياس ترميزها وتعبير تعريفها الخاص. وقد يكون ذلك مثلًا طريقة ملائمة لعرض المعالم نفسها برموز مختلفة عند مقاييس رسم مختلفة، أو لعرض مجموعة من المعالم فقط حسب المقياس (مثلًا المطارات المحلية عند مقياس رسم كبير مقابل المطارات الدولية عند مقياس رسم صغير).

  • categories (الفئات): يطبّق أداة الرسم المصنّفة على المعالم الواقعة ضمن القاعدة المحددة.

  • أو ranges (المدى): يطبّق أداة الرسم المتدرّجة على المعالم الواقعة ضمن القاعدة المحددة.

تظهر الفئات المنقّحة كعناصر فرعية للقاعدة في تسلسل هرمي شجري، ويمكنك كما سبق تعيين ترميز كل فئة. وتُكدَّس رموز القواعد المتداخلة فوق بعضها، لذا احرص عند اختيارها. ويمكن أيضًا إلغاء تحديد unchecked Symbols في نافذة الحوار Edit rule لتجنّب تصيير رمز معيّن في الكدسة.

في نافذة الحوار Edit rule، يمكنك تجنّب كتابة جميع القواعد والاستفادة من الخيار radioButtonOff Else لالتقاط جميع المعالم التي لا تطابق أيًا من القواعد الأخرى في المستوى نفسه. ويمكن تحقيق ذلك أيضًا بكتابة Else في العمود Rule في نافذة الحوار Layer Properties ► Symbology ► Rule-based.

يعرض النقر بزر الفأرة الأيمن فوق العنصر (العناصر) المحدد قائمة سياقية تتيح:

  • Copy و Paste، وهي طريقة ملائمة لإنشاء عنصر (عناصر) جديد بناءً على عنصر (عناصر) موجود

  • Copy Symbol و Paste Symbol، وهي طريقة ملائمة لتطبيق تمثيل العنصر على عناصر أخرى

  • Change Color...: تغيير لون الرمز (الرموز) المحدد

  • Change Opacity...: تغيير عتامة الرمز (الرموز) المحدد

  • Change Output Unit...: تغيير وحدة إخراج الرمز (الرموز) المحدد

  • Change Width...: تغيير عرض رمز (رموز) الخطوط المحدد

  • Change Size...: تغيير حجم رمز (رموز) النقاط المحدد

  • Change Angle...: تغيير زاوية رمز (رموز) النقاط المحدد

  • Refine Current Rule: يفتح قائمة فرعية تتيح تنقيح القاعدة الحالية باستخدام scales أو categories أو Ranges. وهو مماثل لاختيار القائمة المقابلة أسفل نافذة الحوار.

يؤدي إلغاء تحديد صف في نافذة حوار أداة الرسم المبنية على القواعد إلى إخفاء معالم تلك القاعدة والقواعد المتداخلة فيها من لوحة الخريطة.

تظهر القواعد المنشأة أيضًا في تسلسل هرمي شجري في مفتاح الخريطة. انقر نقرًا مزدوجًا على مدخل في مفتاح الخريطة لتحرير الرمز المعيّن له، وانقر بزر الفأرة الأيمن لتحصل على مزيد من الخيارات.

يبيّن المثال في شكل 12.7 نافذة حوار التصيير المبني على القواعد لطبقة rivers من مجموعة بيانات QGIS النموذجية.

../../../_images/rulesymbol_ng_line.png

شكل 12.7 خيارات الترميز المبني على القواعد

أداة رسم إزاحة النقاط

تأخذ أداة الرسم pointDisplacementSymbol Point Displacement معالم النقاط الواقعة ضمن مسافة تسامح معيّنة من بعضها، وتضع رموزها حول مركز ثقلها وفق طرق توزيع مختلفة. وقد تكون هذه طريقة ملائمة لإظهار جميع معالم طبقة نقاط حتى لو كانت لها الموقع نفسه (مثل المرافق داخل مبنى).

لضبط أداة رسم إزاحة النقاط، عليك:

  1. تعيين Center symbol: كيف ستبدو النقطة الافتراضية في المركز

  2. اختيار نوع Renderer: كيف تريد تصنيف المعالم في الطبقة (مفرد، مصنّف، مبني على القواعد...)

  3. الضغط على الزر Renderer Settings... لضبط ترميز المعالم وفقًا لأداة الرسم المختارة

  4. تحديد مسافة التسامح Distance التي تُعدّ المعالم القريبة ضمنها متداخلة، فتُزاح حول النقطة الافتراضية نفسها. وتدعم وحدات الرموز الشائعة.

  5. ضبط Placement methods:

    • Ring (حلقة): يضع جميع المعالم على دائرة يعتمد نصف قطرها على عدد المعالم المراد عرضها.

    • Concentric rings (حلقات متحدة المركز): يستخدم مجموعة من الدوائر متحدة المركز لإظهار المعالم.

    • Grid (شبكة): يولّد شبكة منتظمة مع رمز نقطة عند كل تقاطع.

  6. توضع الرموز المزاحة على Displacement lines. ومع أن الحد الأدنى لتباعد خطوط الإزاحة يعتمد على أداة رسم رموز النقاط، فلا يزال بإمكانك تخصيص بعض إعداداتها مثل Stroke width و Stroke color و Size adjustment (مثلًا لإضافة مزيد من التباعد بين النقاط المصيَّرة).

  7. استخدم خيارات المجموعة Labels لتسمية النقاط: توضع التسميات قرب الرمز المزاح، لا عند الموقع الحقيقي للمعلم.

    1. اختر Label attribute: حقل من الطبقة يُستخدم للتسمية

    2. حدّد خصائص Label font وحجمه

    3. اختر Label color

    4. عيّن Label distance factor: لكل معلم نقطي، يُزيح التسمية عن مركز الرمز بما يتناسب مع الحجم القطري للرمز.

    5. فعّل unchecked Use scale dependent labeling إذا أردت عرض التسميات فقط عند مقاييس رسم أكبر من Minimum map scale معيّن.

../../../_images/poi_displacement.png

شكل 12.8 نافذة حوار إزاحة النقاط

ملاحظة

لا تغيّر أداة رسم إزاحة النقاط الشكل الهندسي للمعالم، أي أن النقاط لا تُنقل من مواقعها بل تبقى في أماكنها الأصلية. والتغييرات مرئية فقط لأغراض التصيير. استخدم بدلًا من ذلك خوارزمية المعالجة Points displacement (إزاحة النقاط) إذا أردت إنشاء معالم مزاحة.

أداة رسم تجميع النقاط

على خلاف أداة الرسم pointDisplacementSymbol Point Displacement التي تُفرّق مواقع معالم النقاط المتقاربة أو المتراكبة، تجمع أداة الرسم pointClusterSymbol Point Cluster النقاط المتجاورة في رمز علامة واحد مُصيَّر. فالنقاط الواقعة ضمن مسافة محددة من بعضها تُدمج في رمز واحد. ويُجرى تجميع النقاط بناءً على أقرب مجموعة تتكوّن، بدلًا من مجرد إسنادها إلى أول مجموعة ضمن مسافة البحث.

من نافذة الحوار الرئيسية يمكنك:

  1. تعيين الرمز الذي يمثل تجمّع النقاط في Cluster symbol؛ ويعرض التصيير الافتراضي عدد المعالم المجمّعة بفضل المتغير @cluster_size في طبقة رمز العلامة الخطية (Font marker).

  2. اختيار نوع Renderer، أي كيف تريد تصنيف المعالم في الطبقة (مفرد، مصنّف، مبني على القواعد...)

  3. الضغط على الزر Renderer Settings... لضبط ترميز المعالم كالمعتاد. لاحظ أن هذا الترميز لا يظهر إلا على المعالم غير المجمّعة، إذ يُطبَّق Cluster symbol في غير ذلك. وكذلك عندما تنتمي جميع معالم النقاط في تجمّع ما إلى فئة التصيير نفسها، وبالتالي يُطبَّق عليها اللون نفسه، فإن ذلك اللون يمثل المتغير @cluster_color للتجمّع.

  4. تحديد Distance القصوى التي تؤخذ في الحسبان لتجميع المعالم. وتدعم وحدات الرموز الشائعة.

../../../_images/cluster_symbol.png

شكل 12.9 نافذة حوار تجميع النقاط

ملاحظة

لا تغيّر أداة رسم تجميع النقاط الشكل الهندسي للمعالم، أي أن النقاط لا تُنقل من مواقعها بل تبقى في أماكنها الأصلية. والتغييرات مرئية فقط لأغراض التصيير. استخدم بدلًا من ذلك خوارزمية المعالجة التجميع العنقودي K-means أو التجميع العنقودي DBSCAN إذا أردت إنشاء معالم مبنية على التجميع.

أداة رسم المعالم المدمجة

تتيح أداة الرسم mergedFeatures Merged Features «دمج» معالم المساحات والخطوط في كائن واحد قبل التصيير، لضمان تمثيل الرموز المعقدة أو المعالم المتداخلة برمز كارتوغرافي موحّد ومتصل.

أداة رسم المضلعات المعكوسة

تتيح أداة الرسم invertedSymbol Inverted Polygon للمستخدم تعريف رمز لتعبئة ما هو خارج مضلعات الطبقة. وكما سبق، يمكنك اختيار أدوات رسم فرعية، وهي: الرمز المفرد، أو المتدرّجة، أو المصنّفة، أو المبنية على القواعد، أو أداة رسم 2.5D.

../../../_images/inverted_polygon_symbol.png

شكل 12.10 نافذة حوار المضلع المعكوس

أداة رسم الخريطة الحرارية

باستخدام أداة الرسم heatmapSymbol Heatmap يمكنك إنشاء خرائط حرارية ديناميكية حية لطبقات النقاط (المتعددة). يمكنك تحديد Radius الخريطة الحرارية بالمليمترات أو النقاط أو البكسلات أو وحدات الخريطة أو البوصات، واختيار Color ramp لنمط الخريطة الحرارية وتحريره، واستخدام شريط تمرير للموازنة بين سرعة التصيير وجودته. كما يمكنك تعريف حد Maximum value و Weight points by باستخدام حقل أو تعبير.

استخدم dataDefine Data defined override للتحكم ديناميكيًا في Radius و Maximum value بناءً على سمات بياناتك. فمثلًا يمكن تحديد نصف قطر نقطة الخريطة الحرارية من سمة عدد السكان، أو أن تعتمد القيمة القصوى على مدى زمني.

عند إضافة معلم أو إزالته، تحدّث أداة رسم الخريطة الحرارية نمط الخريطة الحرارية تلقائيًا. وسيُعرض Color ramp كشريط مفتاح خريطة، ويمكنك في Legend settings تعيين Labels للقيمتين Maximum و Minimum. كما يمكنك تغيير اتجاه مفتاح الخريطة ومنحاه في Layout.

../../../_images/heatmap_symbol.png

شكل 12.11 نافذة حوار الخريطة الحرارية

أداة رسم 2.5D

باستخدام أداة الرسم 25dSymbol 2.5D يمكن إنشاء تأثير 2.5D على معالم طبقتك. ابدأ باختيار قيمة Height (بوحدات الخريطة)، ويمكنك لذلك استخدام قيمة ثابتة أو أحد حقول طبقتك أو تعبيرًا. وعليك أيضًا اختيار Angle (بالدرجات) لإعادة تمثيل موقع الناظر (0° تعني الغرب، وتتزايد عكس اتجاه عقارب الساعة). استخدم خيارات الضبط المتقدمة لتعيين Roof Color و Wall Color. وإذا أردت محاكاة الإشعاع الشمسي على جدران المعالم، فاحرص على تحديد الخيار checkbox Shade walls based on aspect. كما يمكنك محاكاة ظل بتعيين Color و Size (بوحدات الخريطة).

../../../_images/2_5dsymbol.png

شكل 12.12 نافذة حوار 2.5D

نصيحة

استخدام تأثير 2.5D مع أدوات رسم أخرى

بعد الانتهاء من ضبط النمط الأساسي في أداة رسم 2.5D، يمكنك تحويله إلى أداة رسم أخرى (مفرد، مصنّف، متدرّج). وستُحفظ تأثيرات 2.5D وتتاح لك جميع الخيارات الخاصة بأداة الرسم الأخرى لضبطها بدقة (وبهذه الطريقة يمكنك مثلًا الحصول على رموز مصنّفة بتمثيل 2.5D جميل أو إضافة تنسيق إضافي لرموز 2.5D). وللتأكد من أن الظل و"المبنى" نفسه لا يتداخلان مع المعالم القريبة الأخرى، قد تحتاج إلى تفعيل مستويات الرموز ( Advanced ► Symbol levels...). وتُحفظ قيمتا الارتفاع والزاوية الخاصتان بـ 2.5D في متغيرات الطبقة، لذا يمكنك تحريرهما لاحقًا في تبويب المتغيرات في نافذة خصائص الطبقة.

أداة الرسم المضمَّنة

تتيح أداة الرسم Embedded Symbols عرض الترميز «الأصلي» لمصدر البيانات المقدَّم. وهذا هو الحال غالبًا مع مجموعات بيانات KML و TAB ذات الترميز المعرَّف مسبقًا.

12.1.3.2. تصيير الطبقة

من تبويب الترميز، يمكنك أيضًا تعيين بعض الخيارات التي تؤثر دائمًا في جميع معالم الطبقة:

  • Opacity slider: يمكنك بهذه الأداة جعل الطبقة الواقعة أسفلها في لوحة الخريطة مرئية. استخدم شريط التمرير لتكييف مستوى ظهور طبقتك المتجهية حسب احتياجاتك. ويمكنك أيضًا تحديد نسبة الظهور بدقة في القائمة بجانب شريط التمرير.

  • Blending mode على مستويي Layer و Feature: يمكنك بهذه الأدوات تحقيق تأثيرات تصيير خاصة ربما عرفتها سابقًا من برامج الرسوميات فقط. إذ تُمزج بكسلات الطبقات العلوية والسفلية عبر الإعدادات الموصوفة في أنماط المزج.

  • طبّق تأثيرات الرسم على جميع معالم الطبقة باستخدام الزر Draw Effects.

  • يتيح لك Control feature rendering order، باستخدام سمات المعالم، تعريف الترتيب العمودي (z-order) الذي ستُصيَّر به. فعّل مربع الاختيار وانقر على الزر sort بجانبه، فتظهر لك نافذة الحوار Define Order التي:

    1. تختار فيها حقلًا أو تبني تعبيرًا لتطبيقه على معالم الطبقة.

    2. تعيّن فيها ترتيب فرز المعالم المجلوبة، أي إذا اخترت الترتيب Ascending (تصاعدي)، تُصيَّر المعالم ذات القيم الأدنى تحت تلك ذات القيم الأعلى.

    3. تعرّف فيها متى تُصيَّر المعالم التي تُرجع القيمة NULL: first (في الأسفل) أو last (في الأعلى).

    4. كرّر الخطوات أعلاه بعدد القواعد التي تريد استخدامها.

    تُطبَّق القاعدة الأولى على جميع معالم الطبقة، فترتّبها عموديًا وفق القيمة المُرجعة. ثم ضمن كل مجموعة من المعالم ذات القيمة نفسها (بما في ذلك ذات القيمة NULL) وبالتالي المستوى العمودي نفسه، تُطبَّق القاعدة التالية لفرزها. وهكذا...

../../../_images/layer_rendering_options.png

شكل 12.13 خيارات تصيير الطبقة

12.1.3.3. إعدادات أخرى

مستويات الرموز

لأدوات الرسم التي تسمح بطبقات رموز مكدّسة (جميعها عدا الخريطة الحرارية) يوجد خيار للتحكم في ترتيب تصيير مستويات كل رمز.

في معظم أدوات الرسم، يمكنك الوصول إلى خيار مستويات الرموز بالنقر على الزر Advanced أسفل قائمة الرموز المحفوظة واختيار Symbol levels. أما في أداة الرسم المبنية على القواعد فالخيار متاح مباشرةً عبر الزر Symbols Levels...، بينما يقع الزر نفسه في أداة الرسم أداة رسم إزاحة النقاط داخل نافذة الحوار Rendering settings.

لتفعيل مستويات الرموز، حدّد checkbox Enable symbol levels. سيعرض كل صف عيّنة صغيرة من الرمز المركّب، وتسميته، وطبقات الرمز المنفردة مقسّمة إلى أعمدة بجانب كل منها رقم. وتمثل الأرقام مستوى ترتيب التصيير الذي ستُرسم به طبقة الرمز: فالمستويات ذات القيم الأدنى تُرسم أولًا وتبقى في الأسفل، بينما تُرسم ذات القيم الأعلى أخيرًا فوق غيرها.

../../../_images/symbol_levels.png

شكل 12.14 نافذة حوار مستويات الرموز

ملاحظة

إذا عُطّلت مستويات الرموز، فستُرسم الرموز الكاملة وفق ترتيب معالمها. وستحجب الرموز المتداخلة ببساطة ما تحتها. كما أن الرموز المتشابهة لن «تندمج» مع بعضها.

../../../_images/symbol_levels_examples.png

شكل 12.15 الفرق بين تفعيل مستويات الرموز (A) وتعطيلها (B)

مفتاح الخريطة للحجم المعرّف بالبيانات

عند تصيير طبقة باستخدام الرمز التناسبي أو التصيير متعدد المتغيرات أو عند تطبيق مخطط بياني بحجم مُحجَّم على الطبقة، يمكنك السماح بعرض الرموز المُحجَّمة في كل من لوحة الطبقات و مفتاح خريطة تخطيط الطباعة.

لتمكين نافذة الحوار Data-defined Size Legend من تصيير الترميز، اختر الخيار الذي يحمل الاسم نفسه من الزر Advanced أسفل قائمة الرموز المحفوظة. أما للمخططات البيانية، فالخيار متاح ضمن التبويب Legend. وتوفر نافذة الحوار الخيارات التالية:

  • اختيار نوع مفتاح الخريطة: radioButtonOn Legend not enabled و radioButtonOff Separated legend items و radioButtonOff Collapsed legend. وفي الخيار الأخير، يمكنك اختيار محاذاة عناصر مفتاح الخريطة في Bottom (الأسفل) أو Center (المنتصف)؛

  • معاينة الرمز المستخدم لتمثيل مفتاح الخريطة؛

  • إدراج العنوان في مفتاح الخريطة؛

  • تغيير حجم الفئات المستخدمة: افتراضيًا يوفر لك QGIS مفتاح خريطة من خمس فئات (مبنية على الفواصل الطبيعية الأنيقة)، لكن يمكنك تطبيق تصنيفك الخاص باستخدام الخيار checkbox Manual size classes. استخدم الزرين symbologyAdd و symbologyRemove لتعيين قيم فئاتك المخصّصة وتسمياتها.

  • في مفتاح الخريطة المطوي، يمكن:

    • Align symbols: محاذاة الرموز في المنتصف أو الأسفل

    • ضبط Line symbol للخط الأفقي الواصل من الرمز إلى نص مفتاح الخريطة المقابل.

تُعرض معاينة لمفتاح الخريطة في اللوحة اليمنى من نافذة الحوار وتُحدَّث أثناء تعيين المعاملات.

../../../_images/data_defined_size_legend.png

شكل 12.16 ضبط مفتاح الخريطة للحجم المُحجَّم

ملاحظة

حاليًا، لا يمكن تطبيق مفتاح الخريطة للحجم المعرّف بالبيانات لترميز الطبقة إلا على طبقات النقاط التي تستخدم ترميز الرمز المفرد أو المصنّف أو المتدرّج.

إعدادات الحركة

لتحويل أي رمز إلى رمز متحرك، يمكنك الاستفادة من لوحة Animation settings. في هذه اللوحة، يمكنك تفعيل الحركة للرمز وتعيين معدل إطارات محدد لإعادة رسم الرمز.

  1. ابدأ بالانتقال إلى المستوى الأعلى للرمز، واختر القائمة Advanced في أسفل يمين نافذة الحوار

  2. ابحث عن الخيار Animation settings

  3. حدّد checkbox Is Animated لتفعيل الحركة للرمز

  4. اضبط Frame rate، أي مدى سرعة تشغيل الحركة

  5. يمكنك الآن استخدام المتغير @symbol_frame في أي خاصية معرّفة بالبيانات لرمز فرعي من أجل تحريك تلك الخاصية.

فمثلًا، يؤدي تعيين دوران الرمز إلى التعبير المعرّف بالبيانات @symbol_frame % 360 إلى دوران الرمز مع الوقت، بسرعة دوران يحددها معدل إطارات الرمز:

../../../_images/animated_symbol.gif

شكل 12.17 ضبط دوران الرمز باستخدام تعبير معرّف بالبيانات

النطاق العازل للامتداد

يمكنك تعيين نطاق عازل للامتداد لـ رمز. ويعني ذلك تطبيق نطاق عازل على امتداد الخريطة الحالي، بحيث إذا كان المعلم خارج امتداد الخريطة الفعلي ولكن داخل الامتداد المزوّد بالنطاق العازل فسيظل يُرسم. ويفيد هذا مثلًا مع الرموز التي تستخدم مولّد الأشكال الهندسية حين تريد أن تظل ترى الأشكال الهندسية المولَّدة حتى لو كان المعلم الفعلي خارج امتداد الخريطة.

لتحرير النطاق العازل للامتداد يمكنك استخدام لوحة Extent buffer.

  1. ابدأ بالانتقال إلى المستوى الأعلى للرمز، واختر القائمة Advanced في أسفل يمين نافذة الحوار

  2. ابحث عن خيار Extent buffer

  3. في اللوحة الجديدة يمكنك تعيين مسافة النطاق العازل

يمكن تغيير وحدات مسافة النطاق العازل. ويمكنك أيضًا التحكم في قيمة المسافة باستخدام عنصر واجهة التجاوز المعرّف بالبيانات. فمثلًا يمكنك تغيير القيمة بناءً على مقياس الرسم الحالي للخريطة if(@map_scale > 50000, 5000, 0):

../../../_images/extent_buffer.gif

شكل 12.18 مثال على النطاق العازل للامتداد مع رمز يستخدم مستوى رمز من نوع مولّد الأشكال الهندسية.

تأثيرات الرسم

لتحسين رسم الطبقة وتجنّب (أو على الأقل تقليل) اللجوء إلى برمجيات أخرى للإخراج النهائي للخرائط، يوفّر QGIS وظيفة قوية أخرى: خيارات paintEffects Draw Effects التي تضيف تأثيرات رسم لتخصيص عرض الطبقات المتجهية.

يتوفر هذا الخيار في نافذة الحوار Layer Properties ► Symbology، ضمن مجموعة رسم الطبقة (ويُطبَّق على الطبقة كاملة) أو في خصائص طبقة الرمز (ويُطبَّق على المعالم المقابلة). ويمكنك الجمع بين الاستخدامين.

يمكن تفعيل تأثيرات الرسم بتحديد خيار checkbox Draw effects والنقر على زر paintEffects Customize effects. سيفتح ذلك نافذة الحوار Effect Properties (انظر شكل 12.19). تتوفر أنواع التأثيرات التالية مع خيارات مخصّصة:

  • المصدر: يرسم النمط الأصلي للمعلم وفق إعدادات خصائص الطبقة. ويمكن ضبط Opacity (العتامة) لنمطه، وكذلك نمط المزج و نمط الرسم. وهذه خصائص مشتركة بين جميع أنواع التأثيرات.

    ../../../_images/source.png

    شكل 12.19 تأثيرات الرسم: نافذة حوار المصدر

  • التمويه: يضيف تأثير تمويه على الطبقة المتجهية. والخيارات المخصّصة التي يمكنك تغييرها هي Blur type (Stack blur (fast) أو Gaussian blur (quality)) و Blur strength.

    ../../../_images/blur.png

    شكل 12.20 تأثيرات الرسم: نافذة حوار التمويه

  • التلوين: يمكن استخدام هذا التأثير لإنشاء نسخة من النمط بتدرج لوني واحد. وتكون القاعدة دائمًا نسخة رمادية من الرمز، ويمكنك:

    • استخدام selectString Grayscale لاختيار طريقة إنشائها: والخيارات هي 'By lightness' و 'By luminosity' و 'By average' و 'Off'.

    • إذا حُدِّد checkbox Colorise فسيكون من الممكن مزج لون آخر واختيار مدى قوته.

    • التحكم في مستويات Brightness (السطوع) و Contrast (التباين) و Saturation (التشبع) للرمز الناتج.

    ../../../_images/colorise.png

    شكل 12.21 تأثيرات الرسم: نافذة حوار التلوين

  • الظل المُسقَط: يضيف استخدام هذا التأثير ظلًا على المعلم يبدو كأنه يضيف بُعدًا إضافيًا. ويمكن تخصيص هذا التأثير بتغيير زاوية ومسافة Offset (الإزاحة)، اللتين تحددان الاتجاه الذي ينزاح نحوه الظل ومدى قربه من الكائن المصدر. ويتيح Drop Shadow أيضًا خيار تغيير Blur radius و Color للتأثير.

    ../../../_images/drop_shadow.png

    شكل 12.22 تأثيرات الرسم: نافذة حوار الظل المُسقَط

  • الظل الداخلي: يشبه هذا التأثير تأثير Drop Shadow، لكنه يضيف الظل على الجهة الداخلية لحواف المعلم. والخيارات المتاحة للتخصيص هي نفسها خيارات تأثير Drop Shadow.

    ../../../_images/inner_shadow.png

    شكل 12.23 تأثيرات الرسم: نافذة حوار الظل الداخلي

  • التوهج الداخلي: يضيف تأثير توهج داخل المعلم. ويمكن تخصيص هذا التأثير بضبط Spread (عرض) التوهج، أو Blur radius. ويحدد الأخير مدى القرب من حافة المعلم الذي تريد أن يحدث عنده التمويه. إضافة إلى ذلك، توجد خيارات لتخصيص لون التوهج باستخدام Single color أو Color ramp.

    ../../../_images/inner_glow.png

    شكل 12.24 تأثيرات الرسم: نافذة حوار التوهج الداخلي

  • التوهج الخارجي: يشبه هذا التأثير تأثير Inner Glow، لكنه يضيف التوهج على الجهة الخارجية لحواف المعلم. والخيارات المتاحة للتخصيص هي نفسها خيارات تأثير Inner Glow.

    ../../../_images/outer_glow.png

    شكل 12.25 تأثيرات الرسم: نافذة حوار التوهج الخارجي

  • التحويل: يتيح إمكانية تحويل شكل الرمز. وأول الخيارات المتاحة للتخصيص هما Reflect horizontal و Reflect vertical، اللذان ينشئان انعكاسًا على المحورين الأفقي و/أو الرأسي. أما الخيارات الأخرى فهي:

    • Shear X,Y: يُميل المعلم على امتداد المحور X و/أو Y.

    • Scale X,Y: يكبّر المعلم أو يصغّره على امتداد المحور X و/أو Y بالنسبة المئوية المحددة.

    • Rotation: يدير المعلم حول نقطة مركزه.

    • و Translate X,Y يغيّر موضع العنصر بناءً على مسافة محددة على المحور X و/أو Y.

    ../../../_images/transform.png

    شكل 12.26 تأثيرات الرسم: نافذة حوار التحويل

يمكن استخدام نوع واحد أو أكثر من التأثيرات في الوقت نفسه. ويمكنك تفعيل تأثير أو إلغاء تفعيله باستخدام مربع الاختيار الخاص به في قائمة التأثيرات. ويمكنك تغيير نوع التأثير المحدد باستخدام خيار selectString Effect type. ويمكنك إعادة ترتيب التأثيرات باستخدام زري arrowUp Move up و arrowDown Move down، وكذلك إضافة التأثيرات أو إزالتها باستخدام زري symbologyAdd Add new effect و symbologyRemove Remove effect.

توجد بعض الخيارات المشتركة المتاحة لجميع أنواع تأثيرات الرسم. ويعمل خيارا Opacity و Blend mode بصورة مشابهة لتلك الموصوفة في تصيير الطبقة، ويمكن استخدامهما في جميع تأثيرات الرسم باستثناء تأثير التحويل.

يتوفر أيضًا خيار selectString Draw mode لكل تأثير، ويمكنك اختيار ما إذا كنت تريد رسم الرمز و/أو تعديله، وفق بعض القواعد:

  • تُرسم التأثيرات من الأعلى إلى الأسفل.

  • يعني النمط Render only أن التأثير سيكون مرئيًا.

  • يعني النمط Modifier only أن التأثير لن يكون مرئيًا، لكن التغييرات التي يطبّقها ستُمرَّر إلى التأثير التالي (الذي يليه مباشرة في الأسفل).

  • سيجعل النمط Render and Modify التأثير مرئيًا ويمرّر أي تغييرات إلى التأثير التالي. وإذا كان التأثير في أعلى قائمة التأثيرات أو إذا لم يكن التأثير الذي فوقه مباشرة في نمط التعديل، فسيستخدم الرمز المصدر الأصلي من خصائص الطبقة (على غرار المصدر).

12.1.4. خصائص التسميات

توفّر لك خصائص labelingSingle Labels جميع الإمكانات اللازمة والمناسبة لتهيئة التسميات الذكية على الطبقات المتجهية. ويمكن الوصول إلى نافذة الحوار هذه أيضًا من لوحة Layer Styling، أو باستخدام زر labelingSingle Layer Labeling Options في شريط أدوات التسميات.

في أعلى نافذة الحوار لديك:

  • قائمة منسدلة لاختيار طريقة التسمية المناسبة للطبقة النشطة

  • زر labelingRules Configure project labeling rules: يساعدك على التحكم في التفاعلات بين التسميات والمعالم عبر طبقات المشروع. مزيد من التفاصيل في تهيئة قواعد التسمية في المشروع.

  • زر autoPlacementSettings Automated placement settings (applies to all layers): لتهيئة الخصائص العامة لوضع التسميات وحل التعارضات. مزيد من التفاصيل في ضبط محرك الوضع التلقائي.

الخطوة الأولى هي اختيار طريقة التسمية من القائمة المنسدلة. والطرق المتاحة هي:

  • labelingNone No labels: القيمة الافتراضية، ولا تعرض أي تسميات من الطبقة

  • labelingSingle Single labels: تعرض التسميات على الخريطة باستخدام سمة واحدة أو تعبير

  • labelingRuleBased التسمية القائمة على القواعد

  • و labelingObstacle Blocking: تتيح تعيين طبقة بوصفها عائقًا فقط لتسميات الطبقات الأخرى دون رسم أي تسميات خاصة بها.

تفترض الخطوات التالية أنك اخترت خيار labelingSingle Single labels، مما يفتح نافذة الحوار التالية.

../../../_images/label_menu_text.png

شكل 12.27 إعدادات تسمية الطبقة - تسميات مفردة

في أعلى نافذة الحوار تُفعَّل قائمة منسدلة Value. ويمكنك اختيار عمود سمة لاستخدامه في التسمية. ويُستخدم افتراضيًا حقل العرض. انقر على expression إذا أردت تعريف التسميات بناءً على تعبيرات - انظر تعريف التسميات بناءً على التعبيرات.

ملاحظة

يمكن عرض التسميات مع تنسيقها بوصفها مدخلات في مفاتيح الخريطة، إذا فُعِّل ذلك في تبويب مفتاح الخريطة.

تُعرض أدناه خيارات تخصيص التسميات ضمن تبويبات مختلفة:

وصف طريقة ضبط كل خاصية معروض في إعداد التسمية.

12.1.4.1. تهيئة قواعد التسمية في المشروع

بالضغط على زر labelingRules Configure project labeling rules المجاور لمحدد طريقة التسمية المنسدل، يمكنك إنشاء قواعد تتحكم في كيفية تفاعل تسميات طبقة ما مع تسميات أو معالم طبقة أخرى.

  1. اضغط زر symbologyAdd Add rule واختر من القائمة المنسدلة أحد أنواع القواعد:

    • Prevent labels overlapping features: تمنع وضع التسميات متداخلة مع معالم من طبقة مختلفة.

    • Pull labels towards features: تمنع وضع التسميات بعيدًا جدًا عن معالم من طبقة مختلفة. ويمكن تعيين المسافة القصوى بالوحدة التي تختارها.

    • Push labels away from features: تمنع وضع التسميات قريبة جدًا من معالم من طبقة مختلفة. ويمكن تعيين المسافة الدنيا بالوحدة التي تختارها، وكذلك أولوية القاعدة (القواعد ذات الأولوية الأعلى هي الأهم احترامًا عند حدوث تعارض في وضع التسميات).

    • Push labels away from other labels: تمنع وضع التسميات قريبة جدًا من تسميات طبقة مختلفة.

    تنبيه

    لا تتوفر الخيارات الثلاثة الأخيرة إلا في QGIS المثبّت مع GEOS >= 3.10 (انظر قائمة Help ► About).

  2. املأ الخصائص كما تشاء؛ ويمكنك إعطاء القاعدة اسمًا أكثر دلالة.

  3. اضغط OK.

  4. أضف ما يلزم من القواعد.

  5. عند الحاجة، اضغط symbologyEdit Edit rule لتعديل القاعدة المحددة أو symbologyRemove Remove rule لحذفها من المشروع.

تتوفر القواعد المعيّنة من تبويب خصائص Labels لأي طبقة، بالضغط على زر labelingRules Configure project labeling rules. ويمكنك تفعيل أي منها أو تعطيله مؤقتًا باستخدام مربع الاختيار المجاور للاسم. مرّر المؤشر فوق قاعدة لمعاينة تفاصيلها.

../../../_images/labelplacementrules.gif

شكل 12.28 نظرة عامة على تفاعل قواعد التسمية

12.1.4.2. ضبط محرك الوضع التلقائي

يمكنك استخدام إعدادات الوضع التلقائي لتهيئة سلوك تلقائي للتسميات على مستوى المشروع. في الزاوية العلوية اليمنى من تبويب Labels، انقر على زر autoPlacementSettings Automated placement settings (applies to all layers)، فتُفتح نافذة حوار تحتوي على الخيارات التالية:

../../../_images/placement_engine.png

شكل 12.29 محرك الوضع التلقائي للتسميات

  • Number of candidates: يحسب ويخصّص لمعالم الخطوط والمضلعات عدد مواضع التسميات الممكنة بناءً على حجمها. فكلما كان المعلم أطول أو أعرض زاد عدد مواضعه المرشّحة، وأمكن وضع تسمياته بشكل أفضل مع خطر تصادم أقل.

  • Text rendering: يعيّن القيمة الافتراضية لعناصر واجهة رسم التسميات عند تصدير لوحة الخريطة أو تخطيط إلى PDF أو SVG. إذا اختير Always render labels as text فيمكن تحرير التسميات في تطبيقات خارجية (مثل Inkscape) بوصفها نصًا عاديًا. لكن الأثر الجانبي هو انخفاض جودة الرسم، ووجود مشكلات في الرسم عند استخدام بعض إعدادات النص مثل الهالات. لذلك يُوصى بخيار Always render labels as paths (recommended) الذي يصدّر التسميات بوصفها حدودًا خارجية لكنه يضمن توافقًا تامًا مع كامل خيارات التنسيق المتاحة. ومع خيار Prefer rendering labels as text، تُرسم التسميات بوصفها كائنات نصية، ما لم يؤدِّ ذلك إلى عيوب في الرسم أو رسم رديء الجودة (بحسب إعدادات تنسيق النص).

    ملاحظة

    عند رسم التسميات بوصفها نصًا على جهاز متجهي (مثل PDF أو SVG)، يجب الحرص على توفّر الخطوط المطلوبة للمستخدمين عند فتح الملفات المُنشأة، وإلا فستُستخدم الخطوط الاحتياطية الافتراضية لعرض المُخرَج بدلًا منها. (مع أن عمليات التصدير إلى PDF قد تضمّن بعض الخطوط تلقائيًا عند الإمكان، بحسب منصة المستخدم).

  • checkbox Allow truncated labels on edges of map: يتحكم في ما إذا كان ينبغي رسم التسميات التي تقع جزئيًا خارج امتداد الخريطة. إذا حُدِّد فستُعرض هذه التسميات (حين لا توجد طريقة لوضعها كاملة داخل المنطقة المرئية). وإذا لم يُحدَّد فسيجري تخطي التسميات المرئية جزئيًا. لاحظ أن هذا الإعداد لا يؤثر في عرض التسميات في عنصر الخريطة في التخطيط.

  • unchecked Show all labels for all layers (i.e. including colliding objects). لاحظ أن هذا الخيار يمكن ضبطه أيضًا لكل طبقة على حدة (انظر تبويب الرسم)

  • unchecked Show unplaced labels: يتيح تحديد ما إذا كانت هناك تسميات مهمة مفقودة من الخرائط (مثلًا بسبب التداخلات أو قيود أخرى). وتُعرض بلون قابل للتخصيص.

  • unchecked Show candidates (for debugging): يتحكم في ما إذا كان ينبغي رسم مربعات على الخريطة تعرض جميع المواضع المرشّحة المولَّدة لوضع التسميات. وكما يشير اسمه، فهو مفيد فقط لتصحيح الأخطاء واختبار تأثير إعدادات التسمية المختلفة. وقد يكون مفيدًا لوضع يدوي أفضل باستخدام أدوات شريط أدوات التسميات.

  • unchecked Show label metrics (for debugging): يعرض حدود نص التسمية باللون الأحمر وخطوط الأساس باللون الأزرق

  • Project labeling version: يدعم QGIS إصدارين مختلفين من الوضع التلقائي للتسميات:

    • Version 1: النظام القديم (المستخدم في إصدارات QGIS 3.10 وما قبلها، وعند فتح المشاريع المُنشأة بهذه الإصدارات في QGIS 3.12 أو أحدث). يعامل الإصدار 1 أولويات التسميات والعوائق بوصفها "إرشادات تقريبية" فقط، ومن الممكن في هذا الإصدار أن توضع تسمية منخفضة الأولوية فوق عائق عالي الأولوية. وبناءً على ذلك، قد يصعب الحصول على نتائج التسمية المرغوبة عند استخدام هذا الإصدار، ولذلك لا يُوصى به إلا للتوافق مع المشاريع القديمة.

    • Version 2 (recommended): هذا هو النظام الافتراضي في المشاريع الجديدة المُنشأة في QGIS 3.12 أو أحدث. في الإصدار 2، أُعيد بناء المنطق الذي يحدد متى يُسمح للتسميات بالتداخل مع العوائق. ويمنع المنطق الأحدث أي تسمية من التداخل مع أي عائق يزيد وزنه بوصفه عائقًا على أولوية التسمية. ونتيجة لذلك، يعطي هذا الإصدار نتائج تسمية أكثر قابلية للتنبؤ وأسهل فهمًا.

12.1.4.3. التسمية القائمة على القواعد

مع التسمية القائمة على القواعد يمكن تعريف إعدادات تسمية متعددة وتطبيقها انتقائيًا على أساس مرشحات التعبيرات ونطاق مقياس الرسم، كما في الرسم القائم على القواعد.

لإنشاء قاعدة:

  1. اختر خيار labelingRuleBased التسمية القائمة على القواعد من القائمة المنسدلة الرئيسية في تبويب Labels

  2. انقر على زر symbologyAdd Add rule أسفل نافذة الحوار.

  3. املأ نافذة الحوار الجديدة بما يلي:

    • Description: نص يُستخدم لتعريف القاعدة في تبويب Labels وبوصفه مدخل تسمية في مفتاح الخريطة ضمن مفتاح الخريطة في تخطيط الطباعة

    • Filter: تعبير لتحديد المعالم التي ستُطبَّق عليها إعدادات التسمية

    • إذا كانت هناك قواعد معيّنة مسبقًا، فيمكن استخدام خيار Else لتحديد جميع المعالم التي لا تطابق أي مرشح من قواعد المجموعة نفسها.

  4. يمكنك تعيين نطاق مقياس رسم تُطبَّق ضمنه قاعدة التسمية.

  5. الخيارات المتاحة ضمن مجموعة Labels هي إعدادات التسمية المعتادة. اضبطها ثم اضغط OK.

    ../../../_images/label_rule_settings.png

    شكل 12.30 إعدادات القاعدة

يُعرض ملخص للقواعد الموجودة في نافذة الحوار الرئيسية (انظر شكل 12.31). ويمكنك إضافة قواعد متعددة، وإعادة ترتيبها أو تضمين بعضها في بعض بالسحب والإفلات. ويمكنك كذلك إزالتها باستخدام زر symbologyRemove أو تحريرها باستخدام زر symbologyEdit أو بالنقر المزدوج.

../../../_images/label_rules_panel.png

شكل 12.31 لوحة التسمية القائمة على القواعد

12.1.4.4. تعريف التسميات بناءً على التعبيرات

سواء اخترت نوع التسمية المفردة أو القائمة على القواعد، يتيح QGIS استخدام التعبيرات لتسمية المعالم.

بافتراض أنك تستخدم طريقة Single labels، انقر على زر expression بجوار القائمة المنسدلة Value في تبويب labelingSingle Labels في نافذة حوار الخصائص.

في شكل 12.32 ترى تعبيرًا نموذجيًا لتسمية طبقة أشجار ألاسكا بنوع الشجرة والمساحة، بناءً على الحقل 'VEGDESC' وبعض النص الوصفي، والدالة $area مقترنة بـ format_number() لتحسين مظهرها.

../../../_images/label_expression.png

شكل 12.32 استخدام التعبيرات في التسمية

العمل بالتسمية القائمة على التعبيرات سهل. وكل ما عليك الانتباه إليه هو:

  • قد تحتاج إلى ربط جميع العناصر (السلاسل النصية والحقول والدوال) باستخدام دالة لدمج السلاسل النصية مثل concat أو + أو ||. وانتبه إلى أنه في بعض الحالات (عند وجود قيم فارغة أو رقمية) لن تلبي جميع هذه الأدوات حاجتك.

  • تُكتب السلاسل النصية بين 'علامتي اقتباس مفردتين'.

  • تُكتب الحقول بين "علامتي اقتباس مزدوجتين" أو دون أي علامة اقتباس.

لنلقِ نظرة على بعض الأمثلة:

  1. تسمية مبنية على حقلين 'name' و 'place' مع فاصلة بوصفها فاصلًا:

    "name" || ', ' || "place"
    

    النتيجة:

    John Smith, Paris
    
  2. تسمية مبنية على حقلين 'name' و 'place' مع نصوص أخرى:

    'My name is ' + "name" + 'and I live in ' + "place"
    'My name is ' || "name" || 'and I live in ' || "place"
    concat('My name is ', name, ' and I live in ', "place")
    

    النتيجة:

    My name is John Smith and I live in Paris
    
  3. تسمية مبنية على حقلين 'name' و 'place' مع نصوص أخرى بالجمع بين دوال دمج مختلفة:

    concat('My name is ', name, ' and I live in ' || place)
    

    النتيجة:

    My name is John Smith and I live in Paris
    

    أو، إذا كان الحقل 'place' فارغًا (NULL)، فالنتيجة:

    My name is John Smith
    
  4. تسمية متعددة الأسطر مبنية على حقلين 'name' و 'place' مع نص وصفي:

    concat('My name is ', "name", '\n' , 'I live in ' , "place")
    

    النتيجة:

    My name is John Smith
    I live in Paris
    
  5. تسمية مبنية على حقل ودالة $area لعرض اسم المكان وحجم مساحته المقرّب بوحدة محوّلة:

    'The area of ' || "place" || ' has a size of '
    || round($area/10000) || ' ha'
    

    النتيجة:

    The area of Paris has a size of 10500 ha
    
  6. أنشئ شرط CASE ELSE. إذا كانت قيمة السكان في الحقل population أقل من أو تساوي 50000 فهي بلدة، وإلا فهي مدينة:

    concat('This place is a ',
    CASE WHEN "population" <= 50000 THEN 'town' ELSE 'city' END)
    

    النتيجة:

    This place is a town
    
  7. اعرض الاسم للمدن ولا تسمية للمعالم الأخرى (لسياق "city" انظر المثال أعلاه):

    CASE WHEN "population" > 50000 THEN "NAME" END
    

    النتيجة:

    Paris
    

كما ترى في منشئ التعبيرات، لديك مئات الدوال المتاحة لإنشاء تعبيرات بسيطة ومعقدة جدًا لتسمية بياناتك في QGIS. انظر فصل التعبيرات لمزيد من المعلومات والأمثلة عن التعبيرات.

12.1.4.5. استخدام التجاوز المعرّف بالبيانات في التسمية

باستخدام وظيفة dataDefine Data defined override، تُتجاوز إعدادات التسمية بمدخلات من جدول البيانات الوصفية أو بتعبيرات مبنية عليها. ويمكن استخدام هذه الميزة لتعيين قيم معظم خيارات التسمية الموصوفة أعلاه.

على سبيل المثال، باستخدام مجموعة بيانات QGIS النموذجية لألاسكا، لنسمِّ طبقة airports بأسمائها، بناءً على استخدامها العسكري USE، أي ما إذا كان المطار متاحًا لـ:

  • العسكريين، فتُعرض باللون الرمادي وبالحجم 8؛

  • غيرهم، فتُعرض باللون الأزرق وبالحجم 10.

للقيام بذلك، بعد تفعيل التسمية على الحقل NAME للطبقة (انظر إعداد التسمية):

  1. فعّل تبويب Text.

  2. انقر على أيقونة dataDefine بجوار خاصية Size.

  3. اختر Edit... واكتب:

    CASE
      WHEN "USE" like '%Military%' THEN 8 -- because compatible values are 'Military'
                                          -- and 'Joint Military/Civilian'
      ELSE 10
    END
    
  4. اضغط OK للتأكيد. ستُغلق نافذة الحوار ويصبح الزر dataDefine على شكل dataDefineExpressionOn مما يعني أن هناك قاعدة قيد التنفيذ.

  5. ثم انقر على الزر المجاور لخاصية اللون، واكتب التعبير أدناه وأكّده:

    CASE
      WHEN "USE" like '%Military%' THEN '150, 150, 150'
      ELSE '0, 0, 255'
    END
    

وبالمثل، يمكنك تخصيص أي خاصية أخرى للتسمية بالطريقة التي تريدها. اطّلع على مزيد من التفاصيل حول وصف عنصر الواجهة dataDefine Data-define override وطريقة التعامل معه في قسم إعداد التجاوز المعرَّف بالبيانات.

../../../_images/label_attribute_data_defined.png

شكل 12.33 تنسيق تسميات المطارات بناءً على سماتها

نصيحة

استخدم التجاوز المعرّف بالبيانات لتسمية كل جزء من المعالم متعددة الأجزاء

يوجد خيار لضبط التسمية للمعالم متعددة الأجزاء بشكل مستقل عن خصائص التسمية لديك. اختر render الرسم، ثم Feature options، وانتقل إلى زر dataDefine Data-define override المجاور لمربع الاختيار unchecked Label every part of multipart-features وعرّف التسميات كما هو موصوف في إعداد التجاوز المعرَّف بالبيانات.

شريط أدوات التسميات

يوفّر Label Toolbar بعض الأدوات للتعامل مع خصائص labelingSingle التسمية (بما في ذلك خطوط الإشارة الخاصة بها) أو خصائص diagram المخطط البياني:

../../../_images/diagram_toolbar.png

شكل 12.34 شريط أدوات التسميات

  • showPinnedLabels Highlight Pinned Labels, Diagrams and Callouts. إذا كانت الطبقة المتجهية للعنصر قابلة للتحرير فيكون التمييز باللون الأخضر، وإلا فباللون الأزرق.

  • showUnplacedLabel Toggle Display of Unplaced Labels: يتيح تحديد ما إذا كانت هناك تسميات مهمة مفقودة من الخرائط (مثلًا بسبب التداخلات أو قيود أخرى). وتُعرض بلون قابل للتخصيص (انظر ضبط محرك الوضع التلقائي).

  • pinLabels Pin/Unpin Labels and Diagrams. بالنقر أو بسحب منطقة، تثبّت العناصر المتراكبة. وإذا نقرت أو سحبت منطقة مع الضغط على Shift، يُلغى تثبيت العناصر. وأخيرًا، يمكنك أيضًا النقر أو سحب منطقة مع الضغط على Ctrl لتبديل حالة تثبيتها.

  • showHideLabels Show/Hide Labels and Diagrams. إذا نقرت على العناصر، أو نقرت وسحبت منطقة مع الضغط على Shift، فإنها تُخفى. وعندما يكون عنصر مخفيًا، يكفي أن تنقر على المعلم لاستعادة ظهوره. وإذا سحبت منطقة، فستُستعاد جميع العناصر الموجودة فيها.

  • moveLabel Move a Label, Diagram or Callout: انقر لتحديد العنصر ثم انقر لنقله إلى المكان المطلوب. تُخزَّن الإحداثيات الجديدة في حقول مساعدة. وتحديد العنصر بهذه الأداة ثم الضغط على مفتاح Delete يحذف قيمة الموضع المخزّنة.

  • rotateLabel Rotate a Label. انقر لتحديد التسمية ثم انقر مرة أخرى لتطبيق الدوران المطلوب. وبالمثل، تُخزَّن الزاوية الجديدة في حقل مساعد. وتحديد تسمية بهذه الأداة ثم الضغط على مفتاح Delete يحذف قيمة دوران هذه التسمية.

  • changeLabelProperties Change Label Properties. تفتح نافذة حوار لتغيير خصائص التسمية التي نُقر عليها؛ وقد تكون التسمية نفسها أو إحداثياتها أو زاويتها أو خطها أو حجمها أو محاذاتها متعددة الأسطر... ما دامت هذه الخاصية مربوطة بحقل. وهنا يمكنك ضبط خيار checkbox Label every part of a feature.

تحذير

أدوات التسمية تستبدل قيم الحقول الحالية

استخدام Label toolbar لتخصيص التسمية يكتب فعليًا القيمة الجديدة للخاصية في الحقل المربوط بها. لذا احرص على ألا تستبدل عن غير قصد بيانات قد تحتاجها لاحقًا!

ملاحظة

يمكن استخدام آلية خصائص التخزين المساعد لتخصيص التسمية (الموضع وغيره) دون تعديل مصدر البيانات الأساسي.

تخصيص التسميات من لوحة الخريطة

بالاقتران مع Label Toolbar، يساعدك إعداد التجاوز المعرّف بالبيانات على التعامل مع التسميات في لوحة الخريطة (نقلها وتحريرها وتدويرها). وسنصف الآن مثالًا يستخدم وظيفة التجاوز المعرّف بالبيانات مع وظيفة moveLabelMove Label, Diagram or Callout (انظر شكل 12.35).

  1. استورد lakes.shp من مجموعة بيانات QGIS النموذجية.

  2. انقر نقرًا مزدوجًا على الطبقة لفتح خصائص الطبقة. انقر على Labels ثم Placement. اختر radioButtonOn Offset from centroid.

  3. ابحث عن مدخلات Data defined. انقر على أيقونة dataDefine لتعريف نوع الحقل لـ Coordinate. اختر xlabel لـ X و ylabel لـ Y. أصبحت الأيقونات الآن مميّزة باللون الأصفر.

    ../../../_images/label_coordinate_data_defined.png

    شكل 12.35 تسمية طبقات المضلعات المتجهية باستخدام التجاوز المعرّف بالبيانات

  4. قرّب العرض إلى بحيرة.

  5. اجعل الطبقة قابلة للتحرير باستخدام زر toggleEditing Toggle Editing.

  6. انتقل إلى شريط أدوات التسميات وانقر على أيقونة moveLabel. يمكنك الآن إزاحة التسمية يدويًا إلى موضع آخر (انظر شكل 12.36). ويُحفظ الموضع الجديد للتسمية في العمودين xlabel و ylabel من جدول البيانات الوصفية.

  7. من الممكن أيضًا إضافة خط يربط كل بحيرة بتسميتها المنقولة باستخدام:

ملاحظة

يمكن استخدام آلية خصائص التخزين المساعد مع الخصائص المعرّفة بالبيانات دون الحاجة إلى مصدر بيانات قابل للتحرير.

12.1.5. خصائص المخططات البيانية

يتيح لك تبويب diagram Diagrams إضافة طبقة رسومية متراكبة إلى طبقة متجهية (انظر شكل 12.37). ويمكن الوصول إلى نافذة الحوار هذه أيضًا من لوحة Layer Styling، أو باستخدام زر diagram Layer Diagram Options في شريط أدوات التسميات.

يوفّر التنفيذ الأساسي الحالي للمخططات البيانية دعمًا لما يلي:

  • diagramNone No diagrams: القيمة الافتراضية، دون عرض أي مخطط بياني فوق المعالم؛

  • piechart Pie chart، رسم إحصائي دائري مقسّم إلى شرائح لتوضيح النسب العددية. ويتناسب طول قوس كل شريحة مع الكمية التي تمثلها؛

  • text Text diagram، دائرة مقسّمة أفقيًا تعرض قيمًا إحصائية بداخلها؛

  • histogram Histogram، أعمدة بألوان مختلفة لكل سمة مصفوفة بجانب بعضها؛

  • stackedBar Stacked bars، يكدّس أعمدة بألوان مختلفة لكل سمة فوق بعضها رأسيًا أو أفقيًا؛

  • stackedDiagram Stacked diagram، يكدّس مخططات بيانية من أنواع متماثلة أو مختلفة بجانب بعضها، رأسيًا أو أفقيًا. مزيد من التفاصيل في المخططات البيانية المكدّسة.

في الزاوية العلوية اليمنى من تبويب Diagrams، يوفّر زر autoPlacementSettings Automated placement settings (applies to all layers) وسائل للتحكم في وضع التسميات للمخططات البيانية على لوحة الخريطة.

نصيحة

التبديل السريع بين أنواع المخططات البيانية

بما أن الإعدادات مشتركة تقريبًا بين الأنواع المختلفة للمخططات البيانية، فعند تصميم مخططك يمكنك بسهولة تغيير نوع المخطط والتحقق من أيها أنسب لبياناتك دون أي خسارة.

لكل نوع من المخططات البيانية، تُقسَّم الخصائص إلى عدة تبويبات:

12.1.5.1. السمات

يحدد Attributes المتغيرات التي ستُعرض في المخطط البياني. استخدم زر symbologyAdd add item لنقل الحقول المطلوبة إلى لوحة 'Assigned Attributes'. ويمكن أيضًا استخدام سمات مولَّدة باستخدام التعبيرات.

يمكنك تحريك أي صف إلى الأعلى أو الأسفل بالنقر والسحب، لترتيب طريقة عرض السمات. ويمكنك أيضًا تغيير التسمية في عمود 'Legend' أو لون السمة بالنقر المزدوج على العنصر.

هذه التسمية هي النص الافتراضي المعروض في مفتاح الخريطة في تخطيط الطباعة أو في شجرة الطبقات.

../../../_images/diagram_tab.png

شكل 12.37 خصائص المخطط البياني - تبويب السمات

12.1.5.2. استدعاء

يحدد Rendering مظهر المخطط البياني. ويوفّر إعدادات عامة لا تتداخل مع القيم الإحصائية، مثل:

  • عتامة الرسم، وعرض حدوده الخارجية ولونها؛

  • بحسب نوع المخطط البياني:

    • للمدرج التكراري والأعمدة المكدّسة: عرض العمود والمسافة بين الأعمدة. وقد ترغب في تعيين المسافة إلى 0 للأعمدة المكدّسة. علاوة على ذلك، يمكن جعل Axis line symbol مرئيًا على لوحة الخريطة وتخصيصه باستخدام خصائص الرمز الخطي.

    • للمخطط النصي: لون خلفية الدائرة و الخط المستخدم للنصوص؛

    • للمخططات الدائرية: Start angle للشريحة الأولى و Direction الخاص بها (باتجاه عقارب الساعة أم لا).

  • استخدام تأثيرات الرسم على الرسومات.

في هذا التبويب، يمكنك أيضًا إدارة ظهور المخطط البياني وضبطه بدقة باستخدام خيارات مختلفة:

  • Diagram z-index: يتحكم في كيفية رسم المخططات البيانية فوق بعضها وفوق التسميات. ويُرسم المخطط ذو المؤشر الأعلى فوق المخططات والتسميات الأخرى؛

  • checkbox Show all diagrams: يعرض جميع المخططات البيانية حتى لو تداخلت مع بعضها؛

  • Show diagram: يسمح برسم مخططات بيانية محددة فقط؛

  • Always Show: يحدد مخططات بيانية معيّنة لرسمها دائمًا، حتى عندما تتداخل مع مخططات أخرى أو مع تسميات الخريطة؛

  • ضبط الظهور المعتمد على مقياس الرسم؛

../../../_images/diagram_tab_appearance.png

شكل 12.38 خصائص المخطط البياني - تبويب الرسم

12.1.5.3. الحجم

Size هو التبويب الرئيسي لضبط طريقة تمثيل الإحصاءات المحددة. ويمكن أن تكون وحدات حجم المخطط البياني 'Millimeters' أو 'Points' أو 'Pixels' أو 'Map Units' أو 'Inches'. ويمكنك استخدام:

  • Fixed size، حجم موحّد لتمثيل رسم جميع المعالم (غير متاح للمدرجات التكرارية)

  • أو Scaled size، المبني على تعبير يستخدم سمات الطبقة:

    1. في Attribute، اختر حقلًا أو أنشئ تعبيرًا

    2. اضغط Find لإرجاع Maximum value للسمة أو أدخل قيمة مخصّصة في عنصر الواجهة.

    3. للمدرج التكراري والأعمدة المكدّسة، أدخل قيمة Bar length المستخدمة لتمثيل Maximum value للسمات. ثم يُحجَّم طول العمود لكل معلم خطيًا للحفاظ على هذا التطابق.

    4. للمخطط الدائري والمخطط النصي، أدخل قيمة Size المستخدمة لتمثيل Maximum value للسمات. ثم تُحجَّم مساحة الدائرة أو قطرها لكل معلم خطيًا للحفاظ على هذا التطابق (بدءًا من 0). ومع ذلك يمكن تعيين Minimum size للمخططات الصغيرة.

../../../_images/diagram_tab_size.png

شكل 12.39 خصائص المخطط البياني - تبويب الحجم

12.1.5.4. الموضع

يحدد Placement موضع المخطط البياني. وبحسب نوع الشكل الهندسي للطبقة، يوفّر خيارات مختلفة للوضع (مزيد من التفاصيل في الموضع):

  • Around point أو Over point للأشكال الهندسية النقطية. ويتطلب المتغير الأول نصف قطر يلتزم به.

  • Around line أو Over line للأشكال الهندسية الخطية. وكما في المعالم النقطية، يتطلب المتغير الأول مسافة يلتزم بها، ويمكنك تحديد موضع المخطط البياني بالنسبة إلى المعلم ('فوق' الخط و'عليه' و/أو 'تحته'). ومن الممكن اختيار عدة خيارات معًا، وفي هذه الحالة سيبحث QGIS عن الموضع الأمثل للمخطط البياني. وتذكّر أنه يمكنك أيضًا استخدام اتجاه الخط لتحديد موضع المخطط البياني.

  • Around centroid (على Distance محددة) و Over centroid و Using perimeter و Inside polygon هي الخيارات المتاحة لمعالم المضلعات.

توفّر مجموعة Coordinate تحكمًا مباشرًا في وضع المخطط البياني لكل معلم على حدة، باستخدام سماته أو تعبير لتعيين الإحداثيين X و Y. ويمكن أيضًا ملء هذه المعلومات باستخدام أداة نقل التسميات والمخططات البيانية.

في قسم Priority يمكنك تعريف رتبة أولوية الوضع لكل مخطط بياني، أي إذا وُجدت عدة مخططات بيانية أو تسميات مرشّحة للموقع نفسه، فسيُعرض العنصر ذو الأولوية الأعلى وقد تُستبعد العناصر الأخرى.

يحدد Discourage diagrams and labels from covering features المعالم التي ستُستخدم بوصفها عوائق، أي أن QGIS سيحاول عدم وضع المخططات البيانية أو التسميات فوق هذه المعالم. ثم تُستخدم رتبة الأولوية لتقييم ما إذا كان يمكن حذف مخطط بياني بسبب معلم عائق ذي وزن أكبر.

../../../_images/diagram_tab_placement.png

شكل 12.40 نافذة حوار خصائص الطبقة المتجهية مع خصائص المخطط البياني، تبويب الموضع

12.1.5.5. الخيارات

يحتوي تبويب Options على إعدادات للمدرجات التكرارية والأعمدة المكدّسة. ويمكنك اختيار ما إذا كان Bar orientation ينبغي أن يكون Up أو Down أو Right أو Left، للمخططات الأفقية والرأسية.

12.1.5.6. مفتاح الخريطة

من تبويب Legend يمكنك اختيار عرض عناصر المخطط البياني في لوحة الطبقات، وفي مفتاح الخريطة في تخطيط الطباعة، بجوار ترميز الطبقة:

  • حدّد Show legend entries for diagram attributes لعرض الخاصيتين Color و Legend في مفاتيح الخريطة، كما عُيِّنتا سابقًا في تبويب Attributes؛

  • وعند استخدام حجم محجَّم للمخططات البيانية، اضغط زر Legend Entries for Diagram Size... لتهيئة مظهر رمز المخطط البياني في مفاتيح الخريطة. يفتح ذلك نافذة الحوار Data-defined Size Legend الموصوفة خياراتها في مفتاح الخريطة للحجم المعرّف بالبيانات.

عند ضبط ذلك، تُعرض عناصر مفتاح الخريطة للمخطط البياني (السمات مع اللون وحجم المخطط) أيضًا في مفتاح الخريطة في تخطيط الطباعة، بجوار ترميز الطبقة.

12.1.5.7. المخططات البيانية المكدّسة

تتيح المخططات البيانية المكدّسة للمستخدمين إنشاء مخططات معقدة مثل الأهرام السكانية، حيث يوجد مخططان فرعيان، هما مدرجان تكراريان، متجاوران ومعروضان أفقيًا.

../../../_images/population_pyramids.png

شكل 12.41 أهرام سكانية مبنية لكل معلم في الطبقة

يمكن أيضًا بناء مخططات بيانية متعددة الأزمنة بوصفها مخططات مكدّسة. ويمكن تهيئة عدد المخططات الفرعية وكذلك المسافة بينها.

علاوة على ذلك، يمكن أن تكون المخططات الفرعية من أنواع مختلفة (مثل مخطط دائري بجانب مدرج تكراري) وأن تكون لها إعداداتها المستقلة مثل السمات و الرسم و الحجم و الخيارات و مفتاح الخريطة.

تتحدد إعدادات الموضع في المخطط المكدّس، وكذلك بعض إعدادات الظهور (الموجودة في تبويب الرسم)، بإعدادات الموضع والظهور للمخطط الفرعي الأول في المكدّس.

وأخيرًا، يتحدد ترتيب المخططات الفرعية بترتيب العناصر في قائمة المخطط المكدّس. ويظهر المخطط الفرعي الأول على اليسار في المخطط المكدّس الأفقي، أو في الجزء العلوي من المخطط الرأسي.

12.1.6. خصائص الأقنعة

يساعدك تبويب labelmask Masks على تهيئة تراكب رموز الطبقة الحالية مع طبقات رموز أو تسميات أخرى من أي طبقة. والهدف من ذلك تحسين مقروئية الرموز والتسميات المتقاربة الألوان التي قد يصعب تمييزها عند تداخلها؛ إذ يضيف قناعًا مخصّصًا وشفافًا حول العناصر "لإخفاء" أجزاء من طبقات الرموز في الطبقة الحالية.

لتطبيق الأقنعة على الطبقة النشطة، عليك أولًا أن تفعّل في المشروع إما طبقات رموز القناع أو أقنعة التسميات. ثم حدّد من تبويب Masks:

  • Masked symbol layers: تسرد في بنية شجرية جميع طبقات الرموز في الطبقة الحالية. ويمكنك هناك اختيار عنصر طبقة الرمز الذي تريد "قصّه" بشفافية عند تداخله مع مصادر القناع المحددة

  • تبويب Mask sources: يسرد جميع أقنعة التسميات وطبقات رموز القناع المعرّفة في المشروع. اختر العناصر التي ستولّد القناع فوق طبقات الرموز المقنّعة المحددة

../../../_images/masks_properties.png

شكل 12.42 خصائص الطبقة - تبويب الأقنعة

12.1.7. خصائص العرض ثلاثي الأبعاد

يوفّر تبويب 3d 3D View إعدادات للطبقات المتجهية التي ينبغي تمثيلها في أداة عرض الخريطة ثلاثي الأبعاد.

لعرض طبقة بشكل ثلاثي الأبعاد، اختر من القائمة المنسدلة أعلى التبويب أحد الخيارين:

  • Single symbol: تُرسم المعالم باستخدام رمز ثلاثي الأبعاد مشترك يمكن أن تكون خصائصه معرّفة بالبيانات أو لا. اقرأ التفاصيل حول ضبط رمز ثلاثي الأبعاد لكل نوع من أنواع الأشكال الهندسية للطبقة.

  • Rule-based: يمكن تعريف إعدادات رموز متعددة وتطبيقها انتقائيًا بناءً على مرشحات التعبيرات ونطاق مقياس الرسم. مزيد من التفاصيل حول الطريقة في الرسم القائم على القواعد.

../../../_images/3d_view_properties.png

شكل 12.43 الخصائص ثلاثية الأبعاد لطبقة نقطية

تنبيه

فضّل تبويب Elevation لإعدادات ارتفاع الرمز والتضاريس

ترث خصائص المعالم المتعلقة بالارتفاع والمنسوب (Altitude clamping و Altitude binding و Extrusion أو Height) في تبويب 3D View قيمها الافتراضية من خصائص الارتفاع للطبقة، ويُفضَّل ضبطها من داخل تبويب Elevation.

لأداء أفضل، تُحمَّل بيانات الطبقات المتجهية في الخلفية باستخدام تعدد الخيوط، وتُرسم في بلاطات يمكن التحكم في حجمها من قسم Layer rendering في التبويب:

  • Zoom levels count: يحدد عمق الشجرة الرباعية. فمثلًا، يعني مستوى تكبير واحد أنه ستوجد بلاطة واحدة للطبقة كاملة. ويعني ثلاثة مستويات تكبير أنه ستوجد 16 بلاطة على مستوى الأوراق (وكل مستوى تكبير إضافي يضرب ذلك في 4). القيمة الافتراضية 3 والقيمة القصوى 8.

  • checkbox Show bounding boxes of tiles: مفيد خصوصًا إذا كانت هناك مشكلات في عدم ظهور البلاطات حين ينبغي ظهورها.

12.1.8. خصائص الحقول

يوفّر تبويب sourceFields Fields معلومات عن الحقول المرتبطة بالطبقة ويساعدك على تنظيمها.

يمكن جعل الطبقة قابلة للتحرير باستخدام toggleEditing Toggle editing mode. وعندئذٍ يمكنك تعديل بنيتها باستخدام زري newAttribute New field و deleteAttribute Delete field.

عند إنشاء newAttribute New field، لا يتوفر خيار Comment إلا لمصادر البيانات التي تسمح بتحرير التعليقات (انظر مدخلات قواعد البيانات لمزيد من التفاصيل). ويمكنك أيضًا تعيين أسماء مستعارة ضمن نافذة الحوار Add Field، لصيغ OGR المدعومة (GeoPackage و ESRI File Geodatabase).

../../../_images/add_field_comments_aliases.png

شكل 12.44 نافذة حوار إضافة حقل

يمكنك أيضًا إعادة تسمية الحقول بالنقر المزدوج على اسمها. ولا يُدعم ذلك إلا لمزوّدي بيانات مثل PostgreSQL و Oracle وطبقة الذاكرة وبعض طبقات GDAL بحسب إصدار GDAL.

إذا كان الاسم المستعار للحقل معيّنًا في مصدر البيانات الأساسي أو في خصائص النماذج، فإنه يُعرض أيضًا. والاسم المستعار هو اسم حقل مقروء للإنسان يمكنك استخدامه في نموذج المعلم أو جدول البيانات الوصفية. وتُحفظ الأسماء المستعارة في ملف المشروع.

إلى جانب الحقول الموجودة في مجموعة البيانات، بما فيها الحقول الافتراضية و التخزين المساعد، يسرد تبويب Fields أيضًا الحقول من أي طبقات مضمومة. وبحسب مصدر الحقل، يُطبَّق عليه لون خلفية مختلف.

لكل حقل مُدرج، تسرد نافذة الحوار أيضًا خصائص للقراءة فقط مثل Type و Type name و Length و Precision`.

بحسب مزوّد البيانات، يمكنك ربط تعليق بحقل، مثلًا عند إنشائه. وتُسترجع هذه المعلومة وتُعرض في عمود Comment، ثم تظهر لاحقًا عند تمرير المؤشر فوق تسمية الحقل في نموذج المعلم.

ضمن عمود Configuration يمكنك ضبط سلوك الحقل في ظروف معيّنة:

  • Not searchable: حدّد هذا الخيار إذا كنت لا تريد أن يُستعلم عن هذا الحقل عبر شريط البحث (Locator)

  • Do not expose via WMS: حدّد هذا الخيار إذا كنت لا تريد عرض هذا الحقل عند تقديم الطبقة بوصفها WMS من QGIS server

  • Do not expose via WFS: حدّد هذا الخيار إذا كنت لا تريد عرض هذا الحقل عند تقديم الطبقة بوصفها WFS من QGIS server

../../../_images/fields_properties.png

شكل 12.45 تبويب خصائص الحقول

12.1.9. خصائص نموذج البيانات الوصفية

يساعدك تبويب formView Attributes Form على إعداد النموذج الذي يُعرض عند إنشاء معالم جديدة أو تحرير المعالم الموجودة أو الاستعلام عنها. ويؤثر ذلك فيها في كل من عرض الجدول وعرض النموذج. ويمكنك تعريف:

  • مظهر وسلوك (التسمية، والظهور، وعنصر الواجهة، والقيود...) كل حقل في الطبقة الحالية، و الطبقات المضمومة و الطبقات المرتبطة بعلاقات؛

  • موضع الإجراءات المفعّلة؛

  • بنية النموذج (مخصّصة أو مولَّدة تلقائيًا)؛

  • عناصر واجهة إضافية من نوع HTML و QML ونص لتحسين النموذج؛

  • منطق إضافي بلغة Python للتعامل مع التفاعل مع النموذج أو عناصر واجهة الحقول.

في أعلى يمين نافذة الحوار، يمكنك ضبط ما إذا كان النموذج يُفتح افتراضيًا عند إنشاء معالم جديدة. ويمكن تهيئة ذلك لكل طبقة أو بشكل عام عبر خيار Suppress attribute form pop-up after feature creation في قائمة Settings ► Options ► Digitizing.

12.1.9.1. تخصيص نموذج لبياناتك

افتراضيًا، عند النقر على معلم باستخدام أداة identify Identify Features أو عند تحويل جدول البيانات الوصفية إلى نمط عرض النموذج، يعرض QGIS نموذجًا أساسيًا بعناصر واجهة معرّفة مسبقًا (عادةً مربعات أرقام ومربعات نصوص --- ويُمثَّل كل حقل في صف مخصّص بتسميته بجوار عنصر الواجهة). وإذا كانت هناك علاقات معيّنة على الطبقة، فتُعرض حقول الطبقات المرجِعة في إطار مضمّن أسفل النموذج، وفق البنية الأساسية نفسها.

هذا العرض هو نتيجة القيمة الافتراضية Autogenerate لإعداد Attribute editor layout في تبويب Layer properties ► Attributes Form. ولهذه الخاصية ثلاث قيم مختلفة:

  • Autogenerate: يحافظ على البنية الأساسية "صف واحد - حقل واحد" للنموذج لكنه يتيح تخصيص كل عنصر واجهة مقابل.

  • Drag-and-drop designer: إلى جانب تخصيص عناصر الواجهة، يمكن جعل بنية النموذج أكثر تعقيدًا، مثلًا بعناصر واجهة مضمّنة في مجموعات وتبويبات.

  • Provide ui file: يتيح استخدام ملف Qt designer، ومن ثمّ قالب يُحتمل أن يكون أكثر تعقيدًا وتكاملًا في الميزات، بوصفه نموذج المعلم.

أسفل إعداد Attribute editor layout مباشرة، يتيح لك مربع بحث تصفية الحقول والعلاقات والحاويات وعناصر الواجهة المتاحة الأخرى.

بالنسبة إلى العناصر التي تدعم الأسماء المستعارة، مثل الحقول أو العلاقات، يستهدف المرشح كلًا من الأسماء والأسماء المستعارة.

يتيح لك زر toggleAliases Show field aliases instead of names التبديل بين الأسماء المستعارة للحقول وأسمائها.

عند عرض الأسماء المستعارة، تُعرض أسماء الحقول التي لا يوجد لها اسم مستعار باللون الرمادي الفاتح لتسهيل التعرف عليها.

../../../_images/attributes_form_toggle_aliases.gif

شكل 12.46 البحث في الحقول باستخدام الأسماء المستعارة والأسماء في صفحة نموذج البيانات الوصفية

النموذج المولَّد تلقائيًا

عند تفعيل خيار Autogenerate، تعرض لوحة Available widgets قوائم بالحقول (من الطبقة الحالية وطبقات الضم والعلاقات) والإجراءات المفعّلة التي ستظهر في النموذج. اختر حقلًا ويمكنك تهيئة مظهره وسلوكه في اللوحة اليمنى:

في نمط المحرر هذا، لا يمكن سوى عرض خصائص الإجراءات. علاوة على ذلك، ستُعرض عبر قائمة منسدلة Actions في نموذج المعلم، ووفق خاصية Show in attribute table في السياقات الأخرى.

مصمّم السحب والإفلات

يتيح لك مصمّم السحب والإفلات إنشاء نموذج يحتوي على عدة حاويات (تبويبات أو مجموعات) لعرض حقول البيانات الوصفية أو عناصر واجهة أخرى غير مرتبطة مباشرة بحقل معيّن (مثل عناصر واجهة HTML/QML أو الإجراءات المعرّفة للطبقة)، كما هو موضح مثلًا في شكل 12.47.

../../../_images/resulting_feature_form.png

شكل 12.47 النموذج المدمج الناتج مع تبويبات ومجموعات مسمّاة

  1. اختر Drag and drop designer من القائمة المنسدلة Select attribute layout editor. يفعّل ذلك لوحة Form Layout بجوار لوحة Available widgets، وهي مملوءة بالحقول الموجودة. ويعرض الحقل المحدد خصائصه في لوحة ثالثة.

  2. حدّد الحقول التي لا تريد استخدامها في لوحة Form Layout واضغط زر symbologyRemove لإزالتها. ويمكنك أيضًا عكس التحديد باستخدام زر invertSelection Invert selection.

  3. اسحب الحقول وأفلتها من اللوحة الأولى إلى لوحة Form Layout لإعادة إضافتها. ويمكن إضافة الحقل نفسه عدة مرات.

  4. اسحب الحقول وأفلتها داخل لوحة Form Layout لإعادة ترتيب مواضعها.

  5. أضف حاويات لتجميع الحقول المنتمية إلى الفئة نفسها وتحسين بنية النموذج.

    1. الخطوة الأولى هي استخدام أيقونة symbologyAdd Add a new tab or group to the form layout. وستُعرض الحقول والمجموعات الأخرى بداخلها.

    2. ثم اضبط خصائص الحاوية، أي:

      • Label: العنوان الذي سيُستخدم للحاوية

      • Container Type: يمكن أن يكون Tab أو Group box in container (مربع مجموعة قابل للطي داخل تبويب أو مجموعة أخرى) أو Row (نوع حاوية يتيح لك ترتيب عناصر الواجهة في صف أفقي، مع تحديد عدد الأعمدة تلقائيًا بناءً على عدد عناصر الواجهة)،

      • Within: تتيح لك هذه الميزة الاختيارية تحديد حاوية موجودة ستُضمَّن فيها الحاوية الجديدة (Group box in container أو Row).

      • و Number of columns التي ينبغي توزيع الحقول المضمّنة عليها

      ../../../_images/attribute_editor_layout.png

      شكل 12.48 نافذة حوار لإنشاء الحاويات باستخدام Attribute editor layout

      يمكن لاحقًا تحديث هذه الخصائص وغيرها بتحديد العنصر، ثم من اللوحة الثالثة:

      • إخفاء تسمية الحاوية أو إظهارها

      • إعادة تسمية الحاوية

      • تعيين عدد الأعمدة

      • إدخال تعبير للتحكم في ظهور الحاوية. وسيُعاد تقييم التعبير في كل مرة تتغير فيها القيم في النموذج، ويُعرض التبويب أو مربع المجموعة أو يُخفى وفقًا لذلك

      • checkbox Show as Group Box: يحوّل تبويبًا إلى مربع مجموعة في المستوى الأعلى والعكس

      • في حالة مربع المجموعة، اضبط ما إذا كان ينبغي أن يظهر عند فتح النموذج بحالة Collapsed لجميع المعالم، أو فقط للمعالم المطابقة لتعبير (Control collapsed by expression).

      • تهيئة مظهر Style للحاوية، مع Background color مخصّص ولون التسمية وخصائص الخط

    3. يمكنك إنشاء وتضمين ما تشاء من الحاويات بالضغط مجددًا على أيقونة symbologyAdd Add a new tab or group to the form layout.

  6. الخطوة التالية هي إسناد الحقول المناسبة إلى كل حاوية، بالسحب والإفلات ببساطة. ويمكن أيضًا نقل مربعات المجموعات والتبويبات بالطريقة نفسها.

  7. خصّص عنصر الواجهة للحقول المستخدمة

  8. إذا كانت الطبقة طرفًا في علاقة واحد أو متعدد إلى متعدد، فاسحب اسم العلاقة من لوحة Available Widgets وأفلته في لوحة Form Layout. سيُضمَّن نموذج البيانات الوصفية للطبقة المرتبطة في المكان المختار من نموذج الطبقة الحالية. وكما في العناصر الأخرى، حدّد تسمية العلاقة لتهيئة بعض الخصائص:

    • إخفاء تسمية العلاقة أو إظهارها

    • إظهار زر الربط

    • إظهار زر فك الربط

  9. إذا كان للطبقة إجراء واحد أو أكثر مفعّل بنطاق Layer أو Feature، فستُسرد الإجراءات تحت Actions ويمكنك سحبها وإفلاتها كما في الحقول الأخرى. وسيُضمَّن الإجراء المرتبط في المكان المختار من نموذج الطبقة الحالية.

  10. خصّص النموذج أكثر بإضافة عنصر واجهة أو أكثر من Other Widgets (انظر عناصر واجهة أخرى)

  11. طبّق نافذة حوار خصائص الطبقة

  12. افتح نموذج البيانات الوصفية لمعلم (مثلًا باستخدام أداة identify Identify features) وينبغي أن يعرض النموذج الجديد.

عناصر واجهة أخرى

يوفّر مصمّم السحب والإفلات عددًا من عناصر الواجهة غير المرتبطة بحقل معيّن. ويمكن استخدامها لتحسين مظهر النموذج أو لعرض قيم محسوبة ديناميكيًا.

  • HTML Widget: يضمّن صفحة HTML، وقد يحتوي مصدر HTML على نتيجة تعبيرات محسوبة ديناميكيًا.

    يمكن استخدام عناصر واجهة HTML مثلًا لعرض الصور المخزنة بصيغة BLOB في حقل (لنسمّه photo):

    1. في وضع Drag-and-drop designer، أضف HTML Widget إلى Form Layout الخاص بك.

    2. انقر نقرًا مزدوجًا على HTML Widget لتهيئته.

    3. غيّر Title الافتراضي أو أخفِه.

    4. اضغط الزر expression وأدخل تعبير QGIS التالي:

      '<img src= "data:image/png;base64,' || to_base64("photo") || '">'
      

      تأكد من استبدال photo باسم حقل BLOB الخاص بك. ينشئ التعبير أعلاه سلسلة نصية تحتوي على وسم صورة HTML يُرمَّز فيه ملف BLOB.

    5. طبّق نافذة الحوار ثم اضغط الزر symbologyAdd.

    6. يطبّق QGIS تلقائيًا تنسيق HTML والدوال اللازمة لتقييم تعبيرك، فينتج الكود التالي:

      <script>document.write(expression.evaluate("'<img src=\"data:image/png;base64,' || to_base64(\"photo\") || '\">'"));</script>
      

      تُعرض معاينة لصورتك على اليمين.

  • QML Widget: يُضمّن مستند Qt QML، ويعرض عناصر رسومية في نموذج البيانات الوصفية. إلى جانب Title المخصص لعنصر الواجهة المضاف وتحديد ما إذا كان سيُعرض أم لا، يمكنك الاختيار من عناصر QML code المعرّفة مسبقًا:

    • Free text...: يتيح لك الكتابة من الصفر أو لصق كود موجود

    • Rectangle: يوفّر كودًا أدنى لعرض مستطيل

    • Bar chart: يوفّر كودًا أدنى لعرض مخطط أعمدة

    • Pie chart: يوفّر كودًا أدنى لعرض مخطط دائري

    يمكنك توسيع الكود باستخدام صياغة QML، أو استخدام حقول الطبقة أو تعابير QGIS التي تُحسب ديناميكيًا.

    ../../../_images/qml_widget_dialog.png

    شكل 12.49 إعداد رسم بياني QML ليُعرض في نموذج البيانات الوصفية

  • Text Widget: يعرض عنصر واجهة نصيًا يدعم وسوم HTML الأساسية وقد يحتوي على نتيجة تعابير تُحسب ديناميكيًا.

  • Spacer Widget: يُدرج مستطيلًا شفافًا فارغًا، فيزيد المسافة الرأسية بين عنصرَي واجهة.

نصيحة

عرض محتوى ديناميكي

تدعم عناصر الواجهة المذكورة أعلاه (باستثناء Spacer Widget) التعابير التي يمكن استخدامها لعرض محتوى يتغير ديناميكيًا كلما تغيّر حقل آخر في النموذج. يمكن تحقيق ذلك باستخدام الدالة current_value('field_name') في التعبير لفحص قيمة حقل آخر.

استخدام ملف ui مخصص

يتيح لك الخيار Provide ui-file استخدام نوافذ حوار معقدة مصممة باستخدام Qt-Designer. يمنحك استخدام ملف UI حرية كبيرة في إنشاء نافذة الحوار. لاحظ أنه لربط الكائنات الرسومية (مربع النص، القائمة المنسدلة...) بحقول الطبقة، يجب أن تمنحها الاسم نفسه.

استخدم Edit UI لتحديد مسار الملف المراد استخدامه.

يمكن أيضًا استضافة ملفات UI على خادم بعيد. في هذه الحالة، تُدخل عنوان URL للنموذج بدلًا من مسار الملف في Edit UI.

ستجد بعض الأمثلة في درس إنشاء نموذج جديد من دليل QGIS التدريبي. لمعلومات أكثر تقدمًا، راجع https://woostuff.wordpress.com/2011/09/05/qgis-tips-custom-feature-forms-with-python-logic/.

عزّز نموذجك باستخدام دوال مخصصة

يمكن أن تحتوي نماذج QGIS على دالة Python تُستدعى عند فتح نافذة الحوار. استخدم هذه الدالة لإضافة منطق إضافي إلى نوافذ الحوار. يمكن تحديد كود النموذج بثلاث طرق مختلفة:

  • load from the environment: استخدام دالة موجودة مثلًا في startup.py أو في إضافة مثبّتة

  • load from an external file: تتيح لك نافذة اختيار الملفات تحديد ملف Python من نظام ملفاتك أو إدخال عنوان URL لملف بعيد.

  • provide code in this dialog: يظهر محرر Python يمكنك فيه كتابة الدالة المراد استخدامها مباشرة.

في جميع الحالات، يجب إدخال اسم الدالة التي ستُستدعى (open في المثال أدناه).

مثال على ذلك (في الوحدة MyForms.py):

def open(dialog,layer,feature):
    geom = feature.geometry()
    control = dialog.findChild(QWidget,"My line edit")

أشِر إليها في Python Init Function هكذا: open

12.1.9.2. تهيئة سلوك الحقل

يساعدك الجزء الرئيسي من تبويب Attributes Form على تعيين نوع عنصر الواجهة المستخدم لتعبئة قيم الحقل أو عرضها، في جدول البيانات الوصفية أو نموذج المعلم: يمكنك تحديد كيفية تفاعل المستخدم مع كل حقل والقيم أو نطاقات القيم المسموح بإضافتها إليه.

../../../_images/edit_widgets_dialog.png

شكل 12.50 نافذة حوار لاختيار عنصر واجهة التحرير لعمود سمة

نصيحة

نسخ إعدادات عنصر الواجهة ولصقها

يمكن نسخ إعدادات الحقل إلى الحافظة ثم لصقها في حقل آخر بالنقر بزر الفأرة الأيمن على حقل في لوحة Available widgets.

يفيد ذلك في توفير الوقت والتأكد من تطبيق الإعدادات المشتركة بشكل صحيح على عدة حقول مترابطة، مثلًا عند تهيئة عناصر واجهة حقلَي خط العرض وخط الطول.

يمكن نسخ إعدادات عنصر الواجهة ولصقها بين حقول الطبقة نفسها، أو بين حقول طبقات مختلفة في مشروع QGIS، أو بين حقول طبقات في نسخ QGIS مختلفة قيد التشغيل.

لاحظ أنه لا تُنسخ الأسماء المستعارة ولا التعليقات، لأنها خاصة بكل حقل على حدة.

الإعدادات المشتركة

بغض النظر عن نوع عنصر الواجهة المطبّق على الحقل، هناك بعض الخصائص المشتركة التي يمكنك تعيينها للتحكم في إمكانية تحرير الحقل وكيفيته.

عرض عنصر الواجهة

تساعدك هذه المجموعة، المتاحة فقط في وضع المصمّم السحب والإفلات، على تهيئة مظهر عنصر الواجهة المخصص للحقل:

  • Show label: يحدد ما إذا كان اسم الحقل سيُعرض في النموذج

  • Override label color: يطبّق لونًا محددًا على تسمية الحقل

  • Override label font: يطبّق خصائص خط محددة (عريض، مائل، مسطّر، مشطوب، أو عائلة الخط) على تسمية الحقل

  • Size: يتيح التحكم في كيفية تغيّر أحجام عناصر الواجهة نسبيًا عند تغيير حجم نموذج البيانات الوصفية.

    • Horizontal stretch: يعيّن قيمة أفقية أعلى لعناصر الواجهة التي تحتاج إلى مساحة أفقية أكبر.

    • Vertical stretch: يحدد كيفية تغيّر حجم عناصر الواجهة رأسيًا عند تغيير حجم النموذج.

الخيارات العامة
  • Alias: اسم مقروء للبشر يُستخدم للحقول. يُعرض الاسم المستعار في نموذج المعلم، وجدول البيانات الوصفية، وفي لوحة Identify results. ويمكن أيضًا استخدامه بديلًا لاسم الحقل في منشئ التعابير، مما يسهّل فهم التعابير ومراجعتها. تُحفظ الأسماء المستعارة في ملف المشروع.

  • Comment: يعرض تعليق الحقل كما يظهر في تبويب Fields، في حالة للقراءة فقط. تُعرض هذه المعلومة تلميحًا عند تمرير المؤشر فوق تسمية الحقل في نموذج المعلم.

  • checkbox Editable: ألغِ تحديد هذا الخيار لجعل الحقل للقراءة فقط (غير قابل للتعديل يدويًا) حتى عندما تكون الطبقة في وضع التحرير. لاحظ أن تحديد هذا الإعداد لا يتجاوز أي قيود تحرير يفرضها مزوّد البيانات. يمكن التحكم في هذا الخيار عبر خاصية معرّفة بالبيانات بفضل الزر dataDefine Data-defined override.

  • checkbox Reuse last entered value: يتذكر آخر قيمة أُدخلت في هذا الحقل ويستخدمها قيمةً افتراضية للمعلم التالي الذي يُحرَّر في الطبقة.

  • checkbox Label on top: يضع اسم الحقل فوق عنصر الواجهة أو بجانبه في نموذج المعلم.

القيود

يمكنك تقييد القيمة المراد إدخالها في الحقل. يمكن أن يكون هذا القيد:

  • checkbox Not null: يُلزم المستخدم بتقديم قيمة؛

  • checkbox Unique: يضمن أن تكون القيمة المُدخلة فريدة في الحقل بأكمله؛

  • مبنيًا على expression مخصص: مثلًا not regexp_match(col0,'[^A-Za-z]') سيضمن أن قيمة الحقل col0 تحتوي على حروف أبجدية فقط. يمكن إضافة وصف قصير لمساعدتك على تذكّر القيد.

كلما أُضيفت قيمة أو حُرّرت في حقل، فإنها تخضع للقيود الموجودة و:

  • إذا استوفت جميع المتطلبات، تظهر علامة صح خضراء بجانب الحقل في النموذج؛

  • إذا لم تستوفِ جميع المتطلبات، يُلوَّن الحقل بالأصفر أو البرتقالي وتُعرض علامة خطأ مقابلة بجانب عنصر الواجهة. يمكنك تمرير المؤشر فوق علامة الخطأ لتتذكر القيود المطبقة على الحقل وتصحّح القيمة:

    • تظهر علامة خطأ صفراء عندما يكون القيد غير المستوفى قيدًا غير مُلزِم (soft constraint)، ولا يمنعك من حفظ التغييرات بالقيم "الخاطئة"؛

    • لا يمكن تجاهل علامة الخطأ البرتقالية، ولا تسمح لك بحفظ تعديلاتك حتى تستوفي القيود. تظهر عند تحديد الخيار checkbox Enforce constraint (hard constraint).

القيم الافتراضية
  • Default value: للمعالم الجديدة، يملأ الحقل تلقائيًا افتراضيًا بقيمة معرّفة مسبقًا أو بقيمة مبنية على تعبير. على سبيل المثال، يمكنك:

    • استخدام $x و $length و $area لملء حقل تلقائيًا بالإحداثي X للمعلم أو طوله أو مساحته أو أي معلومة هندسية عند إنشائه؛

    • زيادة قيمة حقل بمقدار 1 لكل معلم جديد باستخدام maximum("field")+1؛

    • حفظ تاريخ ووقت إنشاء المعلم باستخدام now()؛

    • استخدام المتغيرات في التعابير، مما يسهّل مثلًا إدراج اسم المشغّل (@user_full_name)، أو مسار ملف المشروع (@project_path)، ...

    تُعرض معاينة للقيمة الافتراضية الناتجة أسفل عنصر الواجهة.

    ملاحظة

    لا يعرف الخيار Default value القيم الموجودة في أي حقل آخر من المعلم الجاري إنشاؤه، لذا لن يكون من الممكن استخدام تعبير يجمع أيًّا من تلك القيم، أي أن استخدام تعبير مثل concat(field1, field2) قد لا يعمل.

  • checkbox Apply default value on update: كلما تغيّرت سمة المعلم أو شكله الهندسي، يُعاد حساب القيمة الافتراضية. قد يفيد ذلك في حفظ قيم مثل آخر مستخدم عدّل البيانات، أو آخر وقت تغيّرت فيه...

السياسات

تحدد سياسات الحقول كيفية تعيين القيم للحقول أثناء عمليات التحرير المختلفة:

سياسات التقسيم والتكرار

تنطبق هذه السياسات عند Splitting features أو Duplicating features:

  • Duplicate Values: يحتفظ بالقيمة الحالية للحقل في المعالم الجديدة.

  • Use Default Value: يعيد تعيين الحقل بإعادة حساب قيمته الافتراضية. إذا لم يوجد شرط لقيمة افتراضية، تُحفظ القيمة الحالية في المعالم الجديدة.

  • Remove Value: يمسح الحقل ليصبح غير مُعيَّن.

  • Use Ratio Geometries: يعيد حساب قيمة الحقل لجميع الأجزاء المقسّمة بضرب القيمة الحالية في نسبة أطوال الأجزاء المقسّمة أو مساحاتها.

سياسات الدمج

تحدد هذه السياسات القيم الأولية عند Merging features:

  • Remove Value: يمسح الحقل ليصبح غير مُعيَّن (قد يملأ مزوّد البيانات القيمة الافتراضية).

  • Use Default Value: يستخدم القيمة الافتراضية للحقل المعيّنة في QGIS. (تستخدم التعابير معلمًا وهميًا بالشكل الهندسي المدمج؛ ولن تعمل الإشارات إلى الحقول الأخرى).

  • Use Sum (للحقول الرقمية فقط): يجمع القيم من جميع المعالم المدمجة.

  • Use Minimum Value (للحقول الرقمية فقط): يستخدم أصغر قيمة من المعالم المحددة.

  • Use Maximum Value (للحقول الرقمية فقط): يستخدم أكبر قيمة من المعالم المحددة.

  • Average Weighted by Geometry (للحقول الرقمية فقط): تُحسب القيم الجديدة على أنها المتوسط المرجّح لقيم المصدر.

  • Use Largest Feature: يستخدم القيمة من المعلم ذي الشكل الهندسي الأكبر.

  • Set to NULL: يعيّن السمة إلى NULL.

عناصر واجهة التحرير

بناءً على نوع الحقل، يحدد QGIS تلقائيًا نوع عنصر واجهة افتراضيًا ويعيّنه له. يمكنك بعد ذلك استبدال عنصر الواجهة بأي عنصر آخر متوافق مع نوع الحقل. عناصر الواجهة المتاحة هي:

  • Binary (BLOB): متاح فقط للحقول الثنائية، ويعرض افتراضيًا تسمية بحجم البيانات المضمّنة، إن لم يكن الحقل فارغًا. يتيح زر منسدل بجانب التسمية ما يلي:

    • Embed file، لاستبدال محتوى الحقل أو تعبئته

    • Clear contents، لإزالة أي بيانات في الحقل

    • Save contents to file، لتصدير البيانات كملف على القرص

    يمكن أيضًا معاينة الملف الثنائي المضمّن في الحقل، إذا اقترن في نموذج سحب وإفلات مع عنصر واجهة QML أو HTML مثلًا.

  • Checkbox: يعرض مربع اختيار تحدد حالته القيمة المراد إدخالها. داخليًا، يخزّن عنصر الواجهة قيمة (مثلًا 1 للمحدد، و0 لغير المحدد) بينما يمثّلها مرئيًا كمربع قابل للتبديل. يمكنك تهيئة القيم المخزنة لحالتَي التحديد وعدمه في التمثيل. ويمكن أيضًا عرض حالة مربع الاختيار كنص عادي باستخدام التسميتين "True"/"False". تؤثر هذه الإعدادات في كيفية عرض القيم في أدوات رسم التصنيف.

  • Classification: متاح فقط عند تطبيق ترميز مصنّف على الطبقة، ويعرض قائمة منسدلة بقيم الفئات.

  • Color: يعرض عنصر واجهة الألوان الذي يتيح اختيار لون؛ وتُخزَّن قيمة اللون بصيغة HTML في جدول البيانات الوصفية.

  • Date/Time: يعرض حقلًا سطريًا يمكنه فتح عنصر واجهة تقويم لإدخال تاريخ أو وقت أو كليهما. يجب أن يكون نوع العمود نصيًا. يمكنك اختيار تنسيق مخصص، وإظهار تقويم منبثق، وغير ذلك.

  • Enumeration: يفتح قائمة منسدلة بقيم معرّفة مسبقًا مجلوبة من قاعدة البيانات. هذا مدعوم حاليًا فقط من مزوّد PostgreSQL، للحقول من نوع enum.

  • Attachment: يستخدم نافذة حوار "Open file" لتخزين مسار الملف بنمط نسبي أو مطلق. يمكن استخدامه لعرض مسار المستند كرابط تشعبي أو لعرض المستند داخل عنصر واجهة مخصص في النموذج. أنواع المستندات المدعومة هي الصور وصفحات الويب والصوت والفيديو، وتعتمد صيغ الملفات المدعومة على نظام التشغيل. يمكنك أيضًا تهيئة نظام تخزين خارجي لجلب الموارد أو تخزينها.

    نصيحة

    المسار النسبي في عنصر واجهة Attachment

    إذا كان المسار المحدد باستخدام متصفح الملفات موجودًا في المجلد نفسه الذي يوجد فيه ملف المشروع .qgs أو في مجلد أدنى منه، تُحوَّل المسارات إلى مسارات نسبية. يزيد ذلك من قابلية نقل مشروع .qgs المرفق به معلومات وسائط متعددة.

  • Geometry: متوافق مع نوع الحقل Geometry. على سبيل المثال، يمكن أن تحتوي طبقات PostgreSQL وطبقات الذاكرة على عدة حقول للشكل الهندسي. يستخدم QGIS أول عمود شكل هندسي بوصفه الشكل الهندسي للطبقة. يتيح تطبيق عنصر واجهة Geometry على حقول الشكل الهندسي الإضافية استخدام البيانات دون فقدان في نموذج البيانات الوصفية:

    • النسخ بصيغتَي WKT (التمثيل النصي المعروف، مثل POINT (30 10) ) أو GeoJSON

    • لصق

    • مسح

  • Hidden: عمود السمة المخفي غير مرئي. لا يستطيع المستخدم رؤية محتوياته.

  • Key/Value: يعرض جدولًا من عمودين لتخزين مجموعات من أزواج المفتاح/القيمة داخل حقل واحد. هذا مدعوم حاليًا من مزوّد PostgreSQL، للحقول من نوع hstore.

  • JSON View: يعرض بيانات JSON في محرر نصوص مع تمييز الصياغة أو في عرض شجري. عنصر الواجهة هذا حاليًا للقراءة فقط. تتوفر عدة خيارات لتغيير طريقة عرض البيانات. يحدد 'Default view' ما إذا كان عنصر الواجهة سيظهر في وضع النص أو الشجرة. ولـ 'Format JSON' ثلاثة خيارات تتعلق بالعرض الشجري فقط:

    • Indented: يعرض البيانات بشكل مقروء للبشر مع أسطر جديدة وأربع مسافات للإزاحة.

    • Compact: يعرض البيانات في سلسلة نصية من سطر واحد محسّنة الحجم دون أسطر جديدة أو مسافات.

    • Disabled: يعرض البيانات كما ترد من مزوّد البيانات.

  • List: يعرض جدولًا من عمود واحد لإضافة قيم مختلفة داخل حقل واحد. هذا مدعوم حاليًا من مزوّد PostgreSQL، للحقول من نوع array.

  • Range: يتيح لك تعيين قيم رقمية من نطاق محدد. يمكن أن يكون عنصر واجهة التحرير شريط تمرير أو مربع أرقام دوّار.

    ملاحظة

    بعض الطبقات، مثل GeoPackage أو ESRI File Geodatabase، التي تحتوي على نطاقات حقول من نوع المدى (range Field Domains) معرّفة مسبقًا، سيتعرّف عليها QGIS تلقائيًا ويعيّن عنصر واجهة Range للحقول المعنية. سيُملأ عنصر الواجهة مسبقًا بالقيمتين الدنيا والعليا المحددتين في النطاق.

  • Relation Reference: هذا هو عنصر الواجهة الافتراضي المعيّن للحقل المُشير (أي المفتاح الأجنبي في الطبقة الفرعية) عند تعيين علاقة. يوفّر وصولًا مباشرًا إلى نموذج المعلم الأصل الذي يضمّن بدوره قائمة المعالم الفرعية ونموذجها. يمكن تحديد عدد الإدخالات في عنصر الواجهة لتحسين الكفاءة، وإذا لم يُعيَّن حد فستُحمَّل جميع الإدخالات. يُستخدم الحقل المحدد في تعبير العرض بوصفه القيمة المعروضة في أدوات رسم التصنيف.

  • Text Edit (الافتراضي): يفتح حقل تحرير نصي يتيح استخدام نص بسيط أو أسطر متعددة. إذا اخترت أسطرًا متعددة يمكنك أيضًا اختيار محتوى HTML.

  • Unique Values: يمكنك اختيار إحدى القيم المستخدمة سابقًا في جدول البيانات الوصفية. إذا كان الخيار 'Editable' مفعّلًا، يُعرض حقل تحرير سطري مع دعم الإكمال التلقائي، وإلا تُستخدم قائمة منسدلة.

  • Uuid Generator: يولّد حقل UUID (المعرّفات الفريدة عالميًا) للقراءة فقط، إذا كان فارغًا.

  • Value Map: قائمة منسدلة بعناصر معرّفة مسبقًا. تُخزَّن القيمة في السمة، ويُعرض الوصف في القائمة المنسدلة. يمكنك تعريف القيم يدويًا أو تحميلها من طبقة أو من ملف CSV. يُستخدم الوصف بوصفه القيمة المعروضة، أي أنه سيظهر في أدوات رسم التصنيف.

    ملاحظة

    بعض الطبقات، مثل GeoPackage أو ESRI File Geodatabase، التي تحتوي على نطاقات حقول مرمّزة (coded Field Domains) معرّفة مسبقًا، سيتعرّف عليها QGIS تلقائيًا ويعيّن عنصر واجهة Value Map للحقول المعنية.

  • Value Relation: يقدّم قيمًا من جدول مرتبط في قائمة منسدلة. يمكنك اختيار الطبقة وعمود المفتاح وعمود القيمة. عمود المفتاح هو القيمة المخزنة في جدول البيانات الوصفية، بينما عمود القيمة هو التسمية المعروضة في القائمة المنسدلة. وعمود القيمة هو أيضًا القيمة المعروضة التي ستظهر في أدوات رسم التصنيف. يمكنك أيضًا اختيار ترتيب قائمة القيم المعروضة حسب العمود Key (ترتيب الفرز الافتراضي)، أو العمود Value، أو Field محدد من الطبقة. فعّل checkbox Descending order إذا أردت فرز القيم بترتيب عكسي.

    تتوفر عدة خيارات لتغيير السلوك القياسي: السماح بالقيمة NULL، والسماح بالتحديد المتعدد، واستخدام الإكمال التلقائي. ستعرض النماذج إما قائمة منسدلة أو حقل تحرير سطري عند تفعيل مربع اختيار الإكمال التلقائي.

    إذا كانت طبقة مخزنة في PostgreSQL أو GeoPackage أو SpatiaLite مهيأة لاستخدام عنصر واجهة Value Relation، لكن الطبقة المطلوبة غير محمّلة بعد في المشروع، فسيبحث QGIS تلقائيًا عن الطبقة في قاعدة البيانات/الاتصال نفسه.

12.1.10. خصائص الربط (Joins)

يتيح لك التبويب join Joins ربط معالم الطبقة الحالية بمعالم من طبقة متجهية أخرى محمّلة (أو جدول). يعتمد الربط على سمة مشتركة بين الطبقتين، في علاقة واحد لواحد. لمزيد من التفاصيل حول الربط، يُرجى قراءة ربط المعالم بين طبقتين.

12.1.11. خصائص التخزين المساعد

الطريقة المعتادة لتخصيص التنسيق والتسميات هي استخدام الخصائص المعرّفة بالبيانات كما هو موضح في إعداد التجاوز المعرَّف بالبيانات. لكن قد لا يكون ذلك ممكنًا إذا كانت البيانات الأساسية للقراءة فقط. علاوة على ذلك، قد تكون تهيئة هذه الخصائص المعرّفة بالبيانات مستهلكة للوقت كثيرًا أو غير مرغوبة! على سبيل المثال، إذا أردت الاستفادة الكاملة من أدوات الخريطة المرفقة مع شريط أدوات التسميات، فستحتاج إلى إضافة وتهيئة أكثر من 20 حقلًا في مصدر بياناتك الأصلي (موضعَي X و Y، وزاوية الدوران، ونمط الخط، واللون وغيرها).

توفّر آلية التخزين المساعد الحل لهذه القيود والتهيئات المزعجة. الحقول المساعدة طريقة غير مباشرة لإدارة هذه الخصائص المعرّفة بالبيانات (التسميات، والمخططات، والترميز...) وتخزينها تلقائيًا في قاعدة بيانات SQLite بفضل عمليات الربط القابلة للتحرير. يتيح لك ذلك تخزين خصائص لطبقات غير قابلة للتحرير.

يتوفر تبويب في نافذة حوار خصائص الطبقة المتجهية لإدارة التخزين المساعد:

../../../_images/auxiliary_storage_tab.png

شكل 12.51 تبويب التخزين المساعد

12.1.11.1. التسميات

بما أن مصدر البيانات يمكن تخصيصه بفضل الخصائص المعرّفة بالبيانات دون أن يكون قابلًا للتحرير، فإن أدوات خريطة التسميات الموضحة في شريط أدوات التسميات تكون متاحة دائمًا بمجرد تفعيل التسميات.

في الواقع، يحتاج نظام التخزين المساعد إلى طبقة مساعدة لتخزين هذه الخصائص في قاعدة بيانات SQLite (راجع قاعدة بيانات التخزين المساعد). تُنفَّذ عملية إنشائها في أول مرة تنقر فيها على الخريطة بينما تكون إحدى أدوات خريطة التسميات مفعّلة. ثم تُعرض نافذة تتيح لك اختيار المفتاح الأساسي المستخدم في الربط (لضمان تعريف المعالم بشكل فريد):

../../../_images/auxiliary_storage_key.png

شكل 12.52 نافذة حوار إنشاء الطبقة المساعدة

بمجرد تهيئة طبقة مساعدة لمصدر البيانات الحالي، يمكنك استرجاع معلوماتها في التبويب:

../../../_images/auxiliary_storage_tabkey.png

شكل 12.53 مفتاح الطبقة المساعدة

أصبحت للطبقة المساعدة الآن هذه الخصائص:

  • المفتاح الأساسي هو ID،

  • هناك 0 معلم يستخدم حقلًا مساعدًا،

  • هناك 0 حقل مساعد.

بعد إنشاء الطبقة المساعدة، يمكنك تحرير تسميات الطبقة. انقر على تسمية بينما أداة الخريطة changeLabelProperties Change Label مفعّلة، ثم يمكنك تحديث خصائص التنسيق مثل الأحجام والألوان وغيرها. تُنشأ الخصائص المعرّفة بالبيانات المقابلة ويمكن استرجاعها:

../../../_images/auxiliary_storage_fields.png

شكل 12.54 الحقول المساعدة

كما ترى في الشكل أعلاه، أُنشئ 21 حقلًا وهُيّئت تلقائيًا للتسميات. على سبيل المثال، نوع الحقل المساعد FontStyle هو String واسمه labeling_fontstyle في قاعدة بيانات SQLite الأساسية. وهناك أيضًا 1 معلم يستخدم حاليًا هذه الحقول المساعدة.

لاحظ أن الأيقونة dataDefineOn معروضة في تبويب خصائص Labels، مما يشير إلى أن خيارات التجاوز المعرّفة بالبيانات معيّنة بشكل صحيح:

../../../_images/auxiliary_storage_dd.png

شكل 12.55 الخصائص المعرّفة بالبيانات المُنشأة تلقائيًا

بخلاف ذلك، هناك طريقة أخرى لإنشاء حقل مساعد لخاصية محددة بفضل الزر dataDefine Data-defined override. بالنقر على Store data in the project، يُنشأ حقل مساعد تلقائيًا للحقل Opacity. إذا نقرت على هذا الزر ولم تكن الطبقة المساعدة قد أُنشئت بعد، تُعرض أولًا نافذة (شكل 12.52) لاختيار المفتاح الأساسي المستخدم في الربط.

12.1.11.2. الترميز

على غرار الطريقة الموضحة أعلاه لتخصيص التسميات، يمكن أيضًا استخدام الحقول المساعدة لتنسيق الرموز والمخططات. للقيام بذلك، انقر على dataDefine Data-defined override واختر Store data in the project لخاصية محددة. على سبيل المثال، الحقل Fill color:

../../../_images/auxiliary_storage_symbol.png

شكل 12.56 قائمة الخصائص المعرّفة بالبيانات للرمز

لكل رمز سمات مختلفة (مثل نمط التعبئة ولون التعبئة ولون الحد وغيرها...)، لذا يتطلب كل حقل مساعد يمثّل سمة اسمًا فريدًا لتجنّب التعارض. بعد اختيار Store data in the project، تُفتح نافذة تعرض Type الحقل وتطلب منك إدخال اسم فريد للحقل المساعد. على سبيل المثال، عند إنشاء حقل مساعد Fill color تُفتح النافذة التالية:

../../../_images/auxiliary_storage_symbol_name.png

شكل 12.57 اسم الحقل المساعد لرمز

بعد الإنشاء، يمكن استرجاع الحقل المساعد في تبويب التخزين المساعد:

../../../_images/auxiliary_storage_symbol_field.png

شكل 12.58 رمز الحقل المساعد

12.1.11.3. جدول البيانات الوصفية وعناصر الواجهة

يمكن تحرير الحقول المساعدة باستخدام جدول البيانات الوصفية. لكن ليست جميع الحقول المساعدة مرئية في البداية في جدول البيانات الوصفية.

تظهر تلقائيًا في جدول البيانات الوصفية الحقول المساعدة التي تمثّل سمات ترميز الطبقة أو تسمياتها أو مظهرها أو مخططاتها. والاستثناء هو السمات التي يمكن تعديلها باستخدام شريط أدوات التسميات، فهي مخفية افتراضيًا. الحقول المساعدة التي تمثّل Color يُعيَّن لها عنصر الواجهة Color افتراضيًا، وإلا فإن الحقول المساعدة تستخدم افتراضيًا عنصر الواجهة Text Edit.

الحقول المساعدة التي تمثّل سمات يمكن تعديلها باستخدام شريط أدوات التسميات تكون Hidden في جدول البيانات الوصفية افتراضيًا. لجعل حقل ما مرئيًا، افتح تبويب خصائص نموذج البيانات الوصفية وغيّر قيمة Widget Type للحقل المساعد من Hidden إلى قيمة أخرى مناسبة. على سبيل المثال، غيّر auxiliary_storage_labeling_size إلى Text Edit أو غيّر auxiliary_storage_labeling_color إلى عنصر الواجهة Color. ستصبح تلك الحقول الآن مرئية في جدول البيانات الوصفية.

ستظهر الحقول المساعدة في جدول البيانات الوصفية كما في الصورة التالية:

../../../_images/auxiliary_storage_widgets.png

شكل 12.59 نموذج يحتوي على حقول مساعدة

12.1.11.4. الإدارة

تتيح لك القائمة Auxiliary Layer إدارة الحقول المساعدة:

../../../_images/auxiliary_storage_actions.png

شكل 12.60 إدارة الطبقة المساعدة

العنصر الأول Create معطّل في هذه الحالة لأن الطبقة المساعدة قد أُنشئت بالفعل. لكن في حالة عمل جديد، يمكنك استخدام هذا الإجراء لإنشاء طبقة مساعدة. وكما هو موضح في التسميات، سيلزم حينها مفتاح أساسي.

يتيح الإجراء Clear الاحتفاظ بجميع الحقول المساعدة مع إزالة محتوياتها. وبهذا ينخفض عدد المعالم التي تستخدم هذه الحقول إلى 0.

يزيل الإجراء Delete الطبقة المساعدة بالكامل. بعبارة أخرى، يُحذف الجدول المقابل من قاعدة بيانات SQLite الأساسية وتُفقد تخصيصات الخصائص.

أخيرًا، يتيح الإجراء Export حفظ الطبقة المساعدة بوصفها طبقة متجهية جديدة. لاحظ أن الأشكال الهندسية لا تُخزَّن في التخزين المساعد. لكن في هذه الحالة، تُصدَّر الأشكال الهندسية من مصدر البيانات الأصلي أيضًا.

12.1.11.5. قاعدة بيانات التخزين المساعد

عند حفظ مشروعك بالصيغة .qgs، تُحفظ قاعدة بيانات SQLite المستخدمة للتخزين المساعد في المكان نفسه ولكن بالامتداد .qgd.

للتيسير، يمكن استخدام أرشيف بدلًا من ذلك بفضل الصيغة .qgz. في هذه الحالة، يُضمَّن الملفان .qgd و .qgs كلاهما في الأرشيف.

12.1.12. خصائص الإجراءات

يوفّر التبويب action Actions إمكانية تنفيذ إجراء بناءً على سمات معلم. يمكن استخدام ذلك لتنفيذ أي عدد من الإجراءات، مثل تشغيل برنامج بوسائط مبنية من سمات معلم أو تمرير معاملات إلى أداة تقارير ويب.

../../../_images/action_dialog.png

شكل 12.61 نظرة عامة على نافذة حوار الإجراءات مع بعض الإجراءات النموذجية

تفيد الإجراءات عندما تريد كثيرًا تشغيل تطبيق خارجي أو عرض صفحة ويب بناءً على قيمة أو أكثر في طبقتك المتجهية. وهي أنواع مختلفة ويمكن استخدامها على النحو التالي:

  • تبدأ إجراءات Generic و macOS و Windows و Unix عملية خارجية.

  • تنفّذ إجراءات Python تعبير Python.

  • إجراءات Generic و Python مرئية في كل مكان.

  • إجراءات macOS و Windows و Unix مرئية فقط على المنصة المعنية (أي يمكنك تعريف ثلاثة إجراءات "Edit" لفتح محرر، ولا يرى المستخدمون ولا ينفّذون إلا إجراء "Edit" الخاص بمنصتهم لتشغيل المحرر).

  • Open URL: يستخدم طلب HTTP GET لفتح عنوان URL مُعطى.

  • Submit URL (urlencoded or JSON): مثل الإجراء Open URL لكن باستخدام طلب HTTP POST. تُرسَل البيانات إلى عنوان URL باستخدام "application/x-www-form-urlencoded" أو "application/json" إذا كان المتن JSON صالحًا.

    يمكن أن يكون مثال على استدعاء إجراء:

    http://localhost:8000?/[% url_encode(map('file', 'index.php')) %]
    
  • Submit URL (multipart): مثل الإجراء Open URL لكن باستخدام طلب HTTP POST. تُرسَل البيانات إلى عنوان URL باستخدام "multipart/form-data".

توجد عدة أمثلة مضمّنة في نافذة الحوار. يمكنك تحميلها بالنقر على Create Default Actions. لتحرير أي من الأمثلة، انقر نقرًا مزدوجًا على صفّه. أحد الأمثلة هو إجراء بحث بناءً على قيمة سمة. يُستخدم هذا المفهوم في الشرح التالي.

يتيح لك الخيار checkbox Show in Attribute Table أن تعرض في نافذة حوار جدول البيانات الوصفية الإجراءات المحددة ذات نطاق المعلم، إما في صورة Combo Box أو Separate Buttons (راجع ضبط الأعمدة).

12.1.12.1. تعريف الإجراءات

لتعريف إجراء سمة، افتح نافذة حوار Layer Properties للطبقة المتجهية وانقر على التبويب Actions. في التبويب Actions، انقر على symbologyAdd Add a new action لفتح نافذة الحوار Edit Action.

اختر Type الإجراء وقدّم اسمًا وصفيًا له. يجب أن يحتوي الإجراء نفسه على اسم التطبيق الذي سيُنفَّذ عند استدعاء الإجراء. يمكنك إضافة قيمة حقل سمة واحد أو أكثر كوسائط للتطبيق. عند استدعاء الإجراء، تُستبدل أي مجموعة من الأحرف تبدأ بـ % متبوعة باسم حقل بقيمة ذلك الحقل. وتُستبدل الأحرف الخاصة %% بقيمة الحقل المحدد من نتائج التعريف أو من جدول البيانات الوصفية (راجع استخدام الإجراءات). يمكن استخدام علامات الاقتباس المزدوجة لتجميع نص في وسيط واحد للبرنامج أو السكربت أو الأمر. وتُتجاهل علامات الاقتباس المزدوجة إذا سبقتها شرطة مائلة عكسية.

يمكن للإجراءات استدعاء عملية واحدة مع وسائطها، لذا لن تعمل العوامل المنطقية (مثل & و && و ; و |). في أنظمة التشغيل الشبيهة بـ UNIX يمكن تنفيذ عدة أوامر عبر bash -c.

يتيح لك Action Scopes تحديد المكان الذي يجب أن يتوفر فيه الإجراء. لديك الخيارات التالية:

  1. Field: يتوفر الإجراء عند النقر بزر الفأرة الأيمن في الخلية داخل جدول البيانات الوصفية، وفي نموذج المعلم، وفي زر الإجراء الافتراضي في شريط الأدوات الرئيسي.

  2. Feature: يتوفر الإجراء عند النقر بزر الفأرة الأيمن في الخلية داخل جدول البيانات الوصفية.

  3. Canvas: يتوفر الإجراء في زر الإجراءات الرئيسي في شريط الأدوات.

  4. Form: يتوفر الإجراء فقط في نموذج معلم مصمم باستخدام وضع السحب والإفلات.

  5. Layer: يتوفر الإجراء في زر الإجراءات في شريط أدوات جدول البيانات الوصفية. انتبه إلى أن هذا النوع من الإجراءات يشمل الطبقة بأكملها وليس المعالم المفردة.

إذا كانت لديك أسماء حقول هي سلاسل جزئية من أسماء حقول أخرى (مثل col1 و col10)، فعليك الإشارة إلى ذلك بإحاطة اسم الحقل (والحرف %) بأقواس مربعة (مثل [%col10]). يمنع ذلك الخلط بين اسم الحقل %col10 واسم الحقل %col1 متبوعًا بـ 0 في نهايته. سيزيل QGIS الأقواس عندما يستبدل قيمة الحقل. إذا أردت أن يُحاط الحقل المستبدل بأقواس مربعة، فاستخدم مجموعة ثانية هكذا: [[%col10]].

باستخدام الأداة Identify Features، يمكنك فتح نافذة الحوار Identify Results. وهي تتضمن عنصر (Derived) يحتوي على معلومات متعلقة بنوع الطبقة. يمكن الوصول إلى القيم في هذا العنصر بطريقة مشابهة للحقول الأخرى بوضع (Derived). قبل اسم الحقل المشتق. على سبيل المثال، تحتوي طبقة النقاط على حقلَي X و Y، ويمكن استخدام قيم هذين الحقلين في الإجراء عبر %(Derived).X و %(Derived).Y. السمات المشتقة متاحة فقط من نافذة الحوار Identify Results، وليس من نافذة الحوار Attribute Table.

فيما يلي مثالان على الإجراءات:

  • konqueror https://www.google.com/search?q=%name

  • konqueror https://www.google.com/search?q=%%

في المثال الأول، يُستدعى متصفح الويب konqueror ويُمرَّر إليه عنوان URL لفتحه. يُجري عنوان URL بحثًا في Google عن قيمة الحقل name من طبقتنا المتجهية. لاحظ أن التطبيق أو السكربت الذي يستدعيه الإجراء يجب أن يكون في مسار النظام (path)، وإلا فعليك تقديم المسار الكامل. وللتأكد، يمكننا إعادة كتابة المثال الأول هكذا: /opt/kde3/bin/konqueror https://www.google.com/search?q=%name. سيضمن ذلك تنفيذ تطبيق konqueror عند استدعاء الإجراء.

يستخدم المثال الثاني الترميز %%، الذي لا يعتمد على حقل معين للحصول على قيمته. عند استدعاء الإجراء، يُستبدل %% بقيمة الحقل المحدد في نتائج التعريف أو في جدول البيانات الوصفية.

12.1.12.2. تكرار الإجراءات

يتيح لك QGIS تكرار الإجراءات الموجودة. لتكرار إجراء سمة، افتح نافذة حوار Layer Properties للطبقة المتجهية وانقر على التبويب Actions. في التبويب Actions، انقر على duplicateLayout Duplicate an action لفتح نافذة الحوار Duplicate Action. يجب أن تكون قد حددت إجراءً موجودًا واحدًا على الأقل لإنشاء نسخة مكررة.

في نافذة الحوار التي تظهر، أجرِ أي تغييرات لازمة. راجع تعريف الإجراءات لمزيد من المعلومات. عند الانتهاء، اضغط OK لإنشاء نسخة مكررة من الإجراء مع أي تغييرات أجريتها. إذا لم تحرّر الوصف، أو إذا غيّرته ليصبح مطابقًا لوصف أي إجراء موجود آخر، فستُضاف "_1" إلى نهايته.

12.1.12.3. استخدام الإجراءات

يقدّم QGIS طرقًا عديدة لتنفيذ الإجراءات التي فعّلتها على طبقة. وبحسب إعداداتها، يمكن أن تكون متاحة:

  • في القائمة المنسدلة للزر actionRun Run Feature Action من Attributes toolbar أو من نافذة الحوار Attribute table؛

  • عند النقر بزر الفأرة الأيمن على معلم باستخدام الأداة identify Identify Features (راجع تعريف المعالم لمزيد من المعلومات)؛

  • من لوحة Identify Results، تحت القسم Actions؛

  • كعناصر في عمود Actions في نافذة الحوار Attribute Table.

إذا كنت تستدعي إجراءً يستخدم الترميز %%، فانقر بزر الفأرة الأيمن على قيمة الحقل التي تريد تمريرها إلى التطبيق أو السكربت في نافذة الحوار Identify Results أو نافذة الحوار Attribute Table.

إليك مثالًا آخر يستخرج البيانات من طبقة متجهية ويُدرجها في ملف باستخدام bash والأمر echo (لذا سيعمل فقط على nix أو ربما osx). تحتوي الطبقة المعنية على حقول لاسم النوع taxon_name، وخط العرض lat، وخط الطول long. نريد أن نتمكن من إجراء تحديد مكاني للمواقع وتصدير قيم هذه الحقول إلى ملف نصي للسجل المحدد (المعروض باللون الأصفر في منطقة خريطة QGIS). إليك الإجراء الذي يحقق ذلك:

bash -c "echo \"%taxon_name %lat %long\" >> /tmp/species_localities.txt"

بعد تحديد بضعة مواقع وتشغيل الإجراء على كل منها، سيُظهر فتح ملف المخرجات شيئًا كهذا:

Acacia mearnsii -34.0800000000 150.0800000000
Acacia mearnsii -34.9000000000 150.1200000000
Acacia mearnsii -35.2200000000 149.9300000000
Acacia mearnsii -32.2700000000 150.4100000000

كتمرين، يمكننا إنشاء إجراء يُجري بحثًا في Google على الطبقة lakes. أولًا، علينا تحديد عنوان URL اللازم لإجراء بحث عن كلمة مفتاحية. يسهل ذلك بالذهاب إلى Google وإجراء بحث بسيط، ثم أخذ عنوان URL من شريط العنوان في متصفحك. من هذا الجهد البسيط، نرى أن التنسيق هو https://www.google.com/search?q=QGIS، حيث QGIS هو مصطلح البحث. وبهذه المعلومة، يمكننا المتابعة:

  1. تأكد من تحميل الطبقة lakes.

  2. افتح نافذة الحوار Layer Properties بالنقر المزدوج على الطبقة في مفتاح الخريطة، أو انقر بزر الفأرة الأيمن واختر Properties من القائمة المنبثقة.

  3. انقر على التبويب Actions.

  4. انقر على symbologyAdd Add a new action.

  5. اختر نوع الإجراء Open URL،

  6. أدخل اسمًا للإجراء، مثل Google Search.

  7. يمكنك أيضًا إضافة Short Name أو حتى Icon.

  8. اختر Action Scopes. راجع تعريف الإجراءات لمزيد من المعلومات. اترك الإعدادات الافتراضية في هذا المثال.

  9. للإجراء، أضف عنوان URL المستخدم لإجراء بحث في Google، حتى مصطلح البحث دون أن يشمله: https://www.google.com/search?q=

  10. يجب أن يبدو النص في الحقل Action الآن هكذا:

    https://www.google.com/search?q=
    
  11. انقر على القائمة المنسدلة التي تحتوي على أسماء حقول الطبقة lakes. تقع مباشرة إلى يسار الزر Insert.

  12. من القائمة المنسدلة، اختر NAMES وانقر على Insert.

  13. يبدو نص الإجراء الآن هكذا:

    https://www.google.com/search?q=[%NAMES%]
    
  14. لإنهاء الإجراء وإضافته، انقر على الزر OK.

    ../../../_images/add_action_edit.png

    شكل 12.62 نافذة حوار تحرير الإجراء مهيأة بالمثال

اكتمل الإجراء الآن، وهو جاهز للاستخدام.

أغلق نافذة الحوار Layer Properties وقرّب العرض إلى منطقة اهتمام. تأكد من أن الطبقة lakes نشطة وعرّف بحيرة. سترى الآن في مربع النتائج أن إجراءنا مرئي:

../../../_images/action_identifyaction.png

شكل 12.63 حدّد المعلم واختر الإجراء

عند النقر على الإجراء، يُفتح متصفحك الافتراضي وينتقل إلى عنوان URL https://www.google.com/search?q=Tustumena. ومن الممكن أيضًا إضافة حقول سمات أخرى إلى الإجراء. لذلك يمكنك إضافة + إلى نهاية نص الإجراء، واختيار حقل آخر والنقر على Insert Field. في هذا المثال، لا يوجد ببساطة حقل آخر متاح يكون من المنطقي البحث عنه.

يمكنك تعريف عدة إجراءات لطبقة، وسيظهر كل منها في نافذة الحوار Identify Results.

يمكنك أيضًا استدعاء الإجراءات من جدول البيانات الوصفية بتحديد صف والنقر بزر الفأرة الأيمن، ثم اختيار الإجراء من القائمة المنبثقة.

للإجراءات استخدامات متنوعة. على سبيل المثال، إذا كانت لديك طبقة نقاط تحتوي على مواقع صور مع اسم الملف، يمكنك إنشاء إجراء لتشغيل عارض لعرض الصورة. ويمكنك أيضًا استخدام الإجراءات لتشغيل تقارير ويب لحقل سمة أو مجموعة من الحقول، بتحديدها بالطريقة نفسها التي اتبعناها في مثال البحث في Google.

يمكننا أيضًا إنشاء أمثلة أكثر تعقيدًا، مثلًا باستخدام إجراءات Python.

عادةً، عندما ننشئ إجراءً لفتح ملف بتطبيق خارجي، يمكننا استخدام مسارات مطلقة، أو ربما مسارات نسبية. في الحالة الثانية، يكون المسار نسبيًا إلى موقع الملف التنفيذي للبرنامج الخارجي. لكن ماذا لو احتجنا إلى استخدام مسارات نسبية إلى الطبقة المحددة (طبقة مبنية على ملف، مثل Shapefile أو SpatiaLite)؟ الكود التالي سيفي بالغرض:

command = "firefox"
imagerelpath = "images_test/test_image.jpg"
layer = qgis.utils.iface.activeLayer()
import os.path
layerpath = layer.source() if layer.providerType() == 'ogr'
  else (qgis.core.QgsDataSourceURI(layer.source()).database()
    if layer.providerType() == 'spatialite' else None)
path = os.path.dirname(str(layerpath))
image = os.path.join(path,imagerelpath)
import subprocess
subprocess.Popen( [command, image ] )

علينا فقط أن نتذكر أن الإجراء من النوع Python وأنه يجب تغيير المتغيرين command و imagerelpath بما يناسب احتياجاتنا.

لكن ماذا لو كان المسار النسبي يجب أن يكون نسبيًا إلى ملف المشروع (المحفوظ)؟ سيكون كود إجراء Python كالتالي:

command = "firefox"
imagerelpath = "images_test/test_image.jpg"
projectpath = qgis.core.QgsProject.instance().fileName()
import os.path
path = os.path.dirname(str(projectpath)) if projectpath != '' else None
image = os.path.join(path, imagerelpath)
import subprocess
subprocess.Popen( [command, image ] )

مثال آخر على إجراء Python هو الذي يتيح لنا إضافة طبقات جديدة إلى المشروع. على سبيل المثال، ستضيف الأمثلة التالية إلى المشروع طبقة متجهية وطبقة شبكية على الترتيب. أسماء الملفات المراد إضافتها إلى المشروع والأسماء التي ستُعطى للطبقات مستمدة من البيانات (filename و layername هما اسما عمودين في جدول البيانات الوصفية للطبقة المتجهية التي أُنشئ فيها الإجراء):

qgis.utils.iface.addVectorLayer('/yourpath/[% "filename" %].shp',
  '[% "layername" %]', 'ogr')

لإضافة طبقة شبكية (صورة TIF في هذا المثال)، يصبح الكود:

qgis.utils.iface.addRasterLayer('/yourpath/[% "filename" %].tif',
  '[% "layername" %]')

12.1.13. خصائص العرض

يساعدك التبويب display Display على تهيئة الحقول المستخدمة لتعريف المعالم:

  • Display name: مبني على حقل أو تعبير. افتراضيًا، يُعيَّن إلى أول حقل في الطبقة إذا لم يوجد حقل يتضمن المكوّن <name>. ويُستخدم بوصفه:

    • التسمية المعروضة أعلى معلومات المعلم في نتائج أداة التعريف

    • الحقل المستخدم في شريط البحث (locator) عند البحث عن المعالم في جميع الطبقات

    • معرّف المعلم في عرض النموذج لجدول البيانات الوصفية

    • معرّف المعلم عند تصدير الخريطة أو التخطيط إلى صيغة مخرجات متعددة الطبقات مثل Geospatial PDF

    • معلومات تلميح الخريطة، أي الرسالة المعروضة في لوحة الخريطة عند تمرير المؤشر فوق معلم من الطبقة النشطة مع ضغط الأيقونة mapTips Show Map Tips. ينطبق ذلك عندما يكون checkbox Enable Map Tips نشطًا ولم يُعيَّن HTML Map Tip.

  • يتحكم checkbox Enable Map Tips في عرض تلميحات الخريطة للطبقة

  • يوفّر HTML Map Tip محرر نصوص HTML متكاملًا ومتقدمًا لتلميحات الخريطة، يمزج بين تعابير QGIS وأنماط HTML ووسومها (أسطر متعددة، وخطوط، وصور، وروابط تشعبية، وجداول، ...). يمكنك التحقق من نتيجة نموذج الكود في إطار Preview (وهو مفيد أيضًا لمعاينة مخرجات Display name). إضافة إلى ذلك، يمكنك تحديد التعابير الموجودة وتحريرها باستخدام الزر Insert/Edit Expression.

    ملاحظة

    فهم سلوك الزر Insert/Edit Expression

    إذا حددت نصًا داخل تعبير (بين "[%" و "%]")، أو إذا لم يُحدَّد أي نص لكن المؤشر داخل تعبير، فسيُحدَّد التعبير بأكمله تلقائيًا لتحريره. وإذا كان المؤشر أو النص المحدد خارج تعبير، تُفتح نافذة الحوار مع التحديد.

../../../_images/display_html.png

شكل 12.64 كود HTML لتلميح الخريطة

لعرض تلميحات الخريطة:

  1. اختر من القائمة View ► Show Map Tips أو انقر على الأيقونة mapTips Show Map Tips في Attributes Toolbar.

  2. تأكد من أن الطبقة المستهدفة نشطة وأن الخاصية checkbox Enable Map Tips محددة لها.

  3. مرّر المؤشر فوق معلم، وستُعرض المعلومات المقابلة فوقه.

تلميح الخريطة ميزة شاملة لجميع الطبقات، أي أنه بمجرد تفعيله يبقى قيد التشغيل وينطبق على أي طبقة مفعّل لها تلميح الخريطة في المشروع حتى يُوقَف.

../../../_images/map_tip.png

شكل 12.65 تلميح خريطة مصنوع بكود HTML

12.1.14. خصائص الرسم (Rendering)

../../../_images/vector_rendering.png

شكل 12.66 نافذة حوار خصائص رسم الطبقة

يقدّم التبويب rendering Rendering الخصائص التالية:

  • تحت unchecked Scale dependent visibility، يمكنك تعيين مقياسَي Maximum (inclusive) و Minimum (exclusive)، لتحديد نطاق مقاييس الرسم الذي تكون فيه المعالم مرئية. وخارج هذا النطاق تكون مخفية. يساعدك الزر mapIdentification Set to current canvas scale على استخدام مقياس الرسم الحالي للوحة الخريطة حدًّا لنطاق الرؤية. راجع منتقي مقياس الرسم للظهور لمزيد من المعلومات.

    ملاحظة

    يمكنك أيضًا تفعيل الرؤية المعتمدة على مقياس الرسم لطبقة من داخل لوحة Layers: انقر بزر الفأرة الأيمن على الطبقة واختر من القائمة السياقية Set Layer Scale Visibility.

  • يقدّم QGIS دعمًا لتعميم المعالم أثناء العرض. يمكن أن يحسّن ذلك أوقات الرسم عند رسم كثير من المعالم المعقدة بمقاييس رسم صغيرة. يمكن تفعيل هذه الميزة أو تعطيلها في إعدادات الطبقة باستخدام الخيار checkbox Simplify geometry. وهناك أيضًا إعداد عام يفعّل التعميم افتراضيًا للطبقات المضافة حديثًا (راجع التبسيط العام لمزيد من المعلومات).

    ملاحظة

    قد يُدخل تعميم المعالم تشوّهات في مخرجاتك المرسومة في بعض الحالات. قد تشمل هذه فجوات رفيعة بين المضلعات ورسمًا غير دقيق عند استخدام طبقات رموز مبنية على الإزاحة.

  • يشير الخيار unchecked Fixed reference scale إلى مقياس الرسم الذي ترتبط به أحجام الترميز والتسميات التي تستخدم وحدات ورقية (مثل المليمترات أو النقاط). وستتغير الأحجام وفقًا لذلك كلما عُرضت الخريطة بمقياس رسم مختلف.

    على سبيل المثال، طبقة خطية تستخدم خطًا بعرض 2mm مع تعيين Reference scale إلى 1:2000 ستُرسم بخطوط عرضها 4mm عند عرض الخريطة بمقياس 1:1000.

  • تتيح لك المجموعة Selections التحكم فيما إذا كان يجب استخدام لون أو رمز محدد بدلًا من الافتراضي (Project properties ► General ► Selection color) لطبقة معينة. يفيد ذلك في تحسين وضوح المعالم المحددة مع بعض أنواع الترميز:

    • Use default selection color

    • Override color for selected features: مثلًا إذا كانت الطبقة تستخدم اللون الأصفر افتراضيًا ولم يكن تحديد الأصفر القياسي مرئيًا.

    • Override symbol for selected features: مثلًا إذا كانت طبقة خطية تستخدم رمزًا رفيعًا، وقد لا يجعل تلوين الخطوط مرئية بما يكفي، فإن تجاوز الرمز بخط أسمك قد يساعد. كذلك، إذا كانت الطبقة تستخدم ترميزًا شبكيًا أو تعبئات/خطوطًا متدرجة أو shapeburst مع ترميز تدرج لوني، فلا يُطبَّق لون التحديد الافتراضي إطلاقًا؛ وقد يساعد القدرة على تعيين رمز أبسط محدد لاستخدامه للمعالم المحددة في الطبقة.

  • قد يؤدي رسم الطبقات شديدة التفصيل (مثل طبقات المضلعات ذات العدد الهائل من العقد) إلى أن تصبح تصديرات التخطيط بصيغة PDF/SVG ضخمة، إذ تُضمَّن جميع العقد في الملف المُصدَّر. وقد يجعل ذلك أيضًا العمل بالملف الناتج أو فتحه في برامج أخرى بطيئًا جدًا.

    يؤدي تحديد checkbox Force layer to render as raster إلى إجبار هذه الطبقات على التحويل إلى صيغة شبكية، بحيث لا تضطر الملفات المُصدَّرة إلى تضمين جميع العقد الموجودة في هذه الطبقات، ومن ثم يتسارع الرسم.

    يمكنك أيضًا تحقيق ذلك بإجبار التخطيط على التصدير بصيغة شبكية، لكن هذا حل شامل لا وسط فيه، إذ يُطبَّق التحويل الشبكي على جميع الطبقات. وبدلًا من ذلك، يمكنك الاعتماد على تبسيط الأشكال الهندسية في إعدادات تصدير التخطيط.

  • unchecked Refresh layer at interval: يتحكم في ما إذا كان يمكن تحديث الطبقة ومدى انتظام تحديثها. خيارات Configuration المتاحة هي:

    • Reload data: ستُحدَّث الطبقة بالكامل. ستُتجاهل أي بيانات مخزنة مؤقتًا وتُجلب من جديد من مزوّد البيانات. قد يؤدي هذا الوضع إلى بطء تحديث الخريطة.

    • Redraw layer only: يفيد هذا الوضع في الرسوم المتحركة أو عندما يُحدَّث نمط الطبقة على فترات منتظمة. تُؤجَّل تحديثات لوحة الخريطة لتجنّب التحديث عدة مرات إذا كان لأكثر من طبقة فترة تحديث تلقائي معيّنة.

    يمكن أيضًا تعيين Interval (seconds) بين عمليات التحديث المتتالية.

  • بحسب مزوّد البيانات (مثل PostgreSQL)، يمكن إرسال إشعارات إلى QGIS عند تطبيق تغييرات على مصدر البيانات من خارج QGIS. استخدم الخيار checkbox Refresh layer on notification لتشغيل التحديث. ويمكنك أيضًا قصر تحديث الطبقة على رسالة محددة تُعيَّن في مربع النص checkbox Only if message is.

12.1.15. الخصائص الزمنية

يقدّم التبويب temporal Temporal خيارات للتحكم في رسم الطبقة عبر الزمن. يتطلب هذا الرسم الديناميكي تفعيل التنقل الزمني على لوحة الخريطة.

../../../_images/vector_temporal.png

شكل 12.67 نافذة حوار الخصائص الزمنية للطبقة المتجهية

حدّد الخيار checkbox Dynamic Temporal Control لتهيئة الرسم الزمني للطبقة المتجهية. بحسب بنية مجموعة بياناتك، قد ترغب في استخدام أحد خيارات Configuration المتاحة:

  • Fixed time range: تُرسم جميع المعالم إذا تداخل الإطار الزمني للوحة الخريطة مع النطاق المحدد بين Start date و End date.

  • Single field with date/time: تُعرض المعالم إذا وقعت قيمة الحقل Field الخاص بها ضمن الإطار الزمني للوحة الخريطة. ويمكن تعيين Event duration (مدة الحدث). وعند تفعيل الخيار Accumulate features over time، يستمر عرض جميع المعالم التي تقع قبل النطاق الزمني للخريطة أو ضمنه. وبذلك تُتجاهل مدة الحدث.

  • Separate fields for start and end date/time: تُعرض المعالم إذا تداخل النطاق المحدد بقيم الحقلين Start field و End field الخاصين بها مع النطاق الزمني للوحة الخريطة.

  • Separate fields for start and event duration: تُعرض المعالم إذا تداخل النطاق المعرَّف بقيم الحقلين Start field و Event duration field الخاصين بها مع النطاق الزمني للوحة الخريطة.

  • Start and end date/time from expressions: تُعرض المعالم إذا تداخل النطاق الزمني المحدد بالحقلين Start expression و End expression مع النطاق الزمني للوحة الخريطة.

  • Redraw layer only: يُعاد رسم الطبقة عند كل إطار جديد من الحركة، لكن دون تطبيق أي ترشيح زمني على المعالم. ويفيد ذلك عندما تستخدم الطبقة قيم تعبيرات زمنية في إعدادات أداة الرسم (مثل الترميز المعرَّف بالبيانات).

يمكن أيضًا تعيين Limits (حدود) النطاق الزمني للمعالم على النحو التالي:

  • Include start, exclude end

  • Include start, include end

12.1.16. خصائص المتغيرات

يعرض التبويب expression Variables جميع المتغيرات المتاحة على مستوى الطبقة (بما فيها جميع المتغيرات العامة ومتغيرات المشروع).

كما يتيح للمستخدم إدارة المتغيرات على مستوى الطبقة. انقر الزر symbologyAdd لإضافة متغير مخصص جديد على مستوى الطبقة. وبالمثل، حدّد متغيرًا مخصصًا على مستوى الطبقة من القائمة وانقر الزر symbologyRemove لإزالته.

لمزيد من المعلومات حول استخدام المتغيرات، راجع القسم تخزين القيم في المتغيرات ضمن الأدوات العامة.

12.1.17. خصائص الارتفاع

يوفر التبويب elevationscale Elevation خيارات للتحكم في خصائص ارتفاع الطبقة ضمن عرض الخريطة ثلاثي الأبعاد وفي مظهرها في مخططات أداة المقطع الجانبي. وتحديدًا يمكنك تعيين:

../../../_images/vector_elevation.png

شكل 12.68 نافذة حوار خصائص الارتفاع للطبقة المتجهية

  • Vertical Reference System: إذا كان نظام الإحداثيات المرجعي (CRS) لطبقتك المتجهية مركّبًا (يتضمن البعد Z)، فإن نظام الإحداثيات الرأسي المستخدم للطبقة هو المكوّن الرأسي لنظام إحداثيات الطبقة. وفي هذه الحالة لا يمكنك تعيين نظام إحداثيات رأسي مختلف يدويًا. أما إذا كان نظام إحداثيات طبقتك أفقيًا (ثنائي الأبعاد)، فيمكنك اختيار نظام إحداثيات رأسي محدد بالنقر على setProjection Select CRS. وتدعم الطبقات المتجهية أنظمة الإسناد الرأسية في:

  • Elevation Clamping: يحدد كيفية تعيين ارتفاع المعالم وما إذا كان:

    • Clamped to terrain: يأخذ الارتفاع مباشرة من ارتفاع التضاريس ويتجاهل أي قيم Z موجودة في المعالم. ويمكن أيضًا إدخال قيمة Offset (إزاحة) معرَّفة بالبيانات عن التضاريس.

    • Relative to terrain: تُضاف أي قيم Z موجودة في المعالم إلى ارتفاع التضاريس. ويمكن استخدام معامل Scale متبوعًا بقيمة Offset معرَّفة بالبيانات لضبط الارتفاع. هذا الخيار غير متاح لطبقات الأشكال الهندسية ثنائية الأبعاد.

    • Absolute: يتجاهل ارتفاع التضاريس ويأخذ قيم Z مباشرة من المعالم لتحديد الارتفاع. ويمكن استخدام معامل Scale متبوعًا بقيمة Offset معرَّفة بالبيانات لضبط الارتفاع. أما لطبقات الأشكال الهندسية ثنائية الأبعاد (التي لا تحتوي على قيم Z)، فيمكن بدلًا من ذلك تعيين Base height (ارتفاع القاعدة) معرَّف بالبيانات.

  • unchecked Enable extrusion: يمكنك تعيين Height (الارتفاع) للتحكم في مدى امتداد المعالم رأسيًا فوق قاعدتها. ويفيد ذلك في الإشارة إلى أن طبقة أشكال هندسية ثنائية الأبعاد، مثل طبقة مضلعات لمساقط المباني، تمثل في الواقع كائنات ثلاثية الأبعاد.

  • unchecked Custom tolerance: يتيح لك تجاوز سماحية أخذ العينات العامة المحددة في إعدادات المقطع الجانبي للارتفاع، خصيصًا لهذه الطبقة المتجهية. عند تفعيله، يمكنك ضبط Tolerance التي تحدد كيفية أخذ عينات الطبقة على امتداد خط المقطع. ويفيد ذلك عندما تحتاج إلى أخذ عينات أدق أو أخشن من القيمة العامة الافتراضية، على سبيل المثال لتحسين الأداء أو الدقة للأشكال الهندسية المعقدة.

  • Elevation Binding: لا يكون ذا صلة إلا عند الجمع بين خيار Elevation clamping يعتمد على التضاريس وطبقة خطوط أو مضلعات، ويتحكم هذا الخيار في كيفية تعيين ارتفاع المعلم بالنسبة إلى ارتفاع التضاريس. ويمكن أخذ عينات التضاريس:

    • عند Centroid (المركز الهندسي) للمعلم، مع إضافة ارتفاع المركز الهندسي إلى قيمة z لكل رأس

    • عند كل Vertex (رأس) على حدة قبل إضافته إلى قيمة z للرأس

  • Profile Chart Appearance: يتحكم في كيفية عرض المعالم عند رسم مخطط المقطع الجانبي. ويتوفر نمطان رئيسيان لـ Interpretation (التفسير):

    • بوصفها Individual features: يأخذ عينات من المواضع المنفصلة التي يتقاطع فيها خط المقطع العرضي مع المعالم المتجهية. ويمكن تمثيل هذا التقاطع كنقطة أو خط أو سطح بحسب نوع الطبقة وما إذا كان البثق مطبقًا.

      عند تفعيل checkbox Respect layer symbology، تُعرض المعالم على مخطط المقطع الجانبي بـ تنسيق الطبقة المقابل لها (مما يتيح مثلًا ظهور الفئات المصنفة على مخطط المقطع). وإذا لم يتطابق نوع رمز المقطع مع أنواع رموز أداة الرسم الخاصة بالطبقة، يُطبَّق لون الرمز فقط من أداة الرسم على رمز المقطع.

      بحسب إعدادات الطبقة، يمكن تمثيل رموز المقطع بنمط مخصص باستخدام:

      • نمط العلامة: لمعالم النقاط والخطوط غير المبثوقة، ولمعالم المضلعات غير المبثوقة التي يلمسها خط المقطع

      • نمط الخط: لمعالم النقاط والخطوط المبثوقة، ولمعالم المضلعات غير المبثوقة التي يتقاطع معها خط المقطع

      • نمط التعبئة: لمعالم المضلعات المبثوقة

    • بوصفها Continuous Surface (e.g. contours): يُعرض مخطط الارتفاع كسطح بدلًا من معالم منفصلة، وذلك بوصل نتائج الارتفاع المأخوذة كعينات في خط متصل. ويمكن أن يحسّن هذا التمثيل البصري، وهو مصمم للطبقات المتجهية التي تمثل سطح ارتفاع متصلًا، مثل خطوط الكنتور أو نقاط الارتفاع المسوحة. ويمكن تعيين Style (نمط) المقطع على أنه:

      • Line (خط) بـ نمط خط محدد

      • سطح ارتفاع يُعرض باستخدام رمز تعبئة إما فوق (Fill above) أو تحت (Fill below) خط منحنى الارتفاع. ويُمثَّل ترميز السطح باستخدام:

        • نمط تعبئة

        • و Limit (حد): أقصى (أو أدنى على التوالي) ارتفاع يحدد مدى ارتفاع سطح التعبئة

      علاوة على ذلك، يمكنك تفعيل unchecked Show markers at sampled points لإظهار العلامات فوق خط التفسير وتعيين Marker style (نمط العلامة) لها.

12.1.18. خصائص البيانات الوصفية (Metadata)

يوفر لك التبويب editMetadata Metadata خيارات لإنشاء تقرير بيانات وصفية (metadata) لطبقتك وتحريره. راجع البيانات الوصفية (Metadata) لمزيد من المعلومات.

12.1.19. خصائص الاعتماديات

يتيح التبويب dependencies Dependencies التصريح باعتماديات البيانات بين الطبقات. وتنشأ اعتمادية البيانات عندما قد يؤدي تعديل البيانات في طبقة ما، لا عن طريق تعامل مباشر من المستخدم، إلى تعديل بيانات طبقات أخرى. ومثال ذلك عندما يُحدَّث الشكل الهندسي لطبقة بواسطة مُشغّل (trigger) في قاعدة البيانات أو بسكربت PyQGIS مخصص بعد تعديل الشكل الهندسي لطبقة أخرى.

في التبويب Dependencies، يمكنك تحديد أي طبقات قد تغيّر البيانات في الطبقة الحالية من الخارج. ويتيح التحديد الصحيح للطبقات المعتمَد عليها لـ QGIS إبطال ذاكرة التخزين المؤقت لهذه الطبقة عند تغيير الطبقات المعتمَد عليها.

12.1.20. خصائص مفتاح الخريطة

يوفر لك تبويب الخصائص legend Legend إعدادات متقدمة لـ لوحة الطبقات و/أو مفتاح الخريطة في تخطيط الطباعة. وتشمل هذه الخيارات:

  • بحسب الترميز المطبق على الطبقة، قد ينتهي بك الأمر إلى عدة مدخلات في مفتاح الخريطة، ليس بالضرورة أن يكون عرضها مقروءًا أو مفيدًا. ويساعدك الخيار Legend placeholder image على تحديد صورة بديلة تُعرض في كل من لوحة Layers ومفتاح الخريطة في تخطيط الطباعة.

  • checkbox Show label legend: يعرض لمحات عن إعدادات التسميات المختلفة كمدخلات في مفاتيح الخريطة. ويُعرض نمط التسمية معاينةً مع الوصف.

  • checkbox Text on symbols: قد يكون من المفيد في بعض الحالات إضافة معلومات إضافية إلى الرموز في مفتاح الخريطة. ومن خلال هذا الإطار، يمكنك أن تُسند إلى أي رمز مستخدم في ترميز الطبقة نصًا يُعرض فوق الرمز، في كل من لوحة Layers ومفتاح الخريطة في تخطيط الطباعة. ويتم هذا الربط بكتابة كل نص بجانب الرمز في عنصر واجهة الجدول، أو بتعبئة الجدول باستخدام الزر Set Labels from Expression. ويُتحكم في مظهر النص من خلال عناصر واجهة اختيار الخط واللون في الزر Text Format.

../../../_images/text_legend_symbols.png

شكل 12.69 تعيين نص على الرموز (يسارًا) وعرضه في لوحة Layers (يمينًا)

  • قائمة بعناصر الواجهة التي يمكنك تضمينها داخل شجرة الطبقات في لوحة الطبقات. والفكرة هي توفير طريقة للوصول السريع إلى بعض الإجراءات التي تُستخدم كثيرًا مع الطبقة (ضبط الشفافية، الترشيح، التحديد، النمط أو غير ذلك...).

    يوفر QGIS افتراضيًا عنصر واجهة الشفافية، لكن يمكن توسيع ذلك بواسطة إضافات تسجّل عناصر الواجهة الخاصة بها وتُسند إجراءات مخصصة إلى الطبقات التي تديرها.

12.1.21. خصائص QGIS Server

يتكون التبويب overlay QGIS Server من الأقسام Description و Attribution و Metadata URL و Legend URL.

من القسم Description، يمكنك تغيير Short name (الاسم المختصر) المستخدم للإشارة إلى الطبقة في الطلبات (لمعرفة المزيد عن الأسماء المختصرة، اقرأ الاسم المختصر). ويمكنك أيضًا إضافة أو تحرير Title (عنوان)، و WFS Title بديل، و Abstract (ملخص) للطبقة، أو تعريف Keyword list (قائمة كلمات مفتاحية) هنا. ويمكن استخدام قوائم الكلمات المفتاحية هذه في فهرس بيانات وصفية (metadata catalog). وإذا أردت استخدام عنوان من ملف بيانات وصفية بصيغة XML، فعليك إدخال رابط في الحقل Data URL.

استخدم Attribution للحصول على بيانات السمات من فهرس بيانات وصفية بصيغة XML.

في Metadata URL، يمكنك إضافة المسارات العامة إلى فهرس البيانات الوصفية بصيغة XML. وستُحفظ هذه المعلومات في ملف مشروع QGIS للجلسات اللاحقة، وسيستخدمها QGIS Server.

في القسم Legend URL، يمكنك إدخال عنوان URL لصورة مفتاح الخريطة في حقل العنوان. ويمكنك استخدام القائمة المنسدلة Format لتطبيق الصيغة المناسبة للصورة. والصيغ المدعومة حاليًا هي png و jpg و jpeg.

../../../_images/vector_server_properties.png

شكل 12.70 تبويب QGIS Server في نافذة حوار خصائص الطبقات المتجهية

لمعرفة المزيد عن QGIS Server، اقرأ دليل QGIS Server.

12.1.22. خصائص الرقمنة

يتيح التبويب digitizing Digitizing الوصول إلى خيارات تساعد على ضمان جودة الأشكال الهندسية المُرقمنة.

../../../_images/vector_digitizing_properties.png

شكل 12.71 تبويب الرقمنة في نافذة حوار خصائص الطبقات المتجهية في QGIS

12.1.22.1. الإصلاحات التلقائية

تؤثر الخيارات في القسم Automatic Fixes مباشرة في رؤوس أي شكل هندسي يُضاف أو يُعدَّل. فإذا فُعّل الخيار checkbox Remove duplicate nodes، يُزال أي رأسين متتاليين لهما الإحداثيات نفسها تمامًا. وإذا عُيّنت Geometry precision (دقة الشكل الهندسي)، تُقرَّب جميع الرؤوس إلى أقرب مضاعف لدقة الشكل الهندسي المهيأة. ويتم التقريب في نظام الإحداثيات المرجعي للطبقة. ولا تُقرَّب قيم Z و M. ومع كثير من أدوات الخريطة، تظهر شبكة على اللوحة أثناء الرقمنة.

../../../_images/vertex_snap_to_grid.png

شكل 12.72 تحريك الرأس العلوي يلتقط جميع الرؤوس إلى الشبكة

12.1.22.2. فحوص الشكل الهندسي

في القسم Geometry checks، يمكن تفعيل عمليات تحقق إضافية لكل شكل هندسي على حدة. وفور أي تعديل على الشكل الهندسي، يُبلَّغ المستخدم بإخفاقات هذه الفحوص في لوحة Geometry validation. وما دام أحد الفحوص يفشل، فلا يمكن حفظ الطبقة. ويُجري الفحص checkbox Is valid فحوص صلاحية أساسية مثل التقاطع الذاتي في الأشكال الهندسية.

12.1.22.3. فحوص الطوبولوجيا

في القسم Topology checks، يمكن تفعيل فحوص تحقق طوبولوجية إضافية. وتُنفَّذ فحوص الطوبولوجيا عندما يحفظ المستخدم الطبقة. ويُبلَّغ عن أخطاء الفحص في لوحة Geometry validation. وما دامت أخطاء التحقق موجودة، فلا يمكن حفظ الطبقة. وتُنفَّذ فحوص الطوبولوجيا في منطقة المستطيل المحيط بالمعالم المعدَّلة. ونظرًا لاحتمال وجود معالم أخرى في المنطقة نفسها، يُبلَّغ عن الأخطاء الطوبولوجية المتعلقة بهذه المعالم إلى جانب الأخطاء الناتجة في جلسة التحرير الحالية.

خيار فحص الطوبولوجيا

توضيح

يتحقق الفحص checkbox Gap من وجود فجوات بين المضلعات المتجاورة.

../../../_images/gapcheck.png

يتحقق الفحص checkbox Overlap من وجود تداخلات بين المضلعات المتجاورة.

../../../_images/overlapcheck.png

يتحقق الفحص checkbox Missing vertex من الحدود المشتركة للمضلعات المتجاورة التي يفتقد فيها أحد الحدين رأسًا موجودًا في الحد الآخر.

../../../_images/missingvertexcheck.png

استثناءات فحص الفجوات

يكون من المرغوب أحيانًا الإبقاء على فجوات داخل منطقة في طبقة مضلعات مغطاة بالكامل بالمضلعات فيما عدا ذلك. فعلى سبيل المثال، قد تحتوي طبقة استخدامات الأراضي على ثقوب مقبولة للبحيرات. ويمكن تعريف مناطق تُتجاهل في فحص الفجوات. ونظرًا لأن الفجوات داخل هذه المناطق مسموح بها، فسنشير إليها بمناطق Allowed Gaps (الفجوات المسموح بها).

في خيارات فحوص الفجوات ضمن Allowed Gaps، يمكن تهيئة Allowed Gaps layer (طبقة الفجوات المسموح بها).

كلما نُفّذ فحص الفجوات، لا يُبلَّغ عن الفجوات المغطاة بمضلع واحد أو أكثر في Allowed Gaps Layer بوصفها أخطاء طوبولوجية.

يمكن أيضًا تهيئة Buffer (نطاق عازل) إضافي. ويُطبَّق هذا النطاق العازل على كل مضلع في Allowed Gaps Layer. وهذا يجعل الاختبارات أقل تأثرًا بالتغييرات الصغيرة في الخطوط الخارجية عند حدود الفجوات.

عند تفعيل Allowed Gaps، يتوفر زر إضافي (Add Allowed Gap) لأخطاء الفجوات المكتشفة في لوحة التحقق من الأشكال الهندسية، حيث يُبلَّغ عن الفجوات أثناء الرقمنة. وعند الضغط على الزر Add Allowed Gap، يُدرج مضلع جديد بالشكل الهندسي للفجوة المكتشفة في Allowed Gaps Layer. وهذا يتيح وسم الفجوات بسرعة على أنها مسموح بها.

لوحة التحقق من الأشكال الهندسية

تُستدعى لوحة Geometry Validation عندما يجد أي من فحوص الرقمنة المذكورة أعلاه خطأً. وتوفر لك النافذة قائمة بالأخطاء ووصفها، ويمكنك تصفح القائمة باستخدام أسهم لوحة المفاتيح أو الأسهم المخصصة.

ستحتاج إلى معالجة جميع المشكلات قبل أن تتمكن من حفظ التعديلات على الطبقة. وللقيام بذلك:

  1. حدّد خطأً، ويمكنك عندئذٍ:

    • zoomToSelected Zoom to Feature(s)

    • zoomToLayer Zoom to problem

  2. استخدم أدوات الرقمنة المعتادة لإصلاح المشكلة.