10.2. محدد الرموز

محدد الرموز هو نافذة الحوار الرئيسية لتصميم رمز. ويمكنك فيه إنشاء الرموز النقطية (Marker) أو الخطية (Line) أو رموز التعبئة (Fill) أو تحريرها.

../../../_images/symbolselector.png

شكل 10.10 تصميم رمز خطي

تتكون نافذة حوار محدد الرموز من مكوّنين رئيسيين:

  • شجرة الرموز، التي تعرض طبقات الرموز التي تُدمج بعد ذلك لتشكيل رمز كلي جديد

  • والإعدادات الخاصة بتهيئة طبقة الرمز المحددة في الشجرة.

10.2.1. شجرة طبقات الرمز

يمكن أن يتكون الرمز من عدة Symbol layers. وتعرض شجرة الرموز تراكب طبقات الرمز هذه التي تُدمج بعد ذلك لتشكيل رمز كلي جديد. كما يُحدَّث تمثيل ديناميكي للرمز فور تغيّر خصائصه.

بحسب المستوى المحدد في عناصر شجرة الرموز، تتوفر أدوات متنوعة لمساعدتك على إدارة الشجرة:

  • symbologyAdd إضافة طبقة رمز جديدة: يمكنك تكديس أي عدد تريده من الرموز

  • symbologyRemove إزالة طبقة الرمز المحددة

  • قفل ألوان طبقة الرمز: يبقى اللون locked المقفل دون تغيير عندما يغيّر المستخدم اللون على مستوى الرمز الكلي (أو الأعلى)

  • duplicateLayer تكرار طبقة رمز (أو مجموعة طبقات رموز)

  • تحريك طبقة الرمز إلى الأعلى أو الأسفل

10.2.2. تهيئة رمز

تتم تهيئة الرمز في QGIS على خطوتين: الرمز ثم طبقة الرمز.

10.2.2.1. الرمز

في المستوى الأعلى من الشجرة، يعتمد الرمز على الشكل الهندسي للطبقة ويمكن أن يكون من نوع Marker أو Line أو Fill. ويمكن لكل رمز أن يضم رمزًا أو أكثر (بما في ذلك رموز من أي نوع آخر) أو طبقات رموز.

يمكنك ضبط بعض المعاملات التي تنطبق على الرمز الكلي:

  • Unit: يمكن أن تكون Millimeters أو Points أو Pixels أو Meters at Scale أو Map units أو Inches (انظر منتقي الوحدات لمزيد من التفاصيل)

  • Opacity

  • Color: عندما يغيّر المستخدم هذا المعامل، تنعكس قيمته على لون جميع الرموز الفرعية غير المقفلة

  • Size و Rotation للرموز النقطية

  • Width للرموز الخطية

    نصيحة

    استخدم الخاصية Size (للرموز النقطية) أو Width (للرموز الخطية) على مستوى الرمز لتغيير أبعاد جميع طبقات الرمز المضمَّنة فيه بشكل متناسب.

    ملاحظة

    يكون الزر Data-defined override بجانب معاملات العرض أو الحجم أو الدوران غير نشط عند ضبط الرمز من نافذة حوار مدير الأنماط. وعندما يكون الرمز مرتبطًا بطبقة خريطة، يساعدك هذا الزر على إنشاء رسم للتحليل التناسبي أو متعدد المتغيرات.

  • معاينة مكتبة الرموز: تُعرض الرموز من النوع نفسه، ويمكن تصفيتها عبر القائمة المنسدلة القابلة للتحرير أعلاها بنص حر أو حسب الفئات. ويمكنك أيضًا تحديث قائمة الرموز باستخدام الزر styleManager Style Manager لفتح نافذة الحوار التي تحمل الاسم نفسه. وهناك يمكنك استخدام أي من الإمكانات الموضحة في القسم مدير الأنماط.

    تُعرض الرموز إما:

    • في قائمة أيقونات (مع صورة مصغرة واسم ووسوم مرتبطة) باستخدام الزر openTable List View أسفل الإطار؛

    • أو كمعاينة أيقونات باستخدام الزر iconView Icon View.

  • اضغط على الزر Save Symbol لفتح نافذة الحوار Save New Symbol. وهنا يمكنك اختيار Destination التي تريد إضافة الرمز الجاري تحريره إليها، وإعطاؤه Name وإضافة Tag(s). ولديك أيضًا خيار checkbox Add to favorites لرمزك الجديد.

  • باستخدام الخيار Advanced selectString يمكنك:

    • بالنسبة لرموز الخطوط والتعبئة: Clip features to canvas extent.

    • بالنسبة لرموز التعبئة: Force right-hand rule orientation: يتيح إجبار رموز التعبئة المرسومة على اتباع "قاعدة اليد اليمنى" القياسية لاتجاه الحلقات (أي المضلعات التي تكون حلقتها الخارجية باتجاه عقارب الساعة، وحلقاتها الداخلية جميعها عكس اتجاه عقارب الساعة).

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

    • بالنسبة للرموز النقطية، يتيح Buffer settings... إضافة تأثير هالة حول الرمز النقطي لجعله أسهل قراءةً على خلفيات مختلفة. ويُحسب النطاق العازل ويُرسم باستخدام شكل جميع طبقات الرمز في الرمز النقطي. ويمكنك ضبط Size و Join style و Symbol للعرض.

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

    • بحسب ترميز الطبقة التي يُطبَّق عليها الرمز، تتوفر إعدادات إضافية في القائمة Advanced:

10.2.2.2. طبقة الرمز

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

لأن وصف جميع خيارات جميع أنواع طبقات الرموز غير ممكن، نذكر أدناه فقط الخيارات الخاصة والمهمة.

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

تتوفر بعض الخيارات وعناصر الواجهة المشتركة لبناء طبقة رمز، سواء كانت من النوع الفرعي النقطي أو الخطي أو التعبئة:

  • عنصر الواجهة محدد الألوان لتسهيل التعامل مع الألوان

  • Units: يمكن أن تكون Millimeters أو Points أو Pixels أو Meters at Scale أو Map units أو Inches (انظر منتقي الوحدات لمزيد من التفاصيل)

  • عنصر الواجهة dataDefine Data-defined override بجانب جميع الخيارات تقريبًا، مما يوسّع إمكانات تخصيص كل رمز (انظر إعداد التجاوز المعرَّف بالبيانات لمزيد من المعلومات)

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

  • الزر checkbox Draw effects من أجل رسم التأثيرات.

ملاحظة

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

الرموز النقطية

الرموز النقطية مناسبة للمعالم ذات الشكل الهندسي النقطي، ولها عدة Symbol layer types:

جدول 10.1 قائمة أنواع طبقات الرموز النقطية

الرمز النقطي البسيط

الرمز النقطي المتحرك

الرمز النقطي البيضاوي

الرمز النقطي المعبأ

رمز الخط الطباعي

مولّد الأشكال الهندسية

القناع

رمز الصورة الشبكية

رمز حقل المتجهات

رمز SVG

  • الرمز النقطي البسيط (الافتراضي)

    ../../../_images/simpleMarkerSymbol.png

    شكل 10.11 تصميم رمز نقطي بسيط

    لنوع طبقة الرمز النقطي البسيط الخصائص التالية:

    • Size بوحدات مدعومة متنوعة

    • Fill color

    • Stroke color و Stroke style من قائمة معرَّفة مسبقًا و Stroke size

    • Join style: يمكن أن يكون Bevel أو Miter أو Round

    • Cap style: يمكن أن يكون Square أو Flat أو Round

    • Rotation

    • Offset في الاتجاهين X و Y من المعلم

    • Anchor point: يحدد النقطة الربعية على الرمز التي تُعتمد أصلًا للموضع، وهي النقطة التي تُطبَّق عليها Offset.

  • الرمز النقطي المتحرك (انظر علامة متحركة)

  • الرمز النقطي البيضاوي: طبقة رمز نقطي بسيط بعرض وارتفاع قابلين للتخصيص

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

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

    • Font family

    • Font style

    • Character(s)، وتمثل النص المراد عرضه كرمز. ويمكن كتابتها أو اختيارها من عنصر واجهة مجموعة أحرف الخط، ويمكنك إجراء Preview مباشرة لها بالإعدادات المختارة.

  • مولّد الأشكال الهندسية (انظر مولّد الأشكال الهندسية)

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

  • رمز الصورة الشبكية: يستخدم صورة (PNG و JPG و BMP ...) كرمز نقطي. ويمكن أن تكون الصورة ملفًا على القرص، أو عنوان URL بعيدًا، أو مضمَّنة في قاعدة بيانات الأنماط (مزيد من التفاصيل) أو مُرمَّزة كسلسلة base64. ويمكن ضبط عرض الصورة وارتفاعها كلٌّ على حدة أو باستخدام lockedGray Lock aspect ratio. ويمكن ضبط الحجم بأي من الوحدات الشائعة أو كنسبة مئوية من الحجم الأصلي للصورة (محجَّمة حسب العرض).

  • رمز حقل المتجهات (انظر علامة الحقل المتجهي)

  • رمز SVG: يوفر لك صورًا من مسارات SVG لديك (المحددة في القائمة Settings ► Options... ► System) لرسمها كرمز نقطي. ويمكن ضبط عرض الرمز وارتفاعه كلٌّ على حدة أو باستخدام lockedGray Lock aspect ratio. ويمكن أيضًا تكييف ألوان كل ملف SVG وحدوده. ويمكن أن تكون الصورة ملفًا على القرص، أو عنوان URL بعيدًا، أو مضمَّنة في قاعدة بيانات الأنماط (مزيد من التفاصيل) أو مُرمَّزة كسلسلة base64.

    يمكن أيضًا ضبط الرمز باستخدام Dynamic SVG parameters. انظر القسم SVG قابل للتخصيص بالمعاملات لتحديد معاملات رمز SVG.

    ملاحظة

    متطلبات إصدار SVG

    يرسم QGIS ملفات SVG التي تتبع ملف التعريف SVG Tiny 1.2، المخصص للتطبيق على طيف من الأجهزة، من الهواتف المحمولة والمساعدات الرقمية الشخصية إلى الحواسيب المحمولة والمكتبية، ولذا فهو يتضمن مجموعة جزئية من الميزات الموجودة في SVG 1.1 Full، إلى جانب ميزات جديدة توسّع إمكانات SVG.

    قد لا تُرسم بعض الميزات غير المشمولة في هذه المواصفات بشكل صحيح في QGIS.

الرموز الخطية

الرموز الخطية مناسبة للمعالم ذات الشكل الهندسي الخطي، ولها أنواع طبقات الرمز التالية:

جدول 10.2 قائمة أنواع طبقات الرموز الخطية

الخط البسيط

السهم

الخط المعبأ

مولّد الأشكال الهندسية

الخط المهشَّر

الخط المستوفى

الإسناد الخطي

الاحتراق الخطي (Lineburst)

خط الرموز النقطية

الخط الشبكي

  • الخط البسيط (الافتراضي)

    ../../../_images/simpleLineSymbol.png

    شكل 10.12 تصميم رمز خط بسيط

    لنوع طبقة رمز الخط البسيط كثير من خصائص الرمز النقطي البسيط، وإضافة إلى ذلك:

    • checkbox Use custom dash pattern: يتجاوز الإعداد Stroke style بنمط تقطيع مخصص. وستحتاج إلى تحديد طول الشرطات والفراغات المتتالية التي تشكّل النموذج، بالوحدة المختارة. ويُعرض الطول الكلي للنمط في أسفل نافذة الحوار.

    • Pattern offset: يمكن ضبط مواضع الشرطات/الفراغات في الخط بحيث توضع في مواضع أفضل تراعي زوايا الخط (ويمكن استخدامه أيضًا لـ"محاذاة" حدود أنماط التقطيع المتجاورة)

    • checkbox Align dash pattern to line length: يُعدَّل طول نمط التقطيع بحيث ينتهي الخط بعنصر شرطة كامل بدلًا من فراغ.

    • checkbox Tweak dash pattern at sharp corners: يضبط موضع نمط التقطيع ديناميكيًا بحيث تُمثَّل الزوايا الحادة بعنصر شرطة كامل يدخل الزاوية الحادة ويخرج منها. ويعتمد على Align dash pattern to line length.

    • Trim lines من Start و/أو End: يتيح قص أول x مم وآخر y مم من السلسلة الخطية الفعلية عند رسم الخط. ويدعم طيفًا من الوحدات، بما في ذلك النسبة المئوية من الطول الكلي للخط، ويمكن تعريفه بالبيانات لمزيد من التحكم. ويمكن استخدام مسافة القص عند البداية/النهاية مثلًا عند إنشاء رموز معقدة لا ينبغي فيها لطبقة خطية أن تتداخل مع طبقات الرموز النقطية الموضوعة عند بداية الخط ونهايته.

  • السهم: يرسم الخطوط كأسهم منحنية (أو غير منحنية) برأس واحد أو رأسين، مع إمكانية تهيئة (وتعريف بالبيانات):

    • Head type

    • Arrow type

    • Arrow width

    • Arrow width at start

    • Head length

    • Head thickness

    • Offset

    من الممكن إنشاء checkbox Curved arrows (يجب أن يحتوي المعلم الخطي على ثلاثة رؤوس على الأقل) و checkbox Repeat arrow on each segment. كما يستخدم رمز تعبئة مثل التدرجات أو تعبئة الاحتراق الشكلي لرسم جسم السهم. وبالدمج مع مولّد الأشكال الهندسية، يساعدك هذا النوع من طبقات الرموز على تمثيل خرائط التدفق.

  • مولّد الأشكال الهندسية (انظر مولّد الأشكال الهندسية)

  • الخط المستوفى: يتيح رسم خط يكون Stroke width و/أو Color له ثابتًا (بإعطاء المعاملين Fixed width و Single color) أو متغيرًا على امتداد الشكل الهندسي. وعند التغيّر، تكون المدخلات اللازمة:

    • Start value و End value: القيم التي ستُستخدم للاستيفاء عند طرفي الشكل الهندسي للمعالم. ويمكن أن تكون قيمًا ثابتة، أو بيانات وصفية للمعلم، أو مبنية على تعبير.

    • Min. value و Max. value: القيم التي يُجرى الاستيفاء بينها. اضغط على الزر refresh Load لملئها تلقائيًا بناءً على أدنى وأعلى قيم البداية/النهاية المطبقة على الطبقة.

    • متاح فقط لخيار الحد:

      • Min. width و Max. width: يحددان نطاق العرض المتغير. يُعيَّن Min. width إلى Min. value و Max. width إلى Max. value. ويمكن ربط وحدة بهما.

      • checkbox Use absolute value: يأخذ في الحسبان القيمة المطلقة فقط عند الاستيفاء (تُستخدم القيم السالبة كقيم موجبة).

      • checkbox Ignore out of range: افتراضيًا، عندما لا يكون النطاق [start value - end value] لمعلم ما ضمن النطاق [min. value - max. value]، تُرسم الأجزاء الخارجة عن الحدود من الشكل الهندسي للمعلم بالعرض الأدنى أو الأقصى. فعّل هذا الخيار لعدم رسمها إطلاقًا.

    • بالنسبة للون المتغير، يمكنك استخدام أي من طرق الاستيفاء في تصنيف تدرج الألوان

    ../../../_images/interpolatedLineSymbol.png

    شكل 10.13 أمثلة على الخطوط المستوفاة

  • خط الرموز النقطية: يكرر رمزًا نقطيًا على امتداد طول الخط.

    • يمكن ضبط Marker placement باستخدام إعداد فاصل منتظم (بدءًا من الرأس الأول) و/أو خاصية الشكل الهندسي للخط (على الرأس الأول أو الأخير، أو الرؤوس الداخلية، أو النقطة المركزية للخط أو لكل قطعة، أو على كل نقطة منحنى).

    • عند تفعيل الموضع على الرأس الأول أو الأخير، يجعل الخيار checkbox Place on every part extremity الرموز النقطية تُرسم أيضًا عند الرأس الأول أو الأخير لكل جزء من الأشكال الهندسية متعددة الأجزاء.

    • Offset along line: يمكن أيضًا إعطاء موضع العلامات إزاحةً على امتداد الخط، بـ ref:unit <unit_selector> التي تختارها (المليمترات، النقاط، وحدات الخريطة، الأمتار عند مقياس الرسم، النسبة المئوية، ...):

      • تؤدي القيمة الموجبة إلى إزاحة رموز العلامات في اتجاه الخط (مع موضعي On first vertex و With interval) وإلى الخلف (مع موضع On last vertex).

      • تؤدي القيمة السالبة على خط غير مغلق إلى عدم وجود إزاحة (لموضعي On first vertex و On last vertex) أو إلى إزاحة الرموز إلى الخلف (بدءًا من الرأس الأخير).

      • مع حلقة مغلقة، يتعامل QGIS مع الإزاحة على أنها تستمر في الدوران حول الحلقة (إلى الأمام أو إلى الخلف). فمثلًا، يؤدي ضبط الإزاحة على 150% (أو -10% أو -110% على التوالي) إلى معاملة الإزاحة على أنها 50% (أو 90% على التوالي) من طول الحلقة المغلقة.

    • يحدد الخيار checkbox Rotate marker to follow line direction ما إذا كان كل رمز علامة يُوجَّه بالنسبة لاتجاه الخط أم لا.

      لأن الخط غالبًا ما يكون سلسلة من القطع ذات الاتجاهات المختلفة، تُحسب زاوية دوران العلامة بأخذ المتوسط على مسافة محددة على امتداد الخط. فمثلًا، يعني ضبط الخاصية Average angle over على 4mm أن النقطتين الواقعتين على الخط على بعد 2mm قبل موضع الرمز وبعده تُستخدمان لحساب زاوية الخط لرمز العلامة ذاك. ويؤدي هذا إلى تنعيم (أو إزالة) أي انحرافات محلية صغيرة عن الاتجاه العام للخط، مما ينتج عنه توجيه بصري أجمل بكثير لرموز خط العلامات.

    • Line offset: يمكن أيضًا إزاحة رموز العلامات عن معلم الخط.

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

    • Hash length

    • Hash rotation

    ../../../_images/hashedLineSymbol.png

    شكل 10.14 أمثلة على الخطوط المُهشَّرة

  • Raster line (خط شبكي): يرسم صورة شبكية ويكررها على طول شكل معلم الخط. يمكن ضبط Stroke width و Offset و Join style و Cap style و Opacity.

    ../../../_images/rasterLineSymbol.png

    شكل 10.15 أمثلة على الخطوط الشبكية

  • Linear referencing (الإسناد الخطي): يتيح وضع تسميات نصية على فترات منتظمة على امتداد الخط، أو في مواضع تقابل رؤوسًا موجودة. يمكن حساب المواضع باستخدام المسافات الديكارتية، أو استيفاؤها من قيم z/m. تشمل المعاملات:

    • Measure placement: يمكن وضع التسميات على مسافات ديكارتية ثنائية الأبعاد منتظمة، أو على تباعد منتظم مُستوفى خطيًا يُحسب باستخدام قيم Z أو M في الأشكال الهندسية، أو على الرؤوس الموجودة. ويُعطى Interval ثابت أو معرَّف بالبيانات.

    • Quantity: تمثل التسمية المعروضة عند كل موضع المسافة التراكمية على امتداد الخط، أو قيمة Z أو M المُستوفاة خطيًا. تُرسم التسميات باستخدام كامل إمكانات تنسيق النص و الأرقام المتاحة في QGIS.

    ملاحظة

    عند استخدام الموضع أو التسميات المعتمدة على المسافة، تُحسب المسافات في بُعدين فقط. وتعتمد الحسابات الديكارتية على نظام الإحداثيات المرجعي (CRS) الأصلي للطبقة.

    • Skip multiples of: عند ضبطه، تُتخطى التسميات التي تكون مضاعفًا لهذه القيمة. يتيح هذا بناء تسميات إسناد معقدة، مثلًا عندما يحتوي رمز على طبقتي رمز إسناد خطي، إحداهما مضبوطة لتسمية كل 100m بخط صغير مع تخطي مضاعفات 1000، والثانية لتسمية كل 1000m بخط كبير عريض.

    • Average angle over: تُرسم التسميات بزاوية تُحسب بأخذ متوسط الخط، بحيث لا تؤدي التعرجات الصغيرة الحادة إلى دوران غير مستحسن للتسميات.

    • Show marker symbols، عند النقاط المُسندة في معلم الخط، باستخدام رمز علامة كامل من QGIS. يتيح هذا مثلًا إظهار علامة تقاطع عند النقطة المُسمّاة، لخط بنمط "المسطرة".

    ../../../_images/linearReferencingSymbol.png

    شكل 10.16 رسم تسميات خطية على امتداد معلم خطي

  • Lineburst: يرسم تدرجًا لونيًا على عرض الخط. يمكنك الاختيار بين Two color أو Color ramp، ويمكن ضبط Stroke width و Offset و Join style و Cap style.

    ../../../_images/lineburstSymbol.png

    شكل 10.17 أمثلة على خطوط Lineburst

  • Filled line (خط مملوء): يرسم باطن الخطوط باستخدام رمز تعبئة، مما يتيح خطوطًا مملوءة بتدرجات لونية أو تهشير خطي وغير ذلك. يمكن ضبط Stroke width و Offset و Join style و Cap style.

    ../../../_images/filledLineSymbol.png

    شكل 10.18 أمثلة على الخطوط المملوءة

رموز التعبئة

تناسب رموز التعبئة المعالم ذات الأشكال الهندسية المضلعة، ولها أيضًا عدة أنواع من طبقات الرموز:

جدول 10.3 قائمة أنواع طبقات رموز التعبئة

لباطن المضلع

لحلقة المضلع

Simple fill

Outline: Arrow

Centroid fill

Outline: Filled line

مولّد الأشكال الهندسية

Outline: Hashed line

Gradient fill

Outline: Interpolated line

Line pattern fill

Outline: Linear referencing

Point pattern fill line

Outline: Lineburst

Random marker fill

Outline: Marker line

Raster image

Outline: Raster line

SVG fill

Outline: Simple line

Shapeburst fill

  • Simple fill (تعبئة بسيطة، الافتراضي): يملأ المضلع بلون موحد

    ../../../_images/simpleFillSymbol.png

    شكل 10.19 تصميم رمز تعبئة بسيطة

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

    يمكنك:

    • Force placement of markers inside polygons

    • Draw markers on every part of multi-part features أو وضع النقطة على أكبر أجزائه فقط

    • عرض رمز (رموز) العلامة كاملًا أو جزئيًا، مع الإبقاء على الأجزاء المتداخلة مع الشكل الهندسي للمعلم الحالي (Clip markers to polygon boundary) أو مع جزء الشكل الهندسي الذي ينتمي إليه الرمز (Clip markers to current part boundary only)

  • مولّد الأشكال الهندسية (انظر مولّد الأشكال الهندسية)

  • Gradient fill (تعبئة متدرجة): يستخدم تدرجًا شعاعيًا أو خطيًا أو مخروطيًا، إما بتدرج بسيط من لونين أو بـ تدرج ألوان معرَّف مسبقًا لملء المضلعات. يمكن تدوير التدرج وتطبيقه على كل معلم على حدة أو على كامل امتداد الخريطة. كما يمكن تحديد نقطتي البداية والنهاية بالإحداثيات أو باستخدام المركز (مركز المعلم أو الخريطة). ويمكن تعريف إزاحة معرَّفة بالبيانات.

  • Line pattern fill (تعبئة بنمط خطي): يملأ المضلع بنمط تهشير من طبقة رمز خطي. يمكنك ضبط:

    • Alignment: يحدد كيفية تموضع النمط بالنسبة للمعلم (أو المعالم):

      • Align pattern to feature: تُرسم الخطوط داخل كل معلم

      • Align pattern to map extent: يُرسم النمط على كامل امتداد الخريطة، مما يتيح محاذاة الخطوط بشكل متناسق عبر المعالم

    • Rotation الخطوط، عكس اتجاه عقارب الساعة

    • Spacing: المسافة بين الخطوط المتتالية

    • Offset: مسافة الخطوط عن حدود المعلم

    • Clipping: يتيح التحكم في كيفية قص خطوط التعبئة على شكل المضلع. الخيارات هي:

      • Clip During Render Only: تُنشأ الخطوط بحيث تغطي المستطيل المحيط بالمعلم بالكامل ثم تُقص أثناء الرسم. لن تكون أطراف الخطوط (البداية والنهاية) مرئية.

      • Clip Lines Before Render: تُقص الخطوط على الشكل الدقيق للمضلع قبل الرسم. ستكون أطراف الخطوط (بما في ذلك أنماط النهايات وكائنات خط العلامات عند البداية/النهاية، ...) مرئية، وقد تمتد أحيانًا خارج المضلع (حسب إعدادات رمز الخط).

      • No Clipping: لا يُجرى أي قص على الإطلاق - ستغطي الخطوط المستطيل المحيط بالمعلم بالكامل

    ملاحظة

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

  • Point pattern fill (تعبئة بنمط نقطي): يملأ المضلع بنمط شبكي من رمز العلامة. يمكنك ضبط:

    • Alignment: يحدد كيفية تموضع النمط بالنسبة للمعلم (أو المعالم):

      • Align pattern to feature: تُرسم صفوف العلامات داخل كل معلم

      • Align pattern to map extent: يُرسم النمط على كامل امتداد الخريطة، مما يتيح محاذاة العلامات بشكل متناسق عبر المعالم

        ../../../_images/pointPatternAlignment.png

        شكل 10.20 محاذاة النمط النقطي مع المعلم (يسارًا) ومع امتداد الخريطة (يمينًا)

    • Distance: المسافتان Horizontal و Vertical بين العلامات المتتالية

    • Displacement: إزاحة محاذاة Horizontal (أو Vertical على التوالي) بين العلامات المتتالية في عمود (أو في صف على التوالي)

    • Offset: المسافتان Horizontal و Vertical عن حدود المعلم

    • Clipping: يتيح التحكم في كيفية قص علامات التعبئة على شكل المضلع. الخيارات هي:

      • Clip to shape: تُقص العلامات بحيث تظهر فقط الأجزاء الواقعة داخل المضلع

      • Marker centroid within shape: تُرسم فقط العلامات التي يقع مركزها داخل المضلع، لكن هذه العلامات لن تُقص عند خارج المضلع

      • Marker completely within shape: تظهر فقط العلامات الواقعة بالكامل داخل المضلع

      • No clipping: أي علامة تتقاطع مع المضلع بأي قدر ستُرسم كاملة (وبدقة أكثر: "تتقاطع مع المستطيل المحيط بالعلامة")

        ../../../_images/clipPointPatternFill.png

        شكل 10.21 قص العلامات في التعبئة - من اليسار إلى اليمين: Clip to shape، Marker centroid within shape، Marker completely within shape، No clipping

    • Rotation النمط بأكمله، في اتجاه عقارب الساعة

    • يتيح إعداد المجموعة Randomize pattern إزاحة كل نقطة في التعبئة بالنمط النقطي عشوائيًا حتى المسافة القصوى المحددة Horizontally أو Vertically. يمكنك تحديد الإزاحة القصوى بأي وحدة مدعومة، مثل المليمترات أو النقاط أو وحدات الخريطة، أو حتى "النسبة المئوية" (حيث تكون النسبة بالنسبة لعرض النمط أو ارتفاعه).

      يمكنك ضبط بذرة اختيارية للأرقام العشوائية لتجنب "قفز" أنماط الرموز بين مرات تحديث الخريطة. كما أن التجاوزات المعرَّفة بالبيانات مدعومة.

      ملاحظة

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

  • Random marker fill (تعبئة بعلامات عشوائية): يملأ المضلع بـ رمز علامة موضوع في مواقع عشوائية داخل حدود المضلع. يمكنك ضبط:

    • Count method: ما إذا كان عدد رموز العلامات المطلوب رسمها يُعتبر عددًا مطلقًا أو قائمًا على الكثافة

    • Point count: عدد رموز العلامات المطلوب رسمها،

    • seed اختيارية للأرقام العشوائية، لضمان وضع متسق

    • Density area: في حالة طريقة العد القائمة على الكثافة، يضمن بقاء كثافة تعبئة العلامات ثابتة عند مقاييس رسم / مستويات تكبير مختلفة كلما حُدّثت الخرائط (كما يتيح للوضع العشوائي العمل بشكل جيد مع خادم QGIS والرسم القائم على البلاطات)

    • Clip markers to polygon boundary: ما إذا كانت العلامات المرسومة قرب حواف المضلعات تُقص على حدود المضلع أم لا

  • Raster image fill (تعبئة بصورة شبكية): يملأ المضلع ببلاطات من صورة شبكية (PNG JPG، BMP ...). يمكن أن تكون الصورة ملفًا على القرص، أو رابط URL بعيدًا، أو ملفًا مضمَّنًا مُرمَّزًا كسلسلة نصية (مزيد من التفاصيل). تشمل الخيارات العتامة (المعرَّفة بالبيانات)، والحجم، ووضع الإحداثيات (الكائن أو منفذ العرض)، والدوران، والإزاحة. ضمن خيار Size يمكنك ضبط عرض نمط التعبئة وارتفاعه بشكل مستقل، مما يتيح تعبئات شبكية ممطوطة في الاتجاه الأفقي أو الرأسي. يمكن ضبط عرض الصورة وارتفاعها باستخدام أي من الوحدات الشائعة أو كنسبة مئوية من الحجم الأصلي.

  • SVG fill (تعبئة SVG): يملأ المضلع باستخدام علامات SVG بحجم معين (Texture width).

  • Shapeburst fill: يطبق تعبئة متدرجة على شكل نطاق، حيث يُرسم التدرج من حدود المضلع نحو مركزه. تشمل المعاملات القابلة للضبط المسافة من الحدود المراد تظليلها، واستخدام تدرجات الألوان أو تدرجات بسيطة من لونين، والتمويه الاختياري للتعبئة، والإزاحات.

  • Outline: Arrow (الحد الخارجي: سهم): يستخدم طبقة رمز سهم خطي لتمثيل حدود المضلع (Rings)، والتي يمكن أن تكون الحلقات الداخلية فقط، أو الحلقة الخارجية فقط، أو جميع الحلقات. إعدادات سهم الحد الخارجي هي نفسها إعدادات رموز السهم الخطية.

  • Outline: Filled line (الحد الخارجي: خط مملوء): يستخدم طبقة رمز خط مملوء لتمثيل حدود المضلع (Rings)، والتي يمكن أن تكون الحلقات الداخلية فقط، أو الحلقة الخارجية فقط، أو جميع الحلقات. الإعدادات هي نفسها إعدادات رموز الخط المملوء.

  • Outline: Hashed line (الحد الخارجي: خط مُهشَّر): يستخدم طبقة رمز خط مُهشَّر لتمثيل حدود المضلع (Rings)، والتي يمكن أن تكون الحلقات الداخلية فقط، أو الحلقة الخارجية فقط، أو جميع الحلقات. الإعدادات الأخرى هي نفسها إعدادات رموز الخط المُهشَّر.

  • Outline: Interpolated line (الحد الخارجي: خط مُستوفى): يستخدم طبقة رمز خط مُستوفى لتمثيل حدود المضلع (Rings)، والتي يمكن أن تكون الحلقات الداخلية فقط، أو الحلقة الخارجية فقط، أو جميع الحلقات. الإعدادات الأخرى هي نفسها إعدادات رموز الخط المُستوفى.

  • Outline: Linear referencing (الحد الخارجي: إسناد خطي): يستخدم طبقة رمز إسناد خطي لتمثيل حدود المضلع (Rings)، والتي يمكن أن تكون الحلقات الداخلية فقط، أو الحلقة الخارجية فقط، أو جميع الحلقات. الإعدادات الأخرى هي نفسها إعدادات رموز الإسناد الخطي.

  • Outline: Lineburst (الحد الخارجي: Lineburst): يستخدم طبقة رمز Lineburst لتمثيل حدود المضلع (Rings)، والتي يمكن أن تكون الحلقات الداخلية فقط، أو الحلقة الخارجية فقط، أو جميع الحلقات. الإعدادات الأخرى هي نفسها إعدادات رموز Lineburst.

  • Outline: Marker line (الحد الخارجي: خط علامات): يستخدم طبقة رمز خط علامات لتمثيل حدود المضلع (Rings)، والتي يمكن أن تكون الحلقات الداخلية فقط، أو الحلقة الخارجية فقط، أو جميع الحلقات. الإعدادات الأخرى لخط العلامات للحد الخارجي هي نفسها إعدادات رموز خط العلامات.

  • Outline: Raster line (الحد الخارجي: خط شبكي): يستخدم طبقة رمز خط شبكي لتمثيل حدود المضلع (Rings)، والتي يمكن أن تكون الحلقات الداخلية فقط، أو الحلقة الخارجية فقط، أو جميع الحلقات. الإعدادات الأخرى للخط المُهشَّر للحد الخارجي هي نفسها إعدادات رموز الخط المُهشَّر.

  • Outline: Simple line (الحد الخارجي: خط بسيط): يستخدم طبقة رمز خط بسيط لتمثيل حدود المضلع (Rings)، والتي يمكن أن تكون الحلقات الداخلية فقط، أو الحلقة الخارجية فقط، أو جميع الحلقات. يعرض الخيار Draw line only inside polygon حدود المضلع داخل المضلع، وقد يكون مفيدًا لتمثيل حدود المضلعات المتجاورة بوضوح. الإعدادات الأخرى للخط البسيط للحد الخارجي هي نفسها إعدادات رموز الخط البسيط.

ملاحظة

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

SVG قابل للتخصيص بالمعاملات

لديك إمكانية تغيير ألوان SVG marker. عليك إضافة العناصر النائبة param(fill) للون التعبئة، و param(fill-opacity) لعتامة التعبئة، و param(outline) و param(outline-opacity) للون الحد وعتامته على التوالي، و param(outline-width) لعرض الحد. ويمكن اختياريًا أن تتبع هذه العناصرَ النائبة قيمةٌ افتراضية، مثلًا:

<svg width="100%" height="100%">
<rect fill="param(fill) #ff0000" fill-opacity="param(fill-opacity) 1" stroke="param(outline) #00ff00" stroke-opacity="param(outline-opacity) 1" stroke-width="param(outline-width) 10" width="100" height="100">
</rect>
</svg>

وبشكل أعم، يمكن تخصيص SVG بحرية بالمعاملات باستخدام param(param_name). ويمكن استخدام هذا المعامل إما كقيمة لسمة أو كنص لعقدة:

<g stroke-width=".265" text-anchor="middle" alignment-baseline="param(align)">
  <text x="98" y="147.5" font-size="6px">param(text1)</text>
  <text x="98" y="156.3" font-size="4.5px">param(text2)</text>
</g>

يمكن بعد ذلك تعريف المعاملات كتعبيرات في جدول Dynamic SVG parameters.

../../../_images/svg_parameters.png

شكل 10.22 جدول معاملات SVG الديناميكية

ملاحظة

يبحث QGIS عن عقدة SVG كاملة. لذا إذا كان معاملك داخل عقدة أكثر تعقيدًا، فعليك حقن العقدة كاملة بواسطة التعبير. فمثلًا، لن يعمل transform="rotate(param(angle)". بدلًا من ذلك، عليك كتابة transform="param(rotation)" وتعريف المعامل rotation بالتعبير 'rotate(' || coalesce(my_field, 0) || ')'.

مولّد الأشكال الهندسية

تتيح طبقة الرمز geometry generator، المتاحة مع جميع أنواع الرموز، استخدام صيغة التعبيرات لتوليد شكل هندسي فوريًا أثناء عملية الرسم. لا يلزم أن يطابق الشكل الهندسي الناتج Geometry type الأصلي، ويمكنك إضافة عدة طبقات رموز معدَّلة بطرق مختلفة فوق بعضها.

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

بعض الأمثلة:

  • رسم الرمز عند مركز المعلم

    centroid( $geometry )
    
  • التراكب البصري للمعالم الواقعة ضمن مسافة 100 وحدة خريطة من معلم نقطي، أي توليد نطاق عازل بعرض 100m حول النقطة

    buffer( $geometry, 100 )
    
  • إنشاء تأثير شعاعي من النقاط المحيطة بنقطة المعلم المركزية عند استخدامه كمولّد أشكال هندسية من نوع MultiPoint

    collect_geometries(
      array_foreach(
        generate_series( 0, 330, 30 ),
        project( $geometry, 3, radians( @element ) )
      )
    )
    
    ../../../_images/radial_symbols.png
  • إنشاء تأثير شعاعي من النقاط المحيطة بنقطة المعلم المركزية. يختلف عدد النقاط بناءً على حقل.

    with_variable(
      'symbol_numbers',
      ceil(fid/10),
      collect_geometries(
        array_foreach(
          generate_series( 0, 360, 360/@symbol_numbers ),
          project( $geometry, 2, radians( @element ) )
        )
      )
    )
    
    ../../../_images/radial_symbols_datadefined.png
  • إنشاء خط سهم منحنٍ يصل بين معالم طبقتين بناءً على العلاقة بينهما

    collect_geometries(
      with_variable(
        'destination_points',
        relation_aggregate( 'the_relation_id', 'array_agg', centroid( $geometry ) ),
        array_foreach(
          @destination_points,
          make_line(
            centroid( @geometry ),
            project(
              centroid( make_line( centroid( @geometry ), @element ) ),
              10,
              50
            ),
            @element
          )
        )
      )
    )
    
    ../../../_images/arrow_relations.png

علامة الحقل المتجهي

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

يُعرَّف الحقل المتجهي بسمات في البيانات، يمكن أن تمثل الحقل إما بواسطة:

  • المركّبات الديكارتية (المركّبتان x و y للحقل)

  • أو الإحداثيات القطبية: وفي هذه الحالة تُعرِّف السمات Length و Angle. ويمكن قياس الزاوية إما في اتجاه عقارب الساعة من الشمال، أو عكس اتجاه عقارب الساعة من الشرق، ويمكن أن تكون بالدرجات أو بالراديان.

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

يمكن تكبير مقدار الحقل أو تصغيره إلى حجم مناسب لعرض الحقل.

علامة متحركة

يتيح لك نوع رمز العلامة المتحركة استخدام ملف رسوم متحركة .GIF أو .WebP أو .MNG وغيرها لتمثيل النقاط على خريطتك. يمكنك تحديد:

  • مسار File،

  • Frame rate: عدد الخطوات المعروضة في الثانية، ويدل على سرعة تشغيل الرسوم المتحركة،

  • Size بأي وحدة مدعومة،

  • Opacity،

  • Rotation،

  • Offset في الاتجاهين x و y عن موضع العلامة،

  • Anchor point

هناك طريقتان للتعامل مع الرموز المتحركة:

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

    ../../../_images/animated_marker_map.gif

    شكل 10.23 العلامة المتحركة عندما لا تكون الخريطة مهيأة كرسوم متحركة

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

    ../../../_images/animated_marker_animation.gif

    شكل 10.24 العلامة المتحركة عندما تكون الخريطة مهيأة كرسوم متحركة