9.2. قائمة الدوال

فيما يلي الدوال والمعاملات والمتغيرات المتاحة في QGIS، مجمّعة حسب الفئات.

9.2.1. دوال التجميع (Aggregates)

تحتوي هذه المجموعة على دوال تجمّع القيم عبر الطبقات والحقول.

9.2.1.1. aggregate

تُرجع قيمة تجميعية محسوبة باستخدام معالم من طبقة أخرى.

الصيغة

aggregate(layer, aggregate, expression, [filter], [concatenator:=''], [order_by])

تشير [] إلى الوسائط الاختيارية

الوسائط

  • layer - سلسلة نصية تمثّل إما اسم طبقة أو معرّف طبقة

  • aggregate - سلسلة نصية تقابل التجميع المراد حسابه. الخيارات الصالحة هي:

    • count

    • count_distinct

    • count_missing

    • minimum أو min

    • maximum أو max

    • sum

    • mean

    • median

    • stdev

    • stdevsample

    • range

    • minority

    • majority

    • q1: الربيع الأول

    • q3: الربيع الثالث

    • iqr: المدى الربيعي

    • min_length: أقل طول للسلسلة النصية

    • max_length: أكبر طول للسلسلة النصية

    • concatenate: ضم السلاسل النصية باستخدام فاصل

    • concatenate_unique: ضم السلاسل النصية الفريدة باستخدام فاصل

    • collect: إنشاء شكل هندسي متعدد الأجزاء مجمّع

    • array_agg: إنشاء مصفوفة من القيم المجمّعة

  • expression - تعبير فرعي أو اسم حقل للتجميع

  • filter - تعبير تصفية اختياري لتقييد المعالم المستخدمة في حساب التجميع. الحقول والشكل الهندسي مأخوذة من معالم الطبقة المرتبطة. يمكن الوصول إلى المعلم المصدر بالمتغير @parent.

  • concatenator - سلسلة نصية اختيارية تُستخدم لضم القيم في تجميعي 'concatenate' و 'concatenate_unique'

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

أمثلة

  • aggregate(layer:='rail_stations',aggregate:='sum',expression:="passengers") → مجموع كل القيم من الحقل passengers في الطبقة rail_stations

  • aggregate('rail_stations','sum', "passengers"/7) → يحسب متوسطًا يوميًا لـ "passengers" بقسمة الحقل "passengers" على 7 قبل جمع القيم

  • aggregate(layer:='rail_stations',aggregate:='sum',expression:="passengers",filter:="class">3) → يجمع كل القيم من الحقل "passengers" للمعالم التي تكون فيها السمة "class" أكبر من 3 فقط

  • aggregate(layer:='rail_stations',aggregate:='concatenate', expression:="name", concatenator:=',') → قائمة مفصولة بفواصل لقيم الحقل name لكل المعالم في الطبقة rail_stations

  • aggregate(layer:='countries', aggregate:='max', expression:="code", filter:=intersects( @geometry, geometry(@parent) ) ) → رمز الدولة لدولة متقاطعة في الطبقة 'countries'

  • aggregate(layer:='rail_stations',aggregate:='sum',expression:="passengers",filter:=contains( @atlas_geometry, @geometry ) ) → مجموع كل القيم من الحقل passengers لمعالم rail_stations الواقعة ضمن معلم الأطلس الحالي

  • aggregate(layer:='rail_stations', aggregate:='collect', expression:=centroid(@geometry), filter:="region_name" = attribute(@parent,'name') ) → يجمّع الأشكال الهندسية لمراكز معالم rail_stations الواقعة في نفس منطقة المعلم الحالي

9.2.1.2. array_agg

تُرجع مصفوفة من القيم المجمّعة من حقل أو تعبير.

الصيغة

array_agg(expression, [group_by], [filter], [order_by])

تشير [] إلى الوسائط الاختيارية

الوسائط

  • expression - تعبير فرعي أو حقل للتجميع

  • group_by - تعبير اختياري يُستخدم لتجميع حسابات التجميع في مجموعات

  • filter - تعبير اختياري يُستخدم لتصفية المعالم المستخدمة في حساب التجميع

  • order_by - تعبير اختياري يُستخدم لترتيب المعالم المستخدمة في حساب التجميع. افتراضيًا، تُرجَع المعالم بترتيب غير محدد.

أمثلة

  • array_agg("name",group_by:="state") → قائمة بقيم name، مجمّعة حسب الحقل state

9.2.1.3. collect

تُرجع الشكل الهندسي متعدد الأجزاء للأشكال الهندسية المجمّعة من تعبير

الصيغة

collect(expression, [group_by], [filter])

تشير [] إلى الوسائط الاختيارية

الوسائط

  • expression - تعبير شكل هندسي للتجميع

  • group_by - تعبير اختياري يُستخدم لتجميع حسابات التجميع في مجموعات

  • filter - تعبير اختياري يُستخدم لتصفية المعالم المستخدمة في حساب التجميع

أمثلة

  • collect( @geometry ) → شكل هندسي متعدد الأجزاء من الأشكال الهندسية المجمّعة

  • collect( centroid(@geometry), group_by:="region", filter:= "use" = 'civilian' ) → المراكز المجمّعة للمعالم المدنية بناءً على قيمة region الخاصة بها

9.2.1.4. concatenate

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

الصيغة

concatenate(expression, [group_by], [filter], [concatenator:=''], [order_by])

تشير [] إلى الوسائط الاختيارية

الوسائط

  • expression - تعبير فرعي أو حقل للتجميع

  • group_by - تعبير اختياري يُستخدم لتجميع حسابات التجميع في مجموعات

  • filter - تعبير اختياري يُستخدم لتصفية المعالم المستخدمة في حساب التجميع

  • concatenator - سلسلة نصية اختيارية تُستخدم لضم القيم. فارغة افتراضيًا.

  • order_by - تعبير اختياري يُستخدم لترتيب المعالم المستخدمة في حساب التجميع. افتراضيًا، تُرجَع المعالم بترتيب غير محدد.

أمثلة

  • concatenate("town_name",group_by:="state",concatenator:=',') → قائمة مفصولة بفواصل لقيم town_name، مجمّعة حسب الحقل state

9.2.1.5. concatenate_unique

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

الصيغة

concatenate_unique(expression, [group_by], [filter], [concatenator:=''], [order_by])

تشير [] إلى الوسائط الاختيارية

الوسائط

  • expression - تعبير فرعي أو حقل للتجميع

  • group_by - تعبير اختياري يُستخدم لتجميع حسابات التجميع في مجموعات

  • filter - تعبير اختياري يُستخدم لتصفية المعالم المستخدمة في حساب التجميع

  • concatenator - سلسلة نصية اختيارية تُستخدم لضم القيم. فارغة افتراضيًا.

  • order_by - تعبير اختياري يُستخدم لترتيب المعالم المستخدمة في حساب التجميع. افتراضيًا، تُرجَع المعالم بترتيب غير محدد.

أمثلة

  • concatenate_unique("town_name",group_by:="state",concatenator:=',') → قائمة مفصولة بفواصل لقيم town_name الفريدة، مجمّعة حسب الحقل state

9.2.1.6. count

تُرجع عدد المعالم المطابقة.

الصيغة

count(expression, [group_by], [filter])

تشير [] إلى الوسائط الاختيارية

الوسائط

  • expression - تعبير فرعي أو حقل للتجميع

  • group_by - تعبير اختياري يُستخدم لتجميع حسابات التجميع في مجموعات

  • filter - تعبير اختياري يُستخدم لتصفية المعالم المستخدمة في حساب التجميع

أمثلة

  • count("stations",group_by:="state") → عدد المحطات، مجمّعًا حسب الحقل state

9.2.1.7. count_distinct

تُرجع عدد القيم المميزة.

الصيغة

count_distinct(expression, [group_by], [filter])

تشير [] إلى الوسائط الاختيارية

الوسائط

  • expression - تعبير فرعي أو حقل للتجميع

  • group_by - تعبير اختياري يُستخدم لتجميع حسابات التجميع في مجموعات

  • filter - تعبير اختياري يُستخدم لتصفية المعالم المستخدمة في حساب التجميع

أمثلة

  • count_distinct("stations",group_by:="state") → عدد قيم stations المميزة، مجمّعًا حسب الحقل state

9.2.1.8. count_missing

تُرجع عدد القيم المفقودة (NULL).

الصيغة

count_missing(expression, [group_by], [filter])

تشير [] إلى الوسائط الاختيارية

الوسائط

  • expression - تعبير فرعي أو حقل للتجميع

  • group_by - تعبير اختياري يُستخدم لتجميع حسابات التجميع في مجموعات

  • filter - تعبير اختياري يُستخدم لتصفية المعالم المستخدمة في حساب التجميع

أمثلة

  • count_missing("stations",group_by:="state") → عدد قيم station المفقودة (NULL)، مجمّعًا حسب الحقل state

9.2.1.9. iqr

تُرجع المدى الربيعي المحسوب من حقل أو تعبير.

الصيغة

iqr(expression, [group_by], [filter])

تشير [] إلى الوسائط الاختيارية

الوسائط

  • expression - تعبير فرعي أو حقل للتجميع

  • group_by - تعبير اختياري يُستخدم لتجميع حسابات التجميع في مجموعات

  • filter - تعبير اختياري يُستخدم لتصفية المعالم المستخدمة في حساب التجميع

أمثلة

  • iqr("population",group_by:="state") → المدى الربيعي لقيم population، مجمّعًا حسب الحقل state

9.2.1.10. majority

تُرجع الأغلبية التجميعية للقيم (القيمة الأكثر تكرارًا) من حقل أو تعبير.

الصيغة

majority(expression, [group_by], [filter])

تشير [] إلى الوسائط الاختيارية

الوسائط

  • expression - تعبير فرعي أو حقل للتجميع

  • group_by - تعبير اختياري يُستخدم لتجميع حسابات التجميع في مجموعات

  • filter - تعبير اختياري يُستخدم لتصفية المعالم المستخدمة في حساب التجميع

أمثلة

  • majority("class",group_by:="state") → قيمة class الأكثر تكرارًا، مجمّعة حسب الحقل state

9.2.1.11. max_length

تُرجع أكبر طول للسلاسل النصية من حقل أو تعبير.

الصيغة

max_length(expression, [group_by], [filter])

تشير [] إلى الوسائط الاختيارية

الوسائط

  • expression - تعبير فرعي أو حقل للتجميع

  • group_by - تعبير اختياري يُستخدم لتجميع حسابات التجميع في مجموعات

  • filter - تعبير اختياري يُستخدم لتصفية المعالم المستخدمة في حساب التجميع

أمثلة

  • max_length("town_name",group_by:="state") → أكبر طول لـ town_name، مجمّعًا حسب الحقل state

9.2.1.12. maximum

تُرجع القيمة العظمى التجميعية من حقل أو تعبير.

الصيغة

maximum(expression, [group_by], [filter])

تشير [] إلى الوسائط الاختيارية

الوسائط

  • expression - تعبير فرعي أو حقل للتجميع

  • group_by - تعبير اختياري يُستخدم لتجميع حسابات التجميع في مجموعات

  • filter - تعبير اختياري يُستخدم لتصفية المعالم المستخدمة في حساب التجميع

أمثلة

  • maximum("population",group_by:="state") → أكبر قيمة لـ population، مجمّعة حسب الحقل state

9.2.1.13. mean

تُرجع القيمة المتوسطة التجميعية من حقل أو تعبير.

الصيغة

mean(expression, [group_by], [filter])

تشير [] إلى الوسائط الاختيارية

الوسائط

  • expression - تعبير فرعي أو حقل للتجميع

  • group_by - تعبير اختياري يُستخدم لتجميع حسابات التجميع في مجموعات

  • filter - تعبير اختياري يُستخدم لتصفية المعالم المستخدمة في حساب التجميع

أمثلة

  • mean("population",group_by:="state") → متوسط قيمة population، مجمّعًا حسب الحقل state

9.2.1.14. median

تُرجع القيمة الوسيطة التجميعية من حقل أو تعبير.

الصيغة

median(expression, [group_by], [filter])

تشير [] إلى الوسائط الاختيارية

الوسائط

  • expression - تعبير فرعي أو حقل للتجميع

  • group_by - تعبير اختياري يُستخدم لتجميع حسابات التجميع في مجموعات

  • filter - تعبير اختياري يُستخدم لتصفية المعالم المستخدمة في حساب التجميع

أمثلة

  • median("population",group_by:="state") → القيمة الوسيطة لـ population، مجمّعة حسب الحقل state

9.2.1.15. min_length

تُرجع أقل طول للسلاسل النصية من حقل أو تعبير.

الصيغة

min_length(expression, [group_by], [filter])

تشير [] إلى الوسائط الاختيارية

الوسائط

  • expression - تعبير فرعي أو حقل للتجميع

  • group_by - تعبير اختياري يُستخدم لتجميع حسابات التجميع في مجموعات

  • filter - تعبير اختياري يُستخدم لتصفية المعالم المستخدمة في حساب التجميع

أمثلة

  • min_length("town_name",group_by:="state") → أقل طول لـ town_name، مجمّعًا حسب الحقل state

9.2.1.16. minimum

تُرجع القيمة الصغرى التجميعية من حقل أو تعبير.

الصيغة

minimum(expression, [group_by], [filter])

تشير [] إلى الوسائط الاختيارية

الوسائط

  • expression - تعبير فرعي أو حقل للتجميع

  • group_by - تعبير اختياري يُستخدم لتجميع حسابات التجميع في مجموعات

  • filter - تعبير اختياري يُستخدم لتصفية المعالم المستخدمة في حساب التجميع

أمثلة

  • minimum("population",group_by:="state") → أصغر قيمة لـ population، مجمّعة حسب الحقل state

9.2.1.17. minority

تُرجع الأقلية التجميعية للقيم (القيمة الأقل تكرارًا) من حقل أو تعبير.

الصيغة

minority(expression, [group_by], [filter])

تشير [] إلى الوسائط الاختيارية

الوسائط

  • expression - تعبير فرعي أو حقل للتجميع

  • group_by - تعبير اختياري يُستخدم لتجميع حسابات التجميع في مجموعات

  • filter - تعبير اختياري يُستخدم لتصفية المعالم المستخدمة في حساب التجميع

أمثلة

  • minority("class",group_by:="state") → قيمة class الأقل تكرارًا، مجمّعة حسب الحقل state

9.2.1.18. q1

تُرجع الربيع الأول المحسوب من حقل أو تعبير.

الصيغة

q1(expression, [group_by], [filter])

تشير [] إلى الوسائط الاختيارية

الوسائط

  • expression - تعبير فرعي أو حقل للتجميع

  • group_by - تعبير اختياري يُستخدم لتجميع حسابات التجميع في مجموعات

  • filter - تعبير اختياري يُستخدم لتصفية المعالم المستخدمة في حساب التجميع

أمثلة

  • q1("population",group_by:="state") → الربيع الأول لقيم population، مجمّعًا حسب الحقل state

9.2.1.19. q3

تُرجع الربيع الثالث المحسوب من حقل أو تعبير.

الصيغة

q3(expression, [group_by], [filter])

تشير [] إلى الوسائط الاختيارية

الوسائط

  • expression - تعبير فرعي أو حقل للتجميع

  • group_by - تعبير اختياري يُستخدم لتجميع حسابات التجميع في مجموعات

  • filter - تعبير اختياري يُستخدم لتصفية المعالم المستخدمة في حساب التجميع

أمثلة

  • q3("population",group_by:="state") → الربيع الثالث لقيم population، مجمّعًا حسب الحقل state

9.2.1.20. range

تُرجع المدى التجميعي للقيم (العظمى - الصغرى) من حقل أو تعبير.

الصيغة

range(expression, [group_by], [filter])

تشير [] إلى الوسائط الاختيارية

الوسائط

  • expression - تعبير فرعي أو حقل للتجميع

  • group_by - تعبير اختياري يُستخدم لتجميع حسابات التجميع في مجموعات

  • filter - تعبير اختياري يُستخدم لتصفية المعالم المستخدمة في حساب التجميع

أمثلة

  • range("population",group_by:="state") → مدى قيم population، مجمّعًا حسب الحقل state

9.2.1.21. relation_aggregate

تُرجع قيمة تجميعية محسوبة باستخدام كل المعالم الفرعية المطابقة من علاقة طبقة.

الصيغة

relation_aggregate(relation, aggregate, expression, [concatenator:=''], [order_by])

تشير [] إلى الوسائط الاختيارية

الوسائط

  • relation - سلسلة نصية تمثّل معرّف علاقة

  • aggregate - سلسلة نصية تقابل التجميع المراد حسابه. الخيارات الصالحة هي:

    • count

    • count_distinct

    • count_missing

    • minimum أو min

    • maximum أو max

    • sum

    • mean

    • median

    • stdev

    • stdevsample

    • range

    • minority

    • majority

    • q1: الربيع الأول

    • q3: الربيع الثالث

    • iqr: المدى الربيعي

    • min_length: أقل طول للسلسلة النصية

    • max_length: أكبر طول للسلسلة النصية

    • concatenate: ضم السلاسل النصية باستخدام فاصل

    • concatenate_unique: ضم السلاسل النصية الفريدة باستخدام فاصل

    • collect: إنشاء شكل هندسي متعدد الأجزاء مجمّع

    • array_agg: إنشاء مصفوفة من القيم المجمّعة

  • expression - تعبير فرعي أو اسم حقل للتجميع

  • concatenator - سلسلة نصية اختيارية تُستخدم لضم القيم في تجميع 'concatenate'

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

أمثلة

  • relation_aggregate(relation:='my_relation',aggregate:='mean',expression:="passengers") → القيمة المتوسطة لكل المعالم الفرعية المطابقة باستخدام العلاقة 'my_relation'

  • relation_aggregate('my_relation','sum', "passengers"/7) → مجموع الحقل passengers مقسومًا على 7 لكل المعالم الفرعية المطابقة باستخدام العلاقة 'my_relation'

  • relation_aggregate('my_relation','concatenate', "towns", concatenator:=',') → قائمة مفصولة بفواصل لقيم الحقل towns لكل المعالم الفرعية المطابقة باستخدام العلاقة 'my_relation'

  • relation_aggregate('my_relation','array_agg', "id") → مصفوفة من قيم الحقل id من كل المعالم الفرعية المطابقة باستخدام العلاقة 'my_relation'

للمزيد: إعداد العلاقات بين طبقات متعددة

9.2.1.22. stdev

تُرجع قيمة الانحراف المعياري التجميعية من حقل أو تعبير.

الصيغة

stdev(expression, [group_by], [filter])

تشير [] إلى الوسائط الاختيارية

الوسائط

  • expression - تعبير فرعي أو حقل للتجميع

  • group_by - تعبير اختياري يُستخدم لتجميع حسابات التجميع في مجموعات

  • filter - تعبير اختياري يُستخدم لتصفية المعالم المستخدمة في حساب التجميع

أمثلة

  • stdev("population",group_by:="state") → الانحراف المعياري لقيم population، مجمّعًا حسب الحقل state

9.2.1.23. sum

تُرجع قيمة المجموع التجميعية من حقل أو تعبير.

الصيغة

sum(expression, [group_by], [filter])

تشير [] إلى الوسائط الاختيارية

الوسائط

  • expression - تعبير فرعي أو حقل للتجميع

  • group_by - تعبير اختياري يُستخدم لتجميع حسابات التجميع في مجموعات

  • filter - تعبير اختياري يُستخدم لتصفية المعالم المستخدمة في حساب التجميع

أمثلة

  • sum("population",group_by:="state") → مجموع قيم population، مجمّعًا حسب الحقل state

9.2.2. دوال المصفوفات (Arrays)

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

9.2.2.1. array

تُرجع مصفوفة تحتوي على كل القيم الممرّرة كوسائط.

الصيغة

array(value1, value2, ...)

الوسائط

  • value - قيمة

أمثلة

  • array(2,10) → [ 2, 10 ]

  • array(2,10)[0] → 2

9.2.2.2. array_all

تُرجع TRUE إذا كانت المصفوفة تحتوي على كل قيم مصفوفة معطاة.

الصيغة

array_all(array_a, array_b)

الوسائط

  • array_a - مصفوفة

  • array_b - مصفوفة القيم المراد البحث عنها

أمثلة

  • array_all(array(1,2,3),array(2,3)) → TRUE

  • array_all(array(1,2,3),array(1,2,4)) → FALSE

9.2.2.3. array_append

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

الصيغة

array_append(array, value)

الوسائط

  • array - مصفوفة

  • value - القيمة المراد إضافتها

أمثلة

  • array_append(array(1,2,3),4) → [ 1, 2, 3, 4 ]

9.2.2.4. array_cat

تُرجع مصفوفة تحتوي على كل المصفوفات المعطاة موصولة ببعضها.

الصيغة

array_cat(array1, array2, ...)

الوسائط

  • array - مصفوفة

أمثلة

  • array_cat(array(1,2),array(2,3)) → [ 1, 2, 2, 3 ]

9.2.2.5. array_contains

تُرجع TRUE إذا كانت المصفوفة تحتوي على القيمة المعطاة.

الصيغة

array_contains(array, value)

الوسائط

  • array - مصفوفة

  • value - القيمة المراد البحث عنها

أمثلة

  • array_contains(array(1,2,3),2) → TRUE

9.2.2.6. array_count

تحسب عدد مرات ورود قيمة معطاة في مصفوفة.

الصيغة

array_count(array, value)

الوسائط

  • array - مصفوفة

  • value - القيمة المراد عدّها

أمثلة

  • array_count(array('a', 'b', 'c', 'b'), 'b') → 2

9.2.2.7. array_distinct

تُرجع مصفوفة تحتوي على القيم المميزة من المصفوفة المعطاة.

الصيغة

array_distinct(array)

الوسائط

  • array - مصفوفة

أمثلة

  • array_distinct(array(1,2,3,2,1)) → [ 1, 2, 3 ]

9.2.2.8. array_filter

تُرجع مصفوفة تضم فقط العناصر التي يُقيَّم التعبير لها بـ true.

الصيغة

array_filter(array, expression, [limit:=0])

تشير [] إلى الوسائط الاختيارية

الوسائط

  • array - مصفوفة

  • expression - تعبير يُقيَّم على كل عنصر. سيُستبدل المتغير @element بالقيمة الحالية.

  • limit - أقصى عدد من العناصر المُرجَعة. استخدم 0 لإرجاع كل القيم.

أمثلة

  • array_filter(array(1,2,3),@element < 3) → [ 1, 2 ]

  • array_filter(array(1,2,3),@element < 3, 1) → [ 1 ]

9.2.2.9. array_find

تُرجع أصغر فهرس (0 للعنصر الأول) لقيمة داخل مصفوفة. تُرجع -1 إذا لم تُعثر على القيمة.

الصيغة

array_find(array, value)

الوسائط

  • array - مصفوفة

  • value - القيمة المراد البحث عنها

أمثلة

  • array_find(array('a', 'b', 'c'), 'b') → 1

  • array_find(array('a', 'b', 'c', 'b'), 'b') → 1

9.2.2.10. array_first

تُرجع القيمة الأولى في مصفوفة.

الصيغة

array_first(array)

الوسائط

  • array - مصفوفة

أمثلة

  • array_first(array('a','b','c')) → 'a'

9.2.2.11. array_foreach

تُرجع مصفوفة بعد تقييم التعبير المعطى على كل عنصر.

الصيغة

array_foreach(array, expression)

الوسائط

  • array - مصفوفة

  • expression - تعبير يُقيَّم على كل عنصر. سيُستبدل المتغير @element بالقيمة الحالية والمتغير @counter بالفهرس الحالي (بدءًا من 0).

أمثلة

  • array_foreach(array('a','b','c'),upper(@element)) → [ 'A', 'B', 'C' ]

  • array_foreach(array(1,2,3),@element + 10) → [ 11, 12, 13 ]

  • array_foreach(array(1,2,3),@element + @counter) → [ 1, 3, 5 ]

9.2.2.12. array_get

تُرجع القيمة رقم N (0 للأولى) أو القيمة رقم -N من النهاية (-1 للأخيرة) في مصفوفة.

الصيغة

array_get(array, pos)

الوسائط

  • array - مصفوفة

  • pos - الفهرس المراد جلبه (يبدأ من 0)

أمثلة

  • array_get(array('a','b','c'),1) → 'b'

  • array_get(array('a','b','c'),-1) → 'c'

تلميح

يمكنك أيضًا استخدام معامل الفهرسة ([]) لجلب قيمة من مصفوفة.

9.2.2.13. array_insert

تُرجع مصفوفة مع إضافة القيمة المعطاة في الموضع المعطى.

الصيغة

array_insert(array, pos, value)

الوسائط

  • array - مصفوفة

  • pos - موضع الإضافة (يبدأ من 0)

  • value - القيمة المراد إضافتها

أمثلة

  • array_insert(array(1,2,3),1,100) → [ 1, 100, 2, 3 ]

9.2.2.14. array_intersect

تُرجع TRUE إذا كان عنصر واحد على الأقل من array1 موجودًا في array2.

الصيغة

array_intersect(array1, array2)

الوسائط

  • array1 - مصفوفة

  • array2 - مصفوفة أخرى

أمثلة

  • array_intersect(array(1,2,3,4),array(4,0,2,5)) → TRUE

9.2.2.15. array_last

تُرجع القيمة الأخيرة في مصفوفة.

الصيغة

array_last(array)

الوسائط

  • array - مصفوفة

أمثلة

  • array_last(array('a','b','c')) → 'c'

9.2.2.16. array_length

تُرجع عدد عناصر مصفوفة.

الصيغة

array_length(array)

الوسائط

  • array - مصفوفة

أمثلة

  • array_length(array(1,2,3)) → 3

9.2.2.17. array_majority

تُرجع القيم الأكثر شيوعًا في مصفوفة.

الصيغة

array_majority(array, [option:='all'])

تشير [] إلى الوسائط الاختيارية

الوسائط

  • array - مصفوفة

  • option - سلسلة نصية تحدد طريقة معالجة القيم المُرجَعة. الخيارات الصالحة هي:

    • all: الافتراضي، تُرجَع كل القيم الأكثر شيوعًا في مصفوفة.

    • any: تُرجع إحدى القيم الأكثر شيوعًا.

    • median: تُرجع الوسيط للقيم الأكثر شيوعًا. تُتجاهل القيم غير الحسابية.

    • real_majority: تُرجع القيمة التي يتجاوز تكرارها نصف حجم المصفوفة.

أمثلة

  • array_majority(array(0,1,42,42,43), 'all') → [ 42 ]

  • array_majority(array(0,1,42,42,43,1), 'all') → [ 42, 1 ]

  • array_majority(array(0,1,42,42,43,1), 'any') → 1 أو 42

  • array_majority(array(0,1,1,2,2), 'median') → 1.5

  • array_majority(array(0,1,42,42,43), 'real_majority') → NULL

  • array_majority(array(0,1,42,42,43,42), 'real_majority') → NULL

  • array_majority(array(0,1,42,42,43,42,42), 'real_majority') → 42

9.2.2.18. array_max

تُرجع القيمة العظمى في مصفوفة.

الصيغة

array_max(array)

الوسائط

  • array - مصفوفة

أمثلة

  • array_max(array(0,42,4,2)) → 42

9.2.2.19. array_mean

تُرجع المتوسط الحسابي للقيم العددية في مصفوفة. تُتجاهل القيم غير العددية في المصفوفة.

الصيغة

array_mean(array)

الوسائط

  • array - مصفوفة

أمثلة

  • array_mean(array(0,1,7,66.6,135.4)) → 42

  • array_mean(array(0,84,'a','b','c')) → 42

9.2.2.20. array_median

تُرجع الوسيط للقيم العددية في مصفوفة. تُتجاهل القيم غير الحسابية في المصفوفة.

الصيغة

array_median(array)

الوسائط

  • array - مصفوفة

أمثلة

  • array_median(array(0,1,42,42,43)) → 42

  • array_median(array(0,1,2,42,'a','b')) → 1.5

9.2.2.21. array_min

تُرجع القيمة الصغرى في مصفوفة.

الصيغة

array_min(array)

الوسائط

  • array - مصفوفة

أمثلة

  • array_min(array(43,42,54)) → 42

9.2.2.22. array_minority

تُرجع القيم الأقل شيوعًا في مصفوفة.

الصيغة

array_minority(array, [option:='all'])

تشير [] إلى الوسائط الاختيارية

الوسائط

  • array - مصفوفة

  • option - سلسلة نصية تحدد طريقة معالجة القيم المُرجَعة. الخيارات الصالحة هي:

    • all: الافتراضي، تُرجَع كل القيم الأقل شيوعًا في مصفوفة.

    • any: تُرجع إحدى القيم الأقل شيوعًا.

    • median: تُرجع الوسيط للقيم الأقل شيوعًا. تُتجاهل القيم غير الحسابية.

    • real_minority: تُرجع القيم التي يقل تكرارها عن نصف حجم المصفوفة.

أمثلة

  • array_minority(array(0,42,42), 'all') → [ 0 ]

  • array_minority(array(0,1,42,42), 'all') → [ 0, 1 ]

  • array_minority(array(0,1,42,42,43,1), 'any') → 0 أو 43

  • array_minority(array(1,2,3,3), 'median') → 1.5

  • array_minority(array(0,1,42,42,43), 'real_minority') → [ 42, 43, 0, 1 ]

  • array_minority(array(0,1,42,42,43,42), 'real_minority') → [ 42, 43, 0, 1 ]

  • array_minority(array(0,1,42,42,43,42,42), 'real_minority') → [ 43, 0, 1 ]

9.2.2.23. array_prepend

تُرجع مصفوفة مع إضافة القيمة المعطاة في بدايتها.

الصيغة

array_prepend(array, value)

الوسائط

  • array - مصفوفة

  • value - القيمة المراد إضافتها

أمثلة

  • array_prepend(array(1,2,3),0) → [ 0, 1, 2, 3 ]

9.2.2.24. array_prioritize

تُرجع مصفوفة مرتّبة باستخدام الترتيب المحدد في مصفوفة أخرى. القيم الموجودة في المصفوفة الأولى والمفقودة من الثانية تُضاف إلى نهاية النتيجة.

الصيغة

array_prioritize(array, array_prioritize)

الوسائط

  • array - مصفوفة

  • array_prioritize - مصفوفة بقيم مرتّبة حسب الأولوية

أمثلة

  • array_prioritize(array(1, 8, 2, 5), array(5, 4, 2, 1, 3, 8)) → [ 5, 2, 1, 8 ]

  • array_prioritize(array(5, 4, 2, 1, 3, 8), array(1, 8, 6, 5)) → [ 1, 8, 5, 4, 2, 3 ]

9.2.2.25. array_remove_all

تُرجع مصفوفة بعد حذف كل مدخلات القيمة المعطاة.

الصيغة

array_remove_all(array, value)

الوسائط

  • array - مصفوفة

  • value - القيم المراد حذفها

أمثلة

  • array_remove_all(array('a','b','c','b'),'b') → [ 'a', 'c' ]

9.2.2.26. array_remove_at

تُرجع مصفوفة بعد حذف العنصر الموجود في الفهرس المعطى. تدعم الفهرس الموجب (0 للعنصر الأول) والسالب (القيمة رقم -N من النهاية، -1 للعنصر الأخير).

الصيغة

array_remove_at(array, pos)

الوسائط

  • array - مصفوفة

  • pos - الموضع المراد حذفه (يبدأ من 0)

أمثلة

  • array_remove_at(array(1, 2, 3), 1) → [1, 3 ]

  • array_remove_at(array(1, 2, 3), -1) → [1, 2 ]

9.2.2.27. array_replace

تُرجع مصفوفة بعد استبدال القيمة أو المصفوفة أو خريطة القيم المعطاة.

صيغة القيمة والمصفوفة

تُرجع مصفوفة بعد استبدال القيمة أو مصفوفة القيم المعطاة بقيمة أخرى أو بمصفوفة قيم.

الصيغة

array_replace(array, before, after)

الوسائط

  • array - مصفوفة الإدخال

  • before - القيمة أو مصفوفة القيم المراد استبدالها

  • after - القيمة أو مصفوفة القيم المستخدمة بديلًا

أمثلة

  • array_replace(array('QGIS','SHOULD','ROCK'),'SHOULD','DOES') → [ 'QGIS', 'DOES', 'ROCK' ]

  • array_replace(array(3,2,1),array(1,2,3),array(7,8,9)) → [ 9, 8, 7 ]

  • array_replace(array('Q','G','I','S'),array('Q','S'),'-') → [ '-', 'G', 'I', '-' ]

صيغة الخريطة (Map)

تُرجع مصفوفة بعد استبدال مفاتيح الخريطة المعطاة بالقيم المقترنة بها.

الصيغة

array_replace(array, map)

الوسائط

  • array - مصفوفة الإدخال

  • map - الخريطة التي تحتوي على المفاتيح والقيم

أمثلة

  • array_replace(array('APP', 'SHOULD', 'ROCK'),map('APP','QGIS','SHOULD','DOES')) → [ 'QGIS', 'DOES', 'ROCK' ]

للمزيد: replace، regexp_replace

9.2.2.28. array_reverse

تُرجع المصفوفة المعطاة بقيم مرتّبة ترتيبًا معكوسًا.

الصيغة

array_reverse(array)

الوسائط

  • array - مصفوفة

أمثلة

  • array_reverse(array(2,4,0,10)) → [ 10, 0, 4, 2 ]

9.2.2.29. array_slice

تُرجع جزءًا من المصفوفة. يُحدَّد الجزء بالوسيطين start_pos و end_pos.

الصيغة

array_slice(array, start_pos, end_pos)

الوسائط

  • array - مصفوفة

  • start_pos - فهرس موضع بداية الجزء (يبدأ من 0). يُضمَّن فهرس start_pos في الجزء. إذا استخدمت start_pos سالبًا، يُحسب الفهرس من نهاية القائمة (يبدأ من -1).

  • end_pos - فهرس موضع نهاية الجزء (يبدأ من 0). يُضمَّن فهرس end_pos في الجزء. إذا استخدمت end_pos سالبًا، يُحسب الفهرس من نهاية القائمة (يبدأ من -1).

أمثلة

  • array_slice(array(1,2,3,4,5),0,3) → [ 1, 2, 3, 4 ]

  • array_slice(array(1,2,3,4,5),0,-1) → [ 1, 2, 3, 4, 5 ]

  • array_slice(array(1,2,3,4,5),-5,-1) → [ 1, 2, 3, 4, 5 ]

  • array_slice(array(1,2,3,4,5),0,0) → [ 1 ]

  • array_slice(array(1,2,3,4,5),-2,-1) → [ 4, 5 ]

  • array_slice(array(1,2,3,4,5),-1,-1) → [ 5 ]

  • array_slice(array('Dufour','Valmiera','Chugiak','Brighton'),1,2) → [ 'Valmiera', 'Chugiak' ]

  • array_slice(array('Dufour','Valmiera','Chugiak','Brighton'),-2,-1) → [ 'Chugiak', 'Brighton' ]

9.2.2.30. array_sort

تُرجع المصفوفة المعطاة بعد ترتيب عناصرها.

الصيغة

array_sort(array, [ascending:=true])

تشير [] إلى الوسائط الاختيارية

الوسائط

  • array - مصفوفة

  • ascending - اضبط هذا الوسيط على false لترتيب المصفوفة تنازليًا

أمثلة

  • array_sort(array(3,2,1)) → [ 1, 2, 3 ]

9.2.2.31. array_sum

تُرجع مجموع القيم العددية في مصفوفة. تُتجاهل القيم غير العددية في المصفوفة.

الصيغة

array_sum(array)

الوسائط

  • array - مصفوفة

أمثلة

  • array_sum(array(0,1,39.4,1.6,'a')) → 42.0

9.2.2.32. array_to_string

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

الصيغة

array_to_string(array, [delimiter:=','], [emptyvalue:=''])

تشير [] إلى الوسائط الاختيارية

الوسائط

  • array - مصفوفة الإدخال

  • delimiter - السلسلة النصية الفاصلة المستخدمة للفصل بين عناصر المصفوفة المضمومة

  • emptyvalue - السلسلة النصية الاختيارية المستخدمة بديلًا عن التطابقات الفارغة (ذات الطول الصفري)

أمثلة

  • array_to_string(array('1','2','3')) → '1,2,3'

  • array_to_string(array(1,2,3),'-') → '1-2-3'

  • array_to_string(array('1','','3'),',','0') → '1,0,3'

للمزيد: string_to_array

9.2.2.33. generate_series

تنشئ مصفوفة تحتوي على متتالية من الأرقام.

الصيغة

generate_series(start, stop, [step:=1])

تشير [] إلى الوسائط الاختيارية

الوسائط

  • start - القيمة الأولى في المتتالية

  • stop - القيمة التي تنتهي عندها المتتالية عند بلوغها

  • step - القيمة المستخدمة كمقدار زيادة بين القيم

أمثلة

  • generate_series(1,5) → [ 1, 2, 3, 4, 5 ]

  • generate_series(5,1,-1) → [ 5, 4, 3, 2, 1 ]

9.2.2.34. geometries_to_array

تقسّم شكلًا هندسيًا إلى أشكال هندسية أبسط في مصفوفة.

الصيغة

geometries_to_array(geometry)

الوسائط

  • geometry - الشكل الهندسي المُدخَل

أمثلة

  • geometries_to_array(geom_from_wkt('MultiPoint (1 2, 5 21)')) → مصفوفة تحتوي على 'Point (1 2)' و 'Point (5 21)'

  • geometries_to_array(geom_from_wkt('GeometryCollection (Polygon ((5 8, 4 1, 3 2, 5 8)),LineString (3 2, 4 2))')) → مصفوفة من شكلين هندسيين: مضلع وخط

  • geom_to_wkt(geometries_to_array(geom_from_wkt('GeometryCollection (Polygon ((5 8, 4 1, 3 2, 5 8)),LineString (3 2, 4 2))'))[0]) → 'Polygon ((5 8, 4 1, 3 2, 5 8))'

  • geometries_to_array(geom_from_wkt('MULTIPOLYGON(((5 5,0 0,0 10,5 5)),((5 5,10 10,10 0,5 5))')) → مصفوفة من شكلين هندسيين مضلعين

9.2.2.35. regexp_matches

تُرجع مصفوفة بكل السلاسل النصية الملتقطة بمجموعات الالتقاط، بترتيب ظهور المجموعات نفسها في التعبير النمطي المعطى عند مطابقته مع سلسلة نصية.

الصيغة

regexp_matches(string, regex, [emptyvalue:=''])

تشير [] إلى الوسائط الاختيارية

الوسائط

  • string - السلسلة النصية المراد التقاط المجموعات منها باستخدام التعبير النمطي

  • regex - التعبير النمطي المستخدم لالتقاط المجموعات

  • emptyvalue - السلسلة النصية الاختيارية المستخدمة بديلًا عن التطابقات الفارغة (ذات الطول الصفري)

أمثلة

  • regexp_matches('QGIS=>rocks','(.*)=>(.*)') → [ 'QGIS', 'rocks' ]

  • regexp_matches('key=>','(.*)=>(.*)','empty value') → [ 'key', 'empty value' ]

للمزيد: substr، regexp_substr

9.2.2.36. string_to_array

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

الصيغة

string_to_array(string, [delimiter:=','], [emptyvalue:=''])

تشير [] إلى الوسائط الاختيارية

الوسائط

  • string - السلسلة النصية المُدخَلة

  • delimiter - السلسلة النصية الفاصلة المستخدمة لتقسيم السلسلة المُدخَلة

  • emptyvalue - السلسلة النصية الاختيارية المستخدمة بديلًا عن التطابقات الفارغة (ذات الطول الصفري)

أمثلة

  • string_to_array('1,2,3',',') → [ '1', '2', '3' ]

  • string_to_array('1,,3',',','0') → [ '1', '0', '3' ]

للمزيد: array_to_string

9.2.3. دوال الألوان (Color)

تحتوي هذه المجموعة على دوال لمعالجة الألوان.

9.2.3.1. color_cmyk

تُرجع تمثيلًا نصيًا للون بناءً على مكوّناته السماوي والأرجواني والأصفر والأسود

الصيغة

color_cmyk(cyan, magenta, yellow, black)

الوسائط

  • cyan - مكوّن اللون السماوي، كقيمة نسبة مئوية صحيحة من 0 إلى 100

  • magenta - مكوّن اللون الأرجواني، كقيمة نسبة مئوية صحيحة من 0 إلى 100

  • yellow - مكوّن اللون الأصفر، كقيمة نسبة مئوية صحيحة من 0 إلى 100

  • black - مكوّن اللون الأسود، كقيمة نسبة مئوية صحيحة من 0 إلى 100

أمثلة

  • color_cmyk(100,50,0,10) → '0,115,230'

9.2.3.2. color_cmyka

تُرجع تمثيلًا نصيًا للون بناءً على مكوّناته السماوي والأرجواني والأصفر والأسود وألفا (الشفافية)

الصيغة

color_cmyka(cyan, magenta, yellow, black, alpha)

الوسائط

  • cyan - مكوّن اللون السماوي، كقيمة نسبة مئوية صحيحة من 0 إلى 100

  • magenta - مكوّن اللون الأرجواني، كقيمة نسبة مئوية صحيحة من 0 إلى 100

  • yellow - مكوّن اللون الأصفر، كقيمة نسبة مئوية صحيحة من 0 إلى 100

  • black - مكوّن اللون الأسود، كقيمة نسبة مئوية صحيحة من 0 إلى 100

  • alpha - مكوّن ألفا كقيمة صحيحة من 0 (شفاف تمامًا) إلى 255 (معتم).

أمثلة

  • color_cmyka(100,50,0,10,200) → '0,115,230,200'

9.2.3.3. color_cmykf

تُرجع كائن لون بناءً على مكوّناته السماوي والأرجواني والأصفر والأسود وألفا.

الصيغة

color_cmykf(cyan, magenta, yellow, black, [alpha:=1.0])

تشير [] إلى الوسائط الاختيارية

الوسائط

  • cyan - المكوّن السماوي كقيمة عشرية من 0.0 إلى 1.0

  • magenta - المكوّن الأرجواني كقيمة عشرية من 0.0 إلى 1.0

  • yellow - المكوّن الأصفر كقيمة عشرية من 0.0 إلى 1.0

  • black - المكوّن الأسود كقيمة عشرية من 0.0 إلى 1.0

  • alpha - مكوّن ألفا كقيمة عشرية من 0.0 إلى 1.0

أمثلة

  • color_cmykf(1,0.9,0.81,0.62) → CMYKA: 1.00,0.90,0.81,0.62,1.00

9.2.3.4. color_grayscale_average

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

الصيغة

color_grayscale_average(color)

الوسائط

  • color - تمثيل نصي للون أو كائن لون

أمثلة

  • color_grayscale_average('255,100,50') → '135,135,135,255'

  • color_grayscale_average(color_cmykf(0.6,0.5,0.1,0.8)) → CMYKA: 0.40,0.40,0.40,0.80,1.00

9.2.3.5. color_hsl

تُرجع تمثيلًا نصيًا للون بناءً على سمات تدرّج اللون (hue) والتشبّع والإضاءة.

الصيغة

color_hsl(hue, saturation, lightness)

الوسائط

  • hue - تدرّج اللون، كقيمة صحيحة من 0 إلى 360

  • saturation - نسبة تشبّع اللون كقيمة صحيحة من 0 إلى 100

  • lightness - نسبة إضاءة اللون كقيمة صحيحة من 0 إلى 100

أمثلة

  • color_hsl(100,50,70) → '166,217,140'

9.2.3.6. color_hsla

تُرجع تمثيلًا نصيًا للون بناءً على سمات تدرّج اللون والتشبّع والإضاءة وألفا (الشفافية)

الصيغة

color_hsla(hue, saturation, lightness, alpha)

الوسائط

  • hue - تدرّج اللون، كقيمة صحيحة من 0 إلى 360

  • saturation - نسبة تشبّع اللون كقيمة صحيحة من 0 إلى 100

  • lightness - نسبة إضاءة اللون كقيمة صحيحة من 0 إلى 100

  • alpha - مكوّن ألفا كقيمة صحيحة من 0 (شفاف تمامًا) إلى 255 (معتم).

أمثلة

  • color_hsla(100,50,70,200) → '166,217,140,200'

9.2.3.7. color_hslf

تُرجع كائن لون بناءً على سمات تدرّج اللون والتشبّع والإضاءة.

الصيغة

color_hslf(hue, saturation, lightness, [alpha:=1.0])

تشير [] إلى الوسائط الاختيارية

الوسائط

  • hue - تدرّج اللون، كقيمة عشرية من 0.0 إلى 1.0

  • saturation - تشبّع اللون كقيمة عشرية من 0.0 إلى 1.0

  • lightness - إضاءة اللون كقيمة عشرية من 0.0 إلى 1.0

  • alpha - مكوّن ألفا كقيمة عشرية من 0.0 إلى 1.0

أمثلة

  • color_hslf(0.3,0.52,0.7) → HSLA: 0.30,0.52,0.70,1.00

9.2.3.8. color_hsv

تُرجع تمثيلًا نصيًا للون بناءً على سمات تدرّج اللون والتشبّع والقيمة.

الصيغة

color_hsv(hue, saturation, value)

الوسائط

  • hue - تدرّج اللون، كقيمة صحيحة من 0 إلى 360

  • saturation - نسبة تشبّع اللون كقيمة صحيحة من 0 إلى 100

  • value - نسبة قيمة اللون كعدد صحيح من 0 إلى 100

أمثلة

  • color_hsv(40,100,100) → '255,170,0'

9.2.3.9. color_hsva

تُرجع تمثيلًا نصيًا للون بناءً على سمات تدرّج اللون والتشبّع والقيمة وألفا (الشفافية).

الصيغة

color_hsva(hue, saturation, value, alpha)

الوسائط

  • hue - تدرّج اللون، كقيمة صحيحة من 0 إلى 360

  • saturation - نسبة تشبّع اللون كقيمة صحيحة من 0 إلى 100

  • value - نسبة قيمة اللون كعدد صحيح من 0 إلى 100

  • alpha - مكوّن ألفا كقيمة صحيحة من 0 (شفاف تمامًا) إلى 255 (معتم)

أمثلة

  • color_hsva(40,100,100,200) → '255,170,0,200'

9.2.3.10. color_hsvf

تُرجع كائن لون بناءً على سمات تدرّج اللون والتشبّع والقيمة.

الصيغة

color_hsvf(hue, saturation, value, [alpha:=1.0])

تشير [] إلى الوسائط الاختيارية

الوسائط

  • hue - تدرّج اللون، كقيمة عشرية من 0.0 إلى 1.0

  • saturation - تشبّع اللون كقيمة عشرية من 0.0 إلى 1.0

  • value - قيمة اللون كقيمة عشرية من 0.0 إلى 1.0

  • alpha - مكوّن ألفا كقيمة عشرية من 0.0 إلى 1.0

أمثلة

  • color_hsvf(0.4,1,0.6) → HSVA: 0.40,1.00,0.60,1.00

9.2.3.11. color_mix

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

الصيغة

color_mix(color1, color2, ratio)

الوسائط

  • color1 - سلسلة نصية للون أو كائن لون

  • color2 - سلسلة نصية للون أو كائن لون

  • ratio - نسبة

أمثلة

  • color_mix_rgb('0,0,0','255,255,255',0.5) → '127,127,127,255'

  • color_mix(color_cmykf(0.9,0.9,0.9,0.9),color_cmykf(0.1,0.1,0.1,0.1),0.5) → CMYKA: 0.50,0.50,0.50,0.50,1.00

9.2.3.12. color_mix_rgb

تُرجع سلسلة نصية تمثّل لونًا يمزج قيم الأحمر والأخضر والأزرق وألفا للونين معطيين بناءً على نسبة معطاة.

الصيغة

color_mix_rgb(color1, color2, ratio)

الوسائط

  • color1 - سلسلة نصية للون

  • color2 - سلسلة نصية للون

  • ratio - نسبة

أمثلة

  • color_mix_rgb('0,0,0','255,255,255',0.5) → '127,127,127,255'

9.2.3.13. color_part

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

الصيغة

color_part(color, component)

الوسائط

  • color - سلسلة نصية للون أو كائن لون

  • component - سلسلة نصية تقابل مكوّن اللون المراد إرجاعه. الخيارات الصالحة هي:

    • red: المكوّن الأحمر في RGB (0-255)

    • green: المكوّن الأخضر في RGB (0-255)

    • blue: المكوّن الأزرق في RGB (0-255)

    • alpha: قيمة ألفا (الشفافية) (0-255)

    • hue: تدرّج اللون في HSV (0-360)

    • saturation: التشبّع في HSV (0-100)

    • value: القيمة في HSV (0-100)

    • hsl_hue: تدرّج اللون في HSL (0-360)

    • hsl_saturation: التشبّع في HSL (0-100)

    • lightness: الإضاءة في HSL (0-100)

    • cyan: المكوّن السماوي في CMYK (0-100)

    • magenta: المكوّن الأرجواني في CMYK (0-100)

    • yellow: المكوّن الأصفر في CMYK (0-100)

    • black: المكوّن الأسود في CMYK (0-100)

أمثلة

  • color_part('200,10,30','green') → 10

  • to_int(color_part(color_cmykf(0.1,0.2,0.3,0.9),'black')) → 90

9.2.3.14. color_rgb

تُرجع تمثيلًا نصيًا للون بناءً على مكوّناته الأحمر والأخضر والأزرق.

الصيغة

color_rgb(red, green, blue)

الوسائط

  • red - المكوّن الأحمر كقيمة صحيحة من 0 إلى 255

  • green - المكوّن الأخضر كقيمة صحيحة من 0 إلى 255

  • blue - المكوّن الأزرق كقيمة صحيحة من 0 إلى 255

أمثلة

  • color_rgb(255,127,0) → '255,127,0'

9.2.3.15. color_rgba

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

الصيغة

color_rgba(red, green, blue, alpha)

الوسائط

  • red - المكوّن الأحمر كقيمة صحيحة من 0 إلى 255

  • green - المكوّن الأخضر كقيمة صحيحة من 0 إلى 255

  • blue - المكوّن الأزرق كقيمة صحيحة من 0 إلى 255

  • alpha - مكوّن ألفا كقيمة صحيحة من 0 (شفاف تمامًا) إلى 255 (معتم).

أمثلة

  • color_rgba(255,127,0,200) → '255,127,0,200'

9.2.3.16. color_rgbf

تُرجع كائن لون بناءً على مكوّناته الأحمر والأخضر والأزرق وألفا.

الصيغة

color_rgbf(red, green, blue, [alpha:=1.0])

تشير [] إلى الوسائط الاختيارية

الوسائط

  • red - المكوّن الأحمر كقيمة عشرية من 0.0 إلى 1.0

  • green - المكوّن الأخضر كقيمة عشرية من 0.0 إلى 1.0

  • blue - المكوّن الأزرق كقيمة عشرية من 0.0 إلى 1.0

  • alpha - مكوّن ألفا كقيمة عشرية من 0.0 إلى 1.0

أمثلة

  • color_rgbf(1.0,0.5,0) → RGBA: 1.00,0.50,0.00,1.00

9.2.3.17. create_ramp

تُرجع تدرّجًا لونيًا من خريطة من السلاسل النصية للألوان والخطوات.

الصيغة

create_ramp(map, [discrete:=false])

تشير [] إلى الوسائط الاختيارية

الوسائط

  • map - خريطة من السلاسل النصية للألوان والخطوات

  • discrete - اضبط هذا الوسيط على true لإنشاء تدرّج لوني منفصل (متقطع)

أمثلة

  • ramp_color(create_ramp(map(0,'0,0,0',1,'255,0,0')),1) → '255,0,0,255'

9.2.3.18. darker

تُرجع لونًا أغمق (أو أفتح). نوع القيمة المُرجَعة هو نفس نوع وسيطي اللون، أي تمثيل نصي للون أو كائن لون.

الصيغة

darker(color, factor)

الوسائط

  • color - سلسلة نصية للون أو كائن لون

  • factor - عدد صحيح يقابل معامل التغميق:

    • إذا كان المعامل أكبر من 100، تُرجع هذه الدالة لونًا أغمق (مثلًا ضبط المعامل على 200 يُرجع لونًا بنصف السطوع)؛

    • إذا كان المعامل أقل من 100، يكون اللون المُرجَع أفتح، لكن يُنصح باستخدام الدالة lighter() لهذا الغرض؛

    • إذا كان المعامل 0 أو سالبًا، تكون القيمة المُرجَعة غير محددة.

أمثلة

  • darker('200,10,30', 200) → '100,5,15,255'

للمزيد: lighter

9.2.3.19. lighter

تُرجع لونًا أفتح (أو أغمق). نوع القيمة المُرجَعة هو نفس نوع وسيطي اللون، أي تمثيل نصي للون أو كائن لون.

الصيغة

lighter(color, factor)

الوسائط

  • color - سلسلة نصية للون أو كائن لون

  • factor - عدد صحيح يقابل معامل التفتيح:

    • إذا كان المعامل أكبر من 100، تُرجع هذه الدالة لونًا أفتح (مثلًا ضبط المعامل على 150 يُرجع لونًا أسطع بنسبة 50%)؛

    • إذا كان المعامل أقل من 100، يكون اللون المُرجَع أغمق، لكن يُنصح باستخدام الدالة darker() لهذا الغرض؛

    • إذا كان المعامل 0 أو سالبًا، تكون القيمة المُرجَعة غير محددة.

أمثلة

  • lighter('200,10,30', 200) → '255,158,168,255'

للمزيد: darker

9.2.3.20. project_color

تُرجع لونًا من نظام ألوان المشروع.

الصيغة

project_color(name)

الوسائط

  • name - اسم لون

أمثلة

  • project_color('Logo color') → '20,140,50'

للمزيد: ضبط ألوان المشروع

9.2.3.21. project_color_object

تُرجع لونًا من نظام ألوان المشروع. على عكس project_color التي تُرجع تمثيلًا نصيًا للون، تُرجع project_color_object كائن لون.

الصيغة

project_color_object(name)

الوسائط

  • name - اسم لون

أمثلة

  • project_color_object('Logo color') → RGBA: 0.08,0.55,0.20,1.00

9.2.3.22. ramp_color

تُرجع سلسلة نصية تمثّل لونًا من تدرّج لوني.

صيغة التدرّج المحفوظ

تُرجع سلسلة نصية تمثّل لونًا من تدرّج لوني محفوظ

الصيغة

ramp_color(ramp_name, value)

الوسائط

  • ramp_name - اسم التدرّج اللوني كسلسلة نصية، مثل 'Spectral'

  • value - الموضع على التدرّج المراد اختيار اللون منه، كعدد حقيقي بين 0 و 1

أمثلة

  • ramp_color('Spectral',0.3) → '253,190,115,255'

ملاحظة

تختلف التدرّجات اللونية المتاحة بين تثبيتات QGIS. قد لا تعطي هذه الدالة النتائج المتوقعة إذا نقلت مشروع QGIS بين تثبيتات مختلفة.

صيغة التدرّج المُنشأ بتعبير

تُرجع سلسلة نصية تمثّل لونًا من تدرّج لوني مُنشأ بتعبير

الصيغة

ramp_color(ramp, value)

الوسائط

  • ramp - التدرّج اللوني

  • value - الموضع على التدرّج المراد اختيار اللون منه، كعدد حقيقي بين 0 و 1

أمثلة

  • ramp_color(create_ramp(map(0,'0,0,0',1,'255,0,0')),1) → '255,0,0,255'

للمزيد: إعداد تدرج ألوان، اختصار القائمة المنسدلة للتدرج اللوني

9.2.3.23. ramp_color_object

تُرجع كائن لون من تدرّج لوني. على عكس ramp_color التي تُرجع تمثيلًا نصيًا للون، تُرجع ramp_color_object كائن لون.

صيغة التدرّج المحفوظ

تُرجع كائن لون من تدرّج لوني محفوظ

الصيغة

ramp_color_object(ramp_name, value)

الوسائط

  • ramp_name - اسم التدرّج اللوني كسلسلة نصية، مثل 'Spectral'

  • value - الموضع على التدرّج المراد اختيار اللون منه، كعدد حقيقي بين 0 و 1

أمثلة

  • ramp_color_object('Spectral',0.3) → RGBA: 0.99,0.75,0.45,1.00

ملاحظة

تختلف التدرّجات اللونية المتاحة بين تثبيتات QGIS. قد لا تعطي هذه الدالة النتائج المتوقعة إذا نقلت مشروع QGIS بين تثبيتات مختلفة.

صيغة التدرّج المُنشأ بتعبير

تُرجع كائن لون من تدرّج لوني مُنشأ بتعبير

الصيغة

ramp_color_object(ramp, value)

الوسائط

  • ramp - التدرّج اللوني

  • value - الموضع على التدرّج المراد اختيار اللون منه، كعدد حقيقي بين 0 و 1

أمثلة

  • ramp_color_object(create_ramp(map(0,color_rgbf(0,0,0),1,color_rgbf(1,0,0))),1) → RGBA: 1.00,0.00,0.00,1.00

9.2.3.24. set_color_part

تضبط مكوّن لون محددًا لسلسلة نصية للون أو لكائن لون، مثل المكوّن الأحمر أو مكوّن ألفا.

الصيغة

set_color_part(color, component, value)

الوسائط

  • color - سلسلة نصية للون أو كائن لون

  • component - سلسلة نصية تقابل مكوّن اللون المراد ضبطه. الخيارات الصالحة هي:

    • red: المكوّن الأحمر في RGB (0-255)

    • green: المكوّن الأخضر في RGB (0-255)

    • blue: المكوّن الأزرق في RGB (0-255)

    • alpha: قيمة ألفا (الشفافية) (0-255)

    • hue: تدرّج اللون في HSV (0-360)

    • saturation: التشبّع في HSV (0-100)

    • value: القيمة في HSV (0-100)

    • hsl_hue: تدرّج اللون في HSL (0-360)

    • hsl_saturation: التشبّع في HSL (0-100)

    • lightness: الإضاءة في HSL (0-100)

    • cyan: المكوّن السماوي في CMYK (0-100)

    • magenta: المكوّن الأرجواني في CMYK (0-100)

    • yellow: المكوّن الأصفر في CMYK (0-100)

    • black: المكوّن الأسود في CMYK (0-100)

  • value - القيمة الجديدة لمكوّن اللون، مع مراعاة المجالات المذكورة أعلاه

أمثلة

  • set_color_part('200,10,30','green',50) → '200,50,30,255'

  • set_color_part(color_cmykf(0.21,0,0.92,0.70),'black',100) → CMYKA: 0.21,0.00,0.92,1.00,1.00

9.2.4. الدوال الشرطية (Conditionals)

تحتوي هذه المجموعة على دوال لمعالجة الفحوص الشرطية في التعبيرات.

9.2.4.1. CASE

تُستخدم CASE لتقييم سلسلة من الشروط وإرجاع نتيجة لأول شرط يتحقق. تُقيَّم الشروط بالتتابع، وإذا تحقق شرط يتوقف التقييم وتُرجَع النتيجة المقابلة. وإذا لم يتحقق أي شرط، تُرجَع القيمة الموجودة في عبارة ELSE. علاوة على ذلك، إذا لم تُحدَّد عبارة ELSE ولم يتحقق أي شرط، تُرجَع NULL.

CASE

WHEN الشرط THEN النتيجة

[ …n ]

[ ELSE النتيجة ]

END

تشير [ ] إلى المكوّنات الاختيارية

الوسائط

  • WHEN الشرط - تعبير شرطي يُراد تقييمه

  • THEN النتيجة - إذا قُيِّم الشرط بـ True، تُقيَّم النتيجة وتُرجَع.

  • ELSE النتيجة - إذا لم يُقيَّم أي من الشروط السابقة بـ True، تُقيَّم النتيجة وتُرجَع.

أمثلة

  • CASE WHEN "name" IS NULL THEN 'None' END → تُرجع السلسلة النصية 'None' إذا كان الحقل "name" قيمته NULL

  • CASE WHEN $area > 10000 THEN 'Big property' WHEN $area > 5000 THEN 'Medium property' ELSE 'Small property' END → تُرجع السلسلة النصية 'Big property' إذا كانت المساحة أكبر من 10000، و 'Medium property' إذا كانت المساحة بين 5000 و 10000، و 'Small property' فيما عدا ذلك

9.2.4.2. coalesce

تُرجع أول قيمة غير NULL من قائمة التعبيرات.

يمكن لهذه الدالة أن تأخذ أي عدد من الوسائط.

الصيغة

coalesce(expression1, expression2, ...)

الوسائط

  • expression - أي تعبير أو قيمة صالحة، بغض النظر عن النوع.

أمثلة

  • coalesce(NULL, 2) → 2

  • coalesce(NULL, 2, 3) → 2

  • coalesce(7, NULL, 3*2) → 7

  • coalesce("fieldA", "fallbackField", 'ERROR') → قيمة fieldA إن لم تكن NULL، وإلا قيمة "fallbackField"، أو السلسلة النصية 'ERROR' إذا كانت كلتاهما NULL

9.2.4.3. if

تختبر شرطًا وتُرجع نتيجة مختلفة بحسب نتيجة الفحص الشرطي.

الصيغة

if(condition, result_when_true, result_when_false)

الوسائط

  • condition - الشرط المراد فحصه

  • result_when_true - النتيجة التي تُرجَع عندما يكون الشرط صحيحًا أو قيمة أخرى لا تتحول إلى false.

  • result_when_false - النتيجة التي تُرجَع عندما يكون الشرط خاطئًا أو قيمة أخرى تتحول إلى false مثل 0 أو ''. تتحول NULL أيضًا إلى false.

أمثلة

  • if( 1+1=2, 'Yes', 'No' ) → 'Yes'

  • if( 1+1=3, 'Yes', 'No' ) → 'No'

  • if( 5 > 3, 1, 0) → 1

  • if( '', 'It is true (not empty)', 'It is false (empty)' ) → 'It is false (empty)'

  • if( ' ', 'It is true (not empty)', 'It is false (empty)' ) → 'It is true (not empty)'

  • if( 0, 'One', 'Zero' ) → 'Zero'

  • if( 10, 'One', 'Zero' ) → 'One'

9.2.4.4. nullif

تُرجع قيمة NULL إذا كانت value1 تساوي value2؛ وإلا تُرجع value1. يمكن استخدام ذلك لاستبدال القيم بـ NULL شرطيًا.

الصيغة

nullif(value1, value2)

الوسائط

  • value1 - القيمة التي إما أن تُستخدم أو تُستبدل بـ NULL.

  • value2 - قيمة المراقبة التي تؤدي إلى الاستبدال بـ NULL.

أمثلة

  • nullif('(none)', '(none)') → NULL

  • nullif('text', '(none)') → 'text'

  • nullif("name", '') → NULL إذا كان name سلسلة نصية فارغة (أو NULL أصلًا)، وقيمة name في أي حالة أخرى.

9.2.4.5. regexp_match

تُرجع أول موضع مطابق لتعبير نمطي داخل سلسلة نصية unicode، أو 0 إذا لم تُعثر على السلسلة الجزئية.

الصيغة

regexp_match(input_string, regex)

الوسائط

  • input_string - السلسلة النصية المراد اختبارها مقابل التعبير النمطي

  • regex - التعبير النمطي المراد الاختبار مقابله. يجب تهريب أحرف الشرطة المائلة العكسية مرتين (مثلًا "\\s" لمطابقة حرف مسافة بيضاء أو "\\b" لمطابقة حد كلمة).

أمثلة

  • regexp_match('QGIS ROCKS','\\sROCKS') → 5

  • regexp_match('Budač','udač\\b') → 2

9.2.4.6. try

تجرّب تعبيرًا وتُرجع قيمته إذا خلا من الأخطاء. إذا أعاد التعبير خطأً، تُرجَع قيمة بديلة إن وُجدت، وإلا تُرجع الدالة NULL.

الصيغة

try(expression, [alternative])

تشير [] إلى الوسائط الاختيارية

الوسائط

  • expression - التعبير المراد تشغيله

  • alternative - النتيجة التي تُرجَع إذا أعاد التعبير خطأً.

أمثلة

  • try( to_int( '1' ), 0 ) → 1

  • try( to_int( 'a' ), 0 ) → 0

  • try( to_date( 'invalid_date' ) ) → NULL

9.2.5. دوال التحويل (Conversions)

تحتوي هذه المجموعة على دوال لتحويل نوع بيانات إلى آخر (مثلًا من سلسلة نصية إلى عدد صحيح وبالعكس، ومن ثنائي إلى سلسلة نصية وبالعكس، ومن سلسلة نصية إلى تاريخ، ...).

9.2.5.1. from_base64

تفك ترميز سلسلة نصية بترميز Base64 إلى قيمة ثنائية.

الصيغة

from_base64(string)

الوسائط

  • string - السلسلة النصية المراد فك ترميزها

أمثلة

  • from_base64('UUdJUw==') → 'QGIS'

9.2.5.2. hash

تنشئ قيمة تجزئة (hash) من سلسلة نصية باستخدام طريقة معطاة. يُمثَّل البايت الواحد (8 بت) بـ ''رقمين'' سداسيين عشريين، لذا تنتج 'md4' (16 بايت) سلسلة سداسية عشرية بطول 16 * 2 = 32 حرفًا، وتنتج 'keccak_512' (64 بايت) سلسلة سداسية عشرية بطول 64 * 2 = 128 حرفًا.

الصيغة

hash(string, method)

الوسائط

  • string - السلسلة النصية المراد حساب تجزئتها

  • method - طريقة التجزئة من بين 'md4'، 'md5'، 'sha1'، 'sha224'، 'sha384'، 'sha512'، 'sha3_224'، 'sha3_256'، 'sha3_384'، 'sha3_512'، 'keccak_224'، 'keccak_256'، 'keccak_384'، 'keccak_512'

أمثلة

  • hash('QGIS', 'md4') → 'c0fc71c241cdebb6e888cbac0e2b68eb'

  • hash('QGIS', 'md5') → '57470aaa9e22adaefac7f5f342f1c6da'

  • hash('QGIS', 'sha1') → 'f87cfb2b74cdd5867db913237024e7001e62b114'

  • hash('QGIS', 'sha224') → '4093a619ada631c770f44bc643ead18fb393b93d6a6af1861fcfece0'

  • hash('QGIS', 'sha256') → 'eb045cba7a797aaa06ac58830846e40c8e8c780bc0676d3393605fae50c05309'

  • hash('QGIS', 'sha384') → '91c1de038cc3d09fdd512e99f9dd9922efadc39ed21d3922e69a4305cc25506033aee388e554b78714c8734f9cd7e610'

  • hash('QGIS', 'sha512') → 'c2c092f2ab743bf8edbeb6d028a745f30fc720408465ed369421f0a4e20fa5e27f0c90ad72d3f1d836eaa5d25cd39897d4cf77e19984668ef58da6e3159f18ac'

  • hash('QGIS', 'sha3_224') → '467f49a5039e7280d5d42fd433e80d203439e338eaabd701f0d6c17d'

  • hash('QGIS', 'sha3_256') → '540f7354b6b8a6e735f2845250f15f4f3ba4f666c55574d9e9354575de0e980f'

  • hash('QGIS', 'sha3_384') → '96052da1e77679e9a65f60d7ead961b287977823144786386eb43647b0901fd8516fa6f1b9d243fb3f28775e6dde6107'

  • hash('QGIS', 'sha3_512') → '900d079dc69761da113980253aa8ac0414a8bd6d09879a916228f8743707c4758051c98445d6b8945ec854ff90655005e02aceb0a2ffc6a0ebf818745d665349'

  • hash('QGIS', 'keccak_224') → '5b0ce6acef8b0a121d4ac4f3eaa8503c799ad4e26a3392d1fb201478'

  • hash('QGIS', 'keccak_256') → '991c520aa6815392de24087f61b2ae0fd56abbfeee4a8ca019c1011d327c577e'

  • hash('QGIS', 'keccak_384') → 'c57a3aed9d856fa04e5eeee9b62b6e027cca81ba574116d3cc1f0d48a1ef9e5886ff463ea8d0fac772ee473bf92f810d'

9.2.5.3. md5

تنشئ قيمة تجزئة md5 من سلسلة نصية.

الصيغة

md5(string)

الوسائط

  • string - السلسلة النصية المراد حساب تجزئتها

أمثلة

  • md5('QGIS') → '57470aaa9e22adaefac7f5f342f1c6da'

9.2.5.4. sha256

تنشئ قيمة تجزئة sha256 من سلسلة نصية.

الصيغة

sha256(string)

الوسائط

  • string - السلسلة النصية المراد حساب تجزئتها

أمثلة

  • sha256('QGIS') → 'eb045cba7a797aaa06ac58830846e40c8e8c780bc0676d3393605fae50c05309'

9.2.5.5. to_base64

ترمّز قيمة ثنائية إلى سلسلة نصية باستخدام ترميز Base64.

الصيغة

to_base64(value)

الوسائط

  • value - القيمة الثنائية المراد ترميزها

أمثلة

  • to_base64('QGIS') → 'UUdJUw=='

9.2.5.6. to_bool

تحوّل قيمة معطاة إلى قيمة منطقية (boolean). تُرجع الدالة false إذا كانت القيمة NULL أو سلسلة نصية فارغة أو قائمة فارغة أو 0.

الصيغة

to_bool(value)

الوسائط

  • value - القيمة المراد تحويلها إلى قيمة منطقية

أمثلة

  • to_bool('') → false

  • to_bool('123') → true

  • to_bool('false') → true

  • to_bool(0) → false

  • to_bool(1) → true

  • to_bool(null) → false

9.2.5.7. to_date

تحوّل سلسلة نصية إلى كائن تاريخ. يمكن تمرير سلسلة تنسيق اختيارية لتحليل السلسلة النصية؛ راجع QDate::fromString أو توثيق الدالة format_date لمزيد من المعلومات حول التنسيق. تُستخدم افتراضيًا الإعدادات المحلية الحالية لمستخدم QGIS.

الصيغة

to_date(string, [format], [language])

تشير [] إلى الوسائط الاختيارية

الوسائط

  • string - سلسلة نصية تمثّل قيمة تاريخ

  • format - التنسيق المستخدم لتحويل السلسلة النصية إلى تاريخ

  • language - اللغة (رمز لغة ISO 639 بأحرف صغيرة، من حرفين أو ثلاثة) المستخدمة لتحويل السلسلة النصية إلى تاريخ. تُستخدم افتراضيًا الإعدادات المحلية الحالية لمستخدم QGIS.

أمثلة

  • to_date('2012-05-04') → 2012-05-04

  • to_date('June 29, 2019','MMMM d, yyyy') → 2019-06-29، إذا كانت الإعدادات المحلية الحالية تستخدم الاسم 'June' للشهر السادس، وإلا يحدث خطأ

  • to_date('29 juin, 2019','d MMMM, yyyy','fr') → 2019-06-29

للمزيد: format_date

9.2.5.8. to_datetime

تحوّل سلسلة نصية إلى كائن تاريخ ووقت. يمكن تمرير سلسلة تنسيق اختيارية لتحليل السلسلة النصية؛ راجع QDate::fromString و QTime::fromString أو توثيق الدالة format_date لمزيد من المعلومات حول التنسيق. تُستخدم افتراضيًا الإعدادات المحلية الحالية لمستخدم QGIS.

الصيغة

to_datetime(string, [format], [language])

تشير [] إلى الوسائط الاختيارية

الوسائط

  • string - سلسلة نصية تمثّل قيمة تاريخ ووقت

  • format - التنسيق المستخدم لتحويل السلسلة النصية إلى تاريخ ووقت

  • language - اللغة (رمز لغة ISO 639 بأحرف صغيرة، من حرفين أو ثلاثة) المستخدمة لتحويل السلسلة النصية إلى تاريخ ووقت. تُستخدم افتراضيًا الإعدادات المحلية الحالية لمستخدم QGIS.

أمثلة

  • to_datetime('2012-05-04 12:50:00') → 2012-05-04T12:50:00

  • to_datetime('June 29, 2019 @ 12:34','MMMM d, yyyy @ HH:mm') → 2019-06-29T12:34، إذا كانت الإعدادات المحلية الحالية تستخدم الاسم 'June' للشهر السادس، وإلا يحدث خطأ

  • to_datetime('29 juin, 2019 @ 12:34','d MMMM, yyyy @ HH:mm','fr') → 2019-06-29T12:34

للمزيد: format_date

9.2.5.9. to_decimal

تحوّل إحداثية بالدرجات والدقائق والثواني إلى ما يعادلها بالصيغة العشرية.

الصيغة

to_decimal(value)

الوسائط

  • value - سلسلة نصية بالدرجات والدقائق والثواني.

أمثلة

  • to_decimal('6°21\'16.445') → 6.3545680555

9.2.5.10. to_dm

تحوّل إحداثية إلى درجات ودقائق.

الصيغة

to_dm(coordinate, axis, precision, [formatting:=NULL])

تشير [] إلى الوسائط الاختيارية

الوسائط

  • coordinate - قيمة خط عرض أو خط طول.

  • axis - محور الإحداثية. إما 'x' أو 'y'.

  • precision - عدد المنازل العشرية.

  • formatting - يحدد نوع التنسيق. القيم المقبولة هي NULL (الافتراضي) أو 'aligned' أو 'suffix'.

أمثلة

  • to_dm(6.1545681, 'x', 3) → 6°9.274′

  • to_dm(6.1545681, 'y', 4, 'aligned') → 6°09.2741′N

  • to_dm(6.1545681, 'y', 4, 'suffix') → 6°9.2741′N

9.2.5.11. to_dms

تحوّل إحداثية إلى درجات ودقائق وثوانٍ.

الصيغة

to_dms(coordinate, axis, precision, [formatting:=NULL])

تشير [] إلى الوسائط الاختيارية

الوسائط

  • coordinate - قيمة خط عرض أو خط طول.

  • axis - محور الإحداثية. إما 'x' أو 'y'.

  • precision - عدد المنازل العشرية.

  • formatting - يحدد نوع التنسيق. القيم المقبولة هي NULL (الافتراضي) أو 'aligned' أو 'suffix'.

أمثلة

  • to_dms(6.1545681, 'x', 3) → 6°9′16.445″

  • to_dms(6.1545681, 'y', 4, 'aligned') → 6°09′16.4452″N

  • to_dms(6.1545681, 'y', 4, 'suffix') → 6°9′16.4452″N

9.2.5.12. to_int

تحوّل سلسلة نصية إلى عدد صحيح. إذا تعذّر تحويل قيمة إلى عدد صحيح يكون التعبير غير صالح (مثلًا '123asd' غير صالحة).

الصيغة

to_int(string)

الوسائط

  • string - السلسلة النصية المراد تحويلها إلى عدد صحيح

أمثلة

  • to_int('123') → 123

9.2.5.13. to_interval

تحوّل سلسلة نصية إلى نوع فترة زمنية (interval). يمكن استخدامها لأخذ الأيام أو الساعات أو الأشهر وغيرها من تاريخ.

الصيغة

to_interval(string)

الوسائط

  • string - سلسلة نصية تمثّل فترة زمنية. من التنسيقات المسموح بها {n} days {n} hours {n} months.

أمثلة

  • to_interval('1 day 2 hours') → interval: 1.08333 days

  • to_interval( '0.5 hours' ) → فترة زمنية: 30 دقيقة

  • to_datetime('2012-05-05 12:00:00') - to_interval('1 day 2 hours') → 2012-05-04T10:00:00

9.2.5.14. to_real

تحوّل سلسلة نصية إلى عدد حقيقي. إذا تعذّر تحويل قيمة إلى عدد حقيقي يكون التعبير غير صالح (مثلًا '123.56asd' غير صالحة). تُقرَّب الأرقام بعد حفظ التغييرات إذا كانت الدقة أصغر من نتيجة التحويل.

الصيغة

to_real(string)

الوسائط

  • string - السلسلة النصية المراد تحويلها إلى عدد حقيقي

أمثلة

  • to_real('123.45') → 123.45

9.2.5.15. to_string

تحوّل رقمًا إلى سلسلة نصية. لا يراعي التحويل الإعدادات المحلية، راجع 'format_number' للحصول على بديل يراعي الإعدادات المحلية.

الصيغة

to_string(number)

الوسائط

  • number - قيمة صحيحة أو حقيقية. الرقم المراد تحويله إلى سلسلة نصية.

أمثلة

  • to_string(1.23) → '1.23'

للمزيد: format_number

9.2.5.16. to_time

تحوّل سلسلة نصية إلى كائن وقت. يمكن تمرير سلسلة تنسيق اختيارية لتحليل السلسلة النصية؛ راجع QTime::fromString لمزيد من المعلومات حول التنسيق.

الصيغة

to_time(string, [format], [language])

تشير [] إلى الوسائط الاختيارية

الوسائط

  • string - سلسلة نصية تمثّل قيمة وقت

  • format - التنسيق المستخدم لتحويل السلسلة النصية إلى وقت

  • language - اللغة (رمز لغة ISO 639 بأحرف صغيرة، من حرفين أو ثلاثة) المستخدمة لتحويل السلسلة النصية إلى وقت

أمثلة

  • to_time('12:30:01') → 12:30:01

  • to_time('12:34','HH:mm') → 12:34:00

  • to_time('12:34','HH:mm','fr') → 12:34:00

للمزيد: format_date

9.2.6. دوال نظام الإحداثيات المرجعي (CRS)

تحتوي هذه المجموعة على دوال للتعامل مع كائنات نظام الإحداثيات المرجعي.

9.2.6.1. crs_from_text

تنشئ نظام إحداثيات مرجعيًا من تعريف نصي. يمكن أن تمثّل السلسلة النصية معرّف جهة (authority ID) أو تعريف WKT أو تعريف PROJ لنظام الإحداثيات المرجعي.

الصيغة

crs_from_text(definition)

الوسائط

  • definition - تعريف CRS

أمثلة

  • crs_from_text('EPSG:3857') → قيمة crs 'EPSG:3857 - WGS 84 / Pseudo-Mercator'

  • crs_from_text('PROJ:+proj=merc +a=6378137 +b=6378137 +lat_ts=0 +lon_0=0 +x_0=0 +y_0=0 +k=1 +units=m +nadgrids=@null +wktext +no_defs +type=crs') → قيمة crs 'EPSG:3857 - WGS 84 / Pseudo-Mercator'

9.2.6.2. crs_to_authid

تُرجع سلسلة معرّف الجهة (authority ID) لنظام إحداثيات مرجعي.

الصيغة

crs_to_authid(crs)

الوسائط

  • crs - قيمة crs

أمثلة

  • crs_to_authid(crs_from_text('PROJ:+proj=merc +a=6378137 +b=6378137 +lat_ts=0 +lon_0=0 +x_0=0 +y_0=0 +k=1 +units=m +nadgrids=@null +wktext +no_defs +type=crs')) → 'EPSG:3857'

9.2.7. الدوال المخصصة (Custom)

تحتوي هذه المجموعة على دوال أنشأها المستخدم. راجع محرر الدوال لمزيد من التفاصيل.

9.2.8. دوال التاريخ والوقت (Date and Time)

تحتوي هذه المجموعة على دوال للتعامل مع بيانات التاريخ والوقت. تشترك هذه المجموعة في عدة دوال مع مجموعتي دوال التحويل (Conversions) (to_date و to_time و to_datetime و to_interval) و دوال السلاسل النصية (format_date).

ملاحظة

تخزين التاريخ والتاريخ والوقت والفترات الزمنية في الحقول

تعتمد إمكانية تخزين قيم date و time و datetime مباشرة في الحقول على مزوّد مصدر البيانات (مثلًا يقبل Shapefile تنسيق date لكنه لا يقبل تنسيق datetime أو time). فيما يلي بعض الاقتراحات لتجاوز هذا القيد:

  • يمكن تحويل date و datetime و time وتخزينها في حقول من النوع النصي باستخدام الدالة format_date().

  • يمكن تخزين Intervals (الفترات الزمنية) في حقول من النوع الصحيح أو العشري بعد استخدام إحدى دوال استخراج التاريخ (مثلًا day() للحصول على الفترة معبّرًا عنها بالأيام)

9.2.8.1. age

تُرجع الفرق بين تاريخين أو قيمتي تاريخ ووقت.

يُرجَع الفرق كـ Interval، ويجب استخدامه مع إحدى الدوال التالية لاستخراج معلومات مفيدة:

  • year

  • month

  • week

  • day

  • hour

  • minute

  • second

الصيغة

age(datetime1, datetime2)

الوسائط

  • datetime1 - سلسلة نصية أو تاريخ أو تاريخ ووقت يمثّل التاريخ الأحدث

  • datetime2 - سلسلة نصية أو تاريخ أو تاريخ ووقت يمثّل التاريخ الأقدم

أمثلة

  • day(age('2012-05-12','2012-05-02')) → 10

  • hour(age('2012-05-12','2012-05-02')) → 240

9.2.8.2. datetime_from_epoch

تُرجع قيمة تاريخ ووقت يكون تاريخها ووقتها هو عدد الملّي ثانية (msecs) المنقضية منذ 1970-01-01T00:00:00.000 بالتوقيت العالمي المنسَّق (Qt.UTC)، محوّلة إلى Qt.LocalTime.

الصيغة

datetime_from_epoch(int)

الوسائط

  • int - رقم (بالملّي ثانية)

أمثلة

  • datetime_from_epoch(1483225200000) → 2017-01-01T00:00:00

9.2.8.3. day

تستخرج اليوم من تاريخ، أو عدد الأيام من فترة زمنية.

صيغة التاريخ

تستخرج اليوم من تاريخ أو تاريخ ووقت.

الصيغة

day(date)

الوسائط

  • date - قيمة تاريخ أو تاريخ ووقت

أمثلة

  • day('2012-05-12') → 12

صيغة الفترة الزمنية

تحسب طول فترة زمنية بالأيام.

الصيغة

day(interval)

الوسائط

  • interval - قيمة الفترة الزمنية المراد إرجاع عدد الأيام منها

أمثلة

  • day(to_interval('3 days')) → 3

  • day(to_interval('3 weeks 2 days')) → 23

  • day(age('2012-01-01','2010-01-01')) → 730

9.2.8.4. day_of_week

تُرجع يوم الأسبوع لتاريخ أو تاريخ ووقت محدد. تتراوح القيمة المُرجَعة من 0 إلى 6، حيث يقابل 0 يوم الأحد و 6 يوم السبت.

الصيغة

day_of_week(date)

الوسائط

  • date - قيمة تاريخ أو تاريخ ووقت

أمثلة

  • day_of_week(to_date('2015-09-21')) → 1

9.2.8.5. epoch

تُرجع الفترة الزمنية بالملّي ثانية بين بداية حقبة يونكس (unix epoch) وقيمة تاريخ معطاة.

الصيغة

epoch(date)

الوسائط

  • date - قيمة تاريخ أو تاريخ ووقت

أمثلة

  • epoch(to_date('2017-01-01')) → 1483203600000

9.2.8.6. format_date

تنسّق نوع تاريخ أو سلسلة نصية إلى تنسيق نصي مخصص. تستخدم سلاسل تنسيق التاريخ/الوقت في Qt. راجع QDateTime::toString.

الصيغة

format_date(datetime, format, [language])

تشير [] إلى الوسائط الاختيارية

الوسائط

  • datetime - قيمة تاريخ أو وقت أو تاريخ ووقت

  • format - قالب نصي يُستخدم لتنسيق السلسلة النصية.

    تعبير

    المُخرَج

    d

    اليوم كرقم دون صفر بادئ (1 إلى 31)

    dd

    اليوم كرقم مع صفر بادئ (01 إلى 31)

    ddd

    اسم اليوم المختصر حسب اللغة المحلية (مثلًا 'Mon' إلى 'Sun')

    dddd

    اسم اليوم الكامل حسب اللغة المحلية (مثلًا 'Monday' إلى 'Sunday')

    M

    الشهر كرقم دون صفر بادئ (1-12)

    MM

    الشهر كرقم مع صفر بادئ (01-12)

    MMM

    اسم الشهر المختصر حسب اللغة المحلية (مثلًا 'Jan' إلى 'Dec')

    MMMM

    اسم الشهر الكامل حسب اللغة المحلية (مثلًا 'January' إلى 'December')

    yy

    السنة كرقم من خانتين (00-99)

    yyyy

    السنة كرقم من أربع خانات

    يمكن استخدام هذه التعبيرات لجزء الوقت من سلسلة التنسيق:

    تعبير

    المُخرَج

    h

    الساعة دون صفر بادئ (0 إلى 23، أو 1 إلى 12 عند عرض AM/PM)

    hh

    الساعة مع صفر بادئ (00 إلى 23، أو 01 إلى 12 عند عرض AM/PM)

    H

    الساعة دون صفر بادئ (0 إلى 23، حتى مع عرض AM/PM)

    HH

    الساعة مع صفر بادئ (00 إلى 23، حتى مع عرض AM/PM)

    m

    الدقيقة دون صفر بادئ (0 إلى 59)

    mm

    الدقيقة مع صفر بادئ (00 إلى 59)

    s

    الثانية دون صفر بادئ (0 إلى 59)

    ss

    الثانية مع صفر بادئ (00 إلى 59)

    z

    الملّي ثانية دون أصفار لاحقة (0 إلى 999)

    zzz

    الملّي ثانية مع أصفار لاحقة (000 إلى 999)

    AP أو A

    يُفسَّر كوقت بنظام AM/PM. يجب أن تكون AP إما 'AM' أو 'PM'.

    ap أو a

    يُفسَّر كوقت بنظام AM/PM. يجب أن تكون ap إما 'am' أو 'pm'.

  • language - اللغة (بأحرف صغيرة، من حرفين أو ثلاثة، رمز لغة ISO 639) المستخدمة لتنسيق التاريخ إلى سلسلة نصية مخصصة. تُستخدم افتراضيًا الإعدادات المحلية الحالية لمستخدم QGIS.

أمثلة

  • format_date('2012-05-15','dd.MM.yyyy') → '15.05.2012'

  • format_date('2012-05-15','d MMMM yyyy','fr') → '15 mai 2012'

  • format_date('2012-05-15','dddd') → 'Tuesday'، إذا كانت الإعدادات المحلية الحالية أحد أشكال اللغة الإنجليزية

  • format_date('2012-05-15 13:54:20','dd.MM.yy') → '15.05.12'

  • format_date('13:54:20','hh:mm AP') → '01:54 PM'

9.2.8.7. hour

تستخرج جزء الساعة من تاريخ ووقت أو من وقت، أو عدد الساعات من فترة زمنية.

صيغة الوقت

تستخرج جزء الساعة من وقت أو تاريخ ووقت.

الصيغة

hour(datetime)

الوسائط

  • datetime - قيمة وقت أو تاريخ ووقت

أمثلة

  • hour( to_datetime('2012-07-22 13:24:57') ) → 13

صيغة الفترة الزمنية

تحسب طول فترة زمنية بالساعات.

الصيغة

hour(interval)

الوسائط

  • interval - قيمة الفترة الزمنية المراد إرجاع عدد الساعات منها

أمثلة

  • hour(to_interval('3 hours')) → 3

  • hour(age('2012-07-22T13:00:00','2012-07-22T10:00:00')) → 3

  • hour(age('2012-01-01','2010-01-01')) → 17520

9.2.8.8. make_date

تُنشئ قيمة تاريخ من أرقام السنة والشهر واليوم.

الصيغة

make_date(year, month, day)

الوسائط

  • year - رقم السنة. تُفسَّر السنوات من 1 إلى 99 كما هي. السنة 0 غير صالحة.

  • month - رقم الشهر، حيث 1=يناير

  • day - رقم اليوم، بدءًا من 1 لليوم الأول من الشهر

أمثلة

  • make_date(2020,5,4) → قيمة تاريخ 2020-05-04

9.2.8.9. make_datetime

تُنشئ قيمة تاريخ ووقت من أرقام السنة والشهر واليوم والساعة والدقيقة والثانية.

الصيغة

make_datetime(year, month, day, hour, minute, second)

الوسائط

  • year - رقم السنة. تُفسَّر السنوات من 1 إلى 99 كما هي. السنة 0 غير صالحة.

  • month - رقم الشهر، حيث 1=يناير

  • day - رقم اليوم، بدءًا من 1 لليوم الأول من الشهر

  • hour - رقم الساعة

  • minute - الدقائق

  • second - الثواني (القيم الكسرية تتضمن أجزاء الثانية بالمللي ثانية)

أمثلة

  • make_datetime(2020,5,4,13,45,30.5) → قيمة تاريخ ووقت 2020-05-04 13:45:30.500

9.2.8.10. make_interval

تُنشئ قيمة فترة زمنية من قيم السنة والشهر والأسابيع والأيام والساعات والدقائق والثواني.

الصيغة

make_interval([years:=0], [months:=0], [weeks:=0], [days:=0], [hours:=0], [minutes:=0], [seconds:=0])

تشير [] إلى الوسائط الاختيارية

الوسائط

  • years - عدد السنوات (يُفترض أن طول السنة 365.25 يومًا).

  • months - عدد الأشهر (يُفترض أن طول الشهر 30 يومًا)

  • weeks - عدد الأسابيع

  • days - عدد الأيام

  • hours - عدد الساعات

  • minutes - عدد الدقائق

  • seconds - عدد الثواني

أمثلة

  • make_interval(hours:=3) → فترة زمنية: 3 ساعات

  • make_interval(days:=2, hours:=3) → فترة زمنية: 2.125 يوم

  • make_interval(minutes:=0.5, seconds:=5) → فترة زمنية: 35 ثانية

9.2.8.11. make_time

تُنشئ قيمة وقت من أرقام الساعة والدقيقة والثانية.

الصيغة

make_time(hour, minute, second)

الوسائط

  • hour - رقم الساعة

  • minute - الدقائق

  • second - الثواني (القيم الكسرية تتضمن أجزاء الثانية بالمللي ثانية)

أمثلة

  • make_time(13,45,30.5) → قيمة وقت 13:45:30.500

9.2.8.12. minute

تستخرج جزء الدقائق من قيمة تاريخ ووقت أو قيمة وقت، أو عدد الدقائق من فترة زمنية.

صيغة الوقت

تستخرج جزء الدقائق من قيمة وقت أو قيمة تاريخ ووقت.

الصيغة

minute(datetime)

الوسائط

  • datetime - قيمة وقت أو تاريخ ووقت

أمثلة

  • minute( to_datetime('2012-07-22 13:24:57') ) → 24

صيغة الفترة الزمنية

تحسب طول فترة زمنية بالدقائق.

الصيغة

minute(interval)

الوسائط

  • interval - قيمة الفترة الزمنية المراد إرجاع عدد الدقائق منها

أمثلة

  • minute(to_interval('3 minutes')) → 3

  • minute(age('2012-07-22T00:20:00','2012-07-22T00:00:00')) → 20

  • minute(age('2012-01-01','2010-01-01')) → 1051200

9.2.8.13. month

تستخرج جزء الشهر من تاريخ، أو عدد الأشهر من فترة زمنية.

صيغة التاريخ

تستخرج جزء الشهر من قيمة تاريخ أو قيمة تاريخ ووقت.

الصيغة

month(date)

الوسائط

  • date - قيمة تاريخ أو تاريخ ووقت

أمثلة

  • month('2012-05-12') → 05

صيغة الفترة الزمنية

تحسب طول فترة زمنية بالأشهر.

الصيغة

month(interval)

الوسائط

  • interval - قيمة الفترة الزمنية المراد إرجاع عدد الأشهر منها

أمثلة

  • month(to_interval('3 months')) → 3

  • month(age('2012-01-01','2010-01-01')) → 4.03333

9.2.8.14. now

تُرجع التاريخ والوقت الحاليين. هذه الدالة ثابتة وستُرجع نتائج متسقة أثناء التقييم. الوقت المُرجَع هو الوقت الذي جرى فيه تحضير التعبير.

الصيغة

now()

أمثلة

  • now() → 2012-07-22T13:24:57

9.2.8.15. second

تستخرج جزء الثواني من قيمة تاريخ ووقت أو قيمة وقت، أو عدد الثواني من فترة زمنية.

صيغة الوقت

تستخرج جزء الثواني من قيمة وقت أو قيمة تاريخ ووقت.

الصيغة

second(datetime)

الوسائط

  • datetime - قيمة وقت أو تاريخ ووقت

أمثلة

  • second( to_datetime('2012-07-22 13:24:57') ) → 57

صيغة الفترة الزمنية

تحسب طول فترة زمنية بالثواني.

الصيغة

second(interval)

الوسائط

  • interval - قيمة الفترة الزمنية المراد إرجاع عدد الثواني منها

أمثلة

  • second(to_interval('3 minutes')) → 180

  • second(age('2012-07-22T00:20:00','2012-07-22T00:00:00')) → 1200

  • second(age('2012-01-01','2010-01-01')) → 63072000

9.2.8.16. to_date

تحوّل سلسلة نصية إلى كائن تاريخ. يمكن تمرير سلسلة تنسيق اختيارية لتحليل السلسلة النصية؛ راجع QDate::fromString أو توثيق الدالة format_date لمزيد من المعلومات حول التنسيق. تُستخدم افتراضيًا الإعدادات المحلية الحالية لمستخدم QGIS.

الصيغة

to_date(string, [format], [language])

تشير [] إلى الوسائط الاختيارية

الوسائط

  • string - سلسلة نصية تمثّل قيمة تاريخ

  • format - التنسيق المستخدم لتحويل السلسلة النصية إلى تاريخ

  • language - اللغة (رمز لغة ISO 639 بأحرف صغيرة، من حرفين أو ثلاثة) المستخدمة لتحويل السلسلة النصية إلى تاريخ. تُستخدم افتراضيًا الإعدادات المحلية الحالية لمستخدم QGIS.

أمثلة

  • to_date('2012-05-04') → 2012-05-04

  • to_date('June 29, 2019','MMMM d, yyyy') → 2019-06-29، إذا كانت الإعدادات المحلية الحالية تستخدم الاسم 'June' للشهر السادس، وإلا يحدث خطأ

  • to_date('29 juin, 2019','d MMMM, yyyy','fr') → 2019-06-29

للمزيد: format_date

9.2.8.17. to_datetime

تحوّل سلسلة نصية إلى كائن تاريخ ووقت. يمكن تمرير سلسلة تنسيق اختيارية لتحليل السلسلة النصية؛ راجع QDate::fromString و QTime::fromString أو توثيق الدالة format_date لمزيد من المعلومات حول التنسيق. تُستخدم افتراضيًا الإعدادات المحلية الحالية لمستخدم QGIS.

الصيغة

to_datetime(string, [format], [language])

تشير [] إلى الوسائط الاختيارية

الوسائط

  • string - سلسلة نصية تمثّل قيمة تاريخ ووقت

  • format - التنسيق المستخدم لتحويل السلسلة النصية إلى تاريخ ووقت

  • language - اللغة (رمز لغة ISO 639 بأحرف صغيرة، من حرفين أو ثلاثة) المستخدمة لتحويل السلسلة النصية إلى تاريخ ووقت. تُستخدم افتراضيًا الإعدادات المحلية الحالية لمستخدم QGIS.

أمثلة

  • to_datetime('2012-05-04 12:50:00') → 2012-05-04T12:50:00

  • to_datetime('June 29, 2019 @ 12:34','MMMM d, yyyy @ HH:mm') → 2019-06-29T12:34، إذا كانت الإعدادات المحلية الحالية تستخدم الاسم 'June' للشهر السادس، وإلا يحدث خطأ

  • to_datetime('29 juin, 2019 @ 12:34','d MMMM, yyyy @ HH:mm','fr') → 2019-06-29T12:34

للمزيد: format_date

9.2.8.18. to_interval

تحوّل سلسلة نصية إلى نوع فترة زمنية (interval). يمكن استخدامها لأخذ الأيام أو الساعات أو الأشهر وغيرها من تاريخ.

الصيغة

to_interval(string)

الوسائط

  • string - سلسلة نصية تمثّل فترة زمنية. من التنسيقات المسموح بها {n} days {n} hours {n} months.

أمثلة

  • to_interval('1 day 2 hours') → interval: 1.08333 days

  • to_interval( '0.5 hours' ) → فترة زمنية: 30 دقيقة

  • to_datetime('2012-05-05 12:00:00') - to_interval('1 day 2 hours') → 2012-05-04T10:00:00

9.2.8.19. to_time

تحوّل سلسلة نصية إلى كائن وقت. يمكن تمرير سلسلة تنسيق اختيارية لتحليل السلسلة النصية؛ راجع QTime::fromString لمزيد من المعلومات حول التنسيق.

الصيغة

to_time(string, [format], [language])

تشير [] إلى الوسائط الاختيارية

الوسائط

  • string - سلسلة نصية تمثّل قيمة وقت

  • format - التنسيق المستخدم لتحويل السلسلة النصية إلى وقت

  • language - اللغة (رمز لغة ISO 639 بأحرف صغيرة، من حرفين أو ثلاثة) المستخدمة لتحويل السلسلة النصية إلى وقت

أمثلة

  • to_time('12:30:01') → 12:30:01

  • to_time('12:34','HH:mm') → 12:34:00

  • to_time('12:34','HH:mm','fr') → 12:34:00

للمزيد: format_date

9.2.8.20. week

تستخرج رقم الأسبوع من تاريخ، أو عدد الأسابيع من فترة زمنية.

صيغة التاريخ

تستخرج رقم الأسبوع من قيمة تاريخ أو قيمة تاريخ ووقت.

الصيغة

week(date)

الوسائط

  • date - قيمة تاريخ أو تاريخ ووقت

أمثلة

  • week('2012-05-12') → 19

صيغة الفترة الزمنية

تحسب طول فترة زمنية بالأسابيع.

الصيغة

week(interval)

الوسائط

  • interval - قيمة الفترة الزمنية المراد إرجاع عدد الأشهر منها

أمثلة

  • week(to_interval('3 weeks')) → 3

  • week(age('2012-01-01','2010-01-01')) → 104.285

9.2.8.21. year

تستخرج جزء السنة من تاريخ، أو عدد السنوات من فترة زمنية.

صيغة التاريخ

تستخرج جزء السنة من قيمة تاريخ أو قيمة تاريخ ووقت.

الصيغة

year(date)

الوسائط

  • date - قيمة تاريخ أو تاريخ ووقت

أمثلة

  • year('2012-05-12') → 2012

صيغة الفترة الزمنية

تحسب طول فترة زمنية بالسنوات.

الصيغة

year(interval)

الوسائط

  • interval - قيمة الفترة الزمنية المراد إرجاع عدد السنوات منها

أمثلة

  • year(to_interval('3 years')) → 3

  • year(age('2012-01-01','2010-01-01')) → 1.9986

بعض الأمثلة:

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

تؤدي إضافة فترة زمنية إلى التواريخ أو قيم التاريخ والوقت أو قيم الوقت، أو طرحها منها، باستخدام العاملين + (زائد) و - (ناقص)، إلى إرجاع قيمة تاريخ ووقت.

  • احصل على عدد الأيام المتبقية حتى إصدار QGIS 3.0:

    to_date('2017-09-29') - to_date(now())
    -- Returns <interval: 203 days>
    
  • الأمر نفسه مع الوقت:

    to_datetime('2017-09-29 12:00:00') - now()
    -- Returns <interval: 202.49 days>
    
  • احصل على التاريخ والوقت بعد 100 يوم من الآن:

    now() + to_interval('100 days')
    -- Returns <datetime: 2017-06-18 01:00:00>
    

9.2.9. الحقول والقيم

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

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

لاسترجاع قيم الحقول لاستخدامها في تعبير، حدد الحقل المناسب، ثم اختر في عنصر الواجهة الظاهر بين 10 Samples و All Unique. تُعرض القيم المطلوبة بعد ذلك، ويمكنك استخدام مربع Search أعلى القائمة لتصفية النتيجة. يمكن أيضًا الوصول إلى القيم النموذجية بالنقر بزر الفأرة الأيمن على حقل.

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

9.2.9.1. NULL

تعادل قيمة NULL.

الصيغة

NULL

أمثلة

  • NULL → قيمة NULL

ملاحظة

لاختبار قيمة NULL استخدم تعبير IS NULL أو IS NOT NULL.

9.2.10. دوال الملفات والمسارات

تحتوي هذه المجموعة على دوال تعالج أسماء الملفات والمسارات.

9.2.10.1. base_file_name

تُرجع الاسم الأساسي للملف دون المجلد أو لاحقة الملف.

الصيغة

base_file_name(path)

الوسائط

  • path - مسار ملف أو قيمة طبقة خريطة. إذا حُدِّدت قيمة طبقة خريطة فسيُستخدم ملف مصدر الطبقة.

أمثلة

  • base_file_name('/home/qgis/data/country_boundaries.shp') → 'country_boundaries'

9.2.10.2. exif

تسترجع قيم وسوم exif من ملف صورة.

الصيغة

exif(path, [tag])

تشير [] إلى الوسائط الاختيارية

الوسائط

  • path - مسار ملف صورة أو قيمة طبقة خريطة. إذا حُدِّدت قيمة طبقة خريطة فسيُستخدم ملف مصدر الطبقة.

  • tag - الوسم المراد إرجاعه. إذا تُرك فارغًا فستُرجَع خريطة (map) بجميع قيم وسوم Exif الممكنة.

أمثلة

  • exif('/my/photo.jpg','Exif.Image.Orientation') → 0

9.2.10.3. file_exists

تُرجع TRUE إذا كان مسار الملف موجودًا.

الصيغة

file_exists(path)

الوسائط

  • path - مسار ملف أو قيمة طبقة خريطة. إذا حُدِّدت قيمة طبقة خريطة فسيُستخدم ملف مصدر الطبقة.

أمثلة

  • file_exists('/home/qgis/data/country_boundaries.shp') → TRUE

9.2.10.4. file_name

تُرجع اسم الملف (بما في ذلك امتداده)، دون المجلد.

الصيغة

file_name(path)

الوسائط

  • path - مسار ملف أو قيمة طبقة خريطة. إذا حُدِّدت قيمة طبقة خريطة فسيُستخدم ملف مصدر الطبقة.

أمثلة

  • file_name('/home/qgis/data/country_boundaries.shp') → 'country_boundaries.shp'

9.2.10.5. file_path

تُرجع مكوّن المجلد من مسار ملف. لا يتضمن ذلك اسم الملف.

الصيغة

file_path(path)

الوسائط

  • path - مسار ملف أو قيمة طبقة خريطة. إذا حُدِّدت قيمة طبقة خريطة فسيُستخدم ملف مصدر الطبقة.

أمثلة

  • file_path('/home/qgis/data/country_boundaries.shp') → '/home/qgis/data'

9.2.10.6. file_size

تُرجع حجم الملف (بالبايت).

الصيغة

file_size(path)

الوسائط

  • path - مسار ملف أو قيمة طبقة خريطة. إذا حُدِّدت قيمة طبقة خريطة فسيُستخدم ملف مصدر الطبقة.

أمثلة

  • file_size('/home/qgis/data/country_boundaries.geojson') → 5674

9.2.10.7. file_suffix

تُرجع لاحقة الملف (الامتداد) من مسار ملف.

الصيغة

file_suffix(path)

الوسائط

  • path - مسار ملف أو قيمة طبقة خريطة. إذا حُدِّدت قيمة طبقة خريطة فسيُستخدم ملف مصدر الطبقة.

أمثلة

  • file_suffix('/home/qgis/data/country_boundaries.shp') → 'shp'

9.2.10.8. is_directory

تُرجع TRUE إذا كان المسار يشير إلى مجلد.

الصيغة

is_directory(path)

الوسائط

  • path - مسار ملف أو قيمة طبقة خريطة. إذا حُدِّدت قيمة طبقة خريطة فسيُستخدم ملف مصدر الطبقة.

أمثلة

  • is_directory('/home/qgis/data/country_boundaries.shp') → FALSE

  • is_directory('/home/qgis/data/') → TRUE

9.2.10.9. is_file

تُرجع TRUE إذا كان المسار يشير إلى ملف.

الصيغة

is_file(path)

الوسائط

  • path - مسار ملف أو قيمة طبقة خريطة. إذا حُدِّدت قيمة طبقة خريطة فسيُستخدم ملف مصدر الطبقة.

أمثلة

  • is_file('/home/qgis/data/country_boundaries.shp') → TRUE

  • is_file('/home/qgis/data/') → FALSE

9.2.11. دوال النماذج

تحتوي هذه المجموعة على دوال تعمل حصريًا ضمن سياق نموذج البيانات الوصفية، مثلًا في إعدادات عناصر واجهة الحقل.

9.2.11.1. current_parent_value

لا يمكن استخدام هذه الدالة إلا في سياق نموذج مضمَّن، وهي تُرجع القيمة الحالية غير المحفوظة لحقل في النموذج الأب الجاري تحريره حاليًا. ستختلف هذه القيمة عن قيم البيانات الوصفية الفعلية للمعلم الأب في حالة المعالم الجاري تحريرها حاليًا أو التي لم تُضَف بعد إلى طبقة أب. عند استخدامها في تعبير تصفية لعنصر واجهة من نوع value-relation، يجب تغليف هذه الدالة داخل 'coalesce()' يمكنها استرجاع المعلم الأب الفعلي من الطبقة عندما لا يُستخدم النموذج في سياق مضمَّن.

الصيغة

current_parent_value(field_name)

الوسائط

  • field_name - اسم حقل في النموذج الأب الحالي

أمثلة

  • current_parent_value( 'FIELD_NAME' ) → القيمة الحالية للحقل 'FIELD_NAME' في النموذج الأب.

9.2.11.2. current_value

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

الصيغة

current_value(field_name)

الوسائط

  • field_name - اسم حقل في النموذج الحالي أو صف الجدول الحالي

أمثلة

  • current_value( 'FIELD_NAME' ) → القيمة الحالية للحقل 'FIELD_NAME'.

9.2.12. دوال المطابقة التقريبية

تحتوي هذه المجموعة على دوال لإجراء مقارنات تقريبية بين القيم.

9.2.12.1. hamming_distance

تُرجع مسافة Hamming بين سلسلتين نصيتين. وهي تساوي عدد الأحرف في المواضع المتناظرة ضمن السلسلتين المدخلتين التي تختلف فيها الأحرف. يجب أن تكون السلسلتان المدخلتان بالطول نفسه، والمقارنة حساسة لحالة الأحرف.

الصيغة

hamming_distance(string1, string2)

الوسائط

  • string1 - سلسلة نصية

  • string2 - سلسلة نصية

أمثلة

  • hamming_distance('abc','xec') → 2

  • hamming_distance('abc','ABc') → 2

  • hamming_distance(upper('abc'),upper('ABC')) → 0

  • hamming_distance('abc','abcd') → NULL

9.2.12.2. levenshtein

تُرجع مسافة التحرير Levenshtein بين سلسلتين نصيتين. وهي تساوي أقل عدد من عمليات تحرير الأحرف (الإدراج أو الحذف أو الاستبدال) اللازمة لتحويل إحدى السلسلتين إلى الأخرى.

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

الصيغة

levenshtein(string1, string2)

الوسائط

  • string1 - سلسلة نصية

  • string2 - سلسلة نصية

أمثلة

  • levenshtein('kittens','mitten') → 2

  • levenshtein('Kitten','kitten') → 1

  • levenshtein(upper('Kitten'),upper('kitten')) → 0

9.2.12.3. longest_common_substring

تُرجع أطول سلسلة فرعية مشتركة بين سلسلتين نصيتين. هذه السلسلة الفرعية هي أطول سلسلة تكون سلسلة فرعية من كلتا السلسلتين المدخلتين. على سبيل المثال، أطول سلسلة فرعية مشتركة بين "ABABC" و "BABCA" هي "BABC". السلسلة الفرعية حساسة لحالة الأحرف.

الصيغة

longest_common_substring(string1, string2)

الوسائط

  • string1 - سلسلة نصية

  • string2 - سلسلة نصية

أمثلة

  • longest_common_substring('ABABC','BABCA') → 'BABC'

  • longest_common_substring('abcDeF','abcdef') → 'abc'

  • longest_common_substring(upper('abcDeF'),upper('abcdex')) → 'ABCDE'

9.2.12.4. soundex

تُرجع تمثيل Soundex لسلسلة نصية. Soundex خوارزمية مطابقة صوتية، لذا ينبغي أن تُمثَّل السلاسل ذات الأصوات المتشابهة برمز Soundex نفسه.

الصيغة

soundex(string)

الوسائط

  • string - سلسلة نصية

أمثلة

  • soundex('robert') → 'R163'

  • soundex('rupert') → 'R163'

  • soundex('rubin') → 'R150'

9.2.13. دوال عامة

تحتوي هذه المجموعة على دوال عامة متنوعة.

9.2.13.1. env

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

الصيغة

env(name)

الوسائط

  • name - اسم متغير البيئة المراد استرجاعه.

أمثلة

  • env( 'LANG' ) → 'en_US.UTF-8'

  • env( 'MY_OWN_PREFIX_VAR' ) → 'Z:'

  • env( 'I_DO_NOT_EXIST' ) → NULL

9.2.13.2. eval

تُقيِّم تعبيرًا يُمرَّر في سلسلة نصية. مفيدة لتوسيع المعاملات الديناميكية المُمرَّرة على شكل متغيرات سياق أو حقول.

الصيغة

eval(expression)

الوسائط

  • expression - سلسلة نصية تمثل تعبيرًا

أمثلة

  • eval('\'nice\'') → 'nice'

  • eval(@expression_var) → [أيًّا كانت نتيجة تقييم @expression_var…]

9.2.13.3. eval_template

تُقيِّم قالبًا يُمرَّر في سلسلة نصية. مفيدة لتوسيع المعاملات الديناميكية المُمرَّرة على شكل متغيرات سياق أو حقول.

الصيغة

eval_template(template)

الوسائط

  • template - سلسلة نصية تمثل قالبًا

أمثلة

  • eval_template('QGIS [% upper(\'rocks\') %]') → QGIS ROCKS

9.2.13.4. is_layer_visible

تُرجع TRUE إذا كانت الطبقة المحددة مرئية.

الصيغة

is_layer_visible(layer)

الوسائط

  • layer - سلسلة نصية تمثّل إما اسم طبقة أو معرّف طبقة

أمثلة

  • is_layer_visible('baseraster') → TRUE

9.2.13.5. mime_type

تُرجع نوع mime للبيانات الثنائية.

الصيغة

mime_type(bytes)

الوسائط

  • bytes - البيانات الثنائية

أمثلة

  • mime_type('<html><body></body></html>') → text/html

  • mime_type(from_base64('R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAIAOw==')) → image/gif

9.2.13.6. var

تُرجع القيمة المخزنة في متغير محدد.

الصيغة

var(name)

الوسائط

  • name - اسم متغير

أمثلة

  • var('qgis_version') → '2.12'

لمزيد من القراءة: قائمة المتغيرات الافتراضية

9.2.13.7. with_variable

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

الصيغة

with_variable(name, value, expression)

الوسائط

  • name - اسم المتغير المراد ضبطه

  • value - القيمة المراد ضبطها

  • expression - التعبير الذي سيكون المتغير متاحًا له

أمثلة

  • with_variable('my_sum', 1 + 2 + 3, @my_sum * 2 + @my_sum * 5) → 42

9.2.14. دوال الشكل الهندسي

تحتوي هذه المجموعة على دوال تعمل على كائنات الشكل الهندسي (مثل buffer و transform و $area).

9.2.14.1. affine_transform

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

الصيغة

affine_transform(geometry, delta_x, delta_y, rotation_z, scale_x, scale_y, [delta_z:=0], [delta_m:=0], [scale_z:=1], [scale_m:=1])

تشير [] إلى الوسائط الاختيارية

الوسائط

  • geometry - شكل هندسي

  • delta_x - الإزاحة على المحور x

  • delta_y - الإزاحة على المحور y

  • rotation_z - الدوران حول المحور z بالدرجات عكس اتجاه عقارب الساعة

  • scale_x - معامل تغيير المقياس على المحور x

  • scale_y - معامل تغيير المقياس على المحور y

  • delta_z - الإزاحة على المحور z

  • delta_m - الإزاحة على المحور m

  • scale_z - معامل تغيير المقياس على المحور z

  • scale_m - معامل تغيير المقياس على المحور m

أمثلة

  • geom_to_wkt(affine_transform(geom_from_wkt('LINESTRING(1 1, 2 2)'), 2, 2, 0, 1, 1)) → 'LineString (3 3, 4 4)'

  • geom_to_wkt(affine_transform(geom_from_wkt('POLYGON((0 0, 0 3, 2 2, 0 0))'), 0, 0, -90, 1, 2)) → 'Polygon ((0 0, 6 0, 4 -2, 0 0))'

  • geom_to_wkt(affine_transform(geom_from_wkt('POINT(3 1)'), 0, 0, 0, 1, 1, 5, 0)) → 'PointZ (3 1 5)'

../../../_images/affinetransform.png

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

9.2.14.2. angle_at_vertex

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

الصيغة

angle_at_vertex(geometry, vertex)

الوسائط

  • geometry - شكل هندسي خطي (linestring)

  • vertex - فهرس الرأس، بدءًا من 0؛ إذا كانت القيمة سالبة، فسيكون فهرس الرأس المحدد هو العدد الكلي للرؤوس مطروحًا منه القيمة المطلقة

أمثلة

  • angle_at_vertex(geometry:=geom_from_wkt('LineString(0 0, 10 0, 10 10)'),vertex:=1) → 45.0

9.2.14.3. apply_dash_pattern

تطبّق نمط تقطيع على شكل هندسي، وتُرجع شكلًا هندسيًا من نوع MultiLineString هو الشكل الهندسي المدخل مرسومًا على طول كل خط/حلقة بالنمط المحدد.

الصيغة

apply_dash_pattern(geometry, pattern, [start_rule:='no_rule'], [end_rule:='no_rule'], [adjustment:='both'], [pattern_offset:=0])

تشير [] إلى الوسائط الاختيارية

الوسائط

  • geometry - شكل هندسي (يقبل الخطوط (المتعددة) أو المضلعات (المتعددة)).

  • pattern - نمط التقطيع، على شكل مصفوفة من الأرقام تمثل أطوال الشرطات والفجوات. يجب أن تحتوي على عدد زوجي من العناصر.

  • start_rule - قاعدة اختيارية لتقييد بداية النمط. القيم الصالحة هي 'no_rule' و 'full_dash' و 'half_dash' و 'full_gap' و 'half_gap'.

  • end_rule - قاعدة اختيارية لتقييد نهاية النمط. القيم الصالحة هي 'no_rule' و 'full_dash' و 'half_dash' و 'full_gap' و 'half_gap'.

  • adjustment - قاعدة اختيارية تحدد أي جزء من الأنماط يُعدَّل ليتوافق مع قواعد النمط المطلوبة. القيم الصالحة هي 'both' و 'dash' و 'gap'.

  • pattern_offset - مسافة اختيارية تحدد موضعًا معينًا على طول النمط يبدأ منه.

أمثلة

  • geom_to_wkt(apply_dash_pattern(geom_from_wkt('LINESTRING(1 1, 10 1)'), array(3, 1))) → MultiLineString ((1 1, 4 1),(5 1, 8 1),(9 1, 10 1, 10 1))

  • geom_to_wkt(apply_dash_pattern(geom_from_wkt('LINESTRING(1 1, 10 1)'), array(3, 1), start_rule:='half_dash')) → MultiLineString ((1 1, 2.5 1),(3.5 1, 6.5 1),(7.5 1, 10 1, 10 1))

9.2.14.4. $area

تُرجع مساحة المعلم الحالي. تراعي المساحة التي تحسبها هذه الدالة كلًّا من إعداد الإهليلج (ellipsoid) للمشروع الحالي وإعدادات وحدة المساحة. على سبيل المثال، إذا ضُبط إهليلج للمشروع فستكون المساحة المحسوبة إهليلجية، وإذا لم يُضبط إهليلج فستكون المساحة المحسوبة مستوية.

الصيغة

$area

أمثلة

  • $area → 42

9.2.14.5. area

تُرجع مساحة كائن شكل هندسي مضلع. تكون الحسابات دائمًا مستوية في النظام المرجعي المكاني (SRS) لهذا الشكل الهندسي، وتطابق وحدات المساحة المُرجَعة وحدات SRS. ويختلف ذلك عن الحسابات التي تُجريها الدالة $area، التي تُجري حسابات إهليلجية بناءً على إعدادات الإهليلج ووحدة المساحة في المشروع.

الصيغة

area(geometry)

الوسائط

  • geometry - كائن شكل هندسي مضلع

أمثلة

  • area(geom_from_wkt('POLYGON((0 0, 4 0, 4 2, 0 2, 0 0))')) → 8.0

9.2.14.6. azimuth

تُرجع السَّمت (azimuth) المرجعي للشمال بوصفه الزاوية بالراديان مقيسةً في اتجاه عقارب الساعة من الخط الرأسي عند point_a إلى point_b.

الصيغة

azimuth(point_a, point_b)

الوسائط

  • point_a - شكل هندسي نقطي

  • point_b - شكل هندسي نقطي

أمثلة

  • degrees( azimuth( make_point(25, 45), make_point(75, 100) ) ) → 42.273689

  • degrees( azimuth( make_point(75, 100), make_point(25,45) ) ) → 222.273689

9.2.14.7. bearing

تُرجع الاتجاه (bearing) المرجعي للشمال بوصفه الزاوية بالراديان مقيسةً في اتجاه عقارب الساعة على الإهليلج من الخط الرأسي عند point_a إلى point_b.

الصيغة

bearing(point_a, point_b, [source_crs], [ellipsoid])

تشير [] إلى الوسائط الاختيارية

الوسائط

  • point_a - شكل هندسي نقطي

  • point_b - شكل هندسي نقطي

  • source_crs - سلسلة نصية أو كائن CRS اختياري يمثل CRS المصدر للنقاط. افتراضيًا يُستخدم CRS الطبقة الحالية.

  • ellipsoid - سلسلة نصية اختيارية تمثل الاختصار أو معرّف الجهة المرجعية (مثل 'EPSG:7030') للإهليلج الذي يجب قياس الاتجاه عليه. افتراضيًا يُستخدم إعداد الإهليلج للمشروع الحالي.

أمثلة

  • degrees( bearing( make_point(16198544, -4534850), make_point(18736872, -1877769), 'EPSG:3857', 'EPSG:7030') ) → 49.980071

  • degrees( bearing( make_point(18736872, -1877769), make_point(16198544, -4534850), 'EPSG:3857', 'WGS84') ) → 219.282386

9.2.14.8. boundary

تُرجع انغلاق الحد التوافقي للشكل الهندسي (أي الحد الطوبولوجي للشكل الهندسي). على سبيل المثال، سيكون للشكل الهندسي المضلع حد مكوَّن من الخطوط (linestrings) لكل حلقة في المضلع. بعض أنواع الأشكال الهندسية ليس لها حد معرَّف، مثل النقاط أو مجموعات الأشكال الهندسية، وستُرجع NULL.

الصيغة

boundary(geometry)

الوسائط

  • geometry - شكل هندسي

أمثلة

  • geom_to_wkt(boundary(geom_from_wkt('Polygon((1 1, 0 0, -1 1, 1 1))'))) → 'LineString(1 1,0 0,-1 1,1 1)'

  • geom_to_wkt(boundary(geom_from_wkt('LineString(1 1,0 0,-1 1)'))) → 'MultiPoint ((1 1),(-1 1))'

../../../_images/boundary_polygon.png

شكل 9.5 الحد (الخط الأسود المتقطع) لطبقة المضلعات المصدر

لمزيد من القراءة: خوارزمية Boundary (الحدود)

9.2.14.9. bounds

تُرجع شكلًا هندسيًا يمثل المستطيل المحيط (bounding box) لشكل هندسي مدخل. تُجرى الحسابات في النظام المرجعي المكاني لهذا الشكل الهندسي.

الصيغة

bounds(geometry)

الوسائط

  • geometry - شكل هندسي

أمثلة

  • bounds(@geometry) → المستطيل المحيط بالشكل الهندسي للمعلم الحالي

  • geom_to_wkt(bounds(geom_from_wkt('Polygon((1 1, 0 0, -1 1, 1 1))'))) → 'Polygon ((-1 0, 1 0, 1 1, -1 1, -1 0))'

../../../_images/bounding_box.png

شكل 9.6 تمثل الخطوط السوداء المستطيلات المحيطة بكل معلم مضلع

لمزيد من القراءة: خوارزمية Bounding boxes (المستطيلات المحيطة)

9.2.14.10. bounds_height

تُرجع ارتفاع المستطيل المحيط بشكل هندسي. تُجرى الحسابات في النظام المرجعي المكاني لهذا الشكل الهندسي.

الصيغة

bounds_height(geometry)

الوسائط

  • geometry - شكل هندسي

أمثلة

  • bounds_height(@geometry) → ارتفاع المستطيل المحيط بالشكل الهندسي للمعلم الحالي

  • bounds_height(geom_from_wkt('Polygon((1 1, 0 0, -1 1, 1 1))')) → 1

9.2.14.11. bounds_width

تُرجع عرض المستطيل المحيط بشكل هندسي. تُجرى الحسابات في النظام المرجعي المكاني لهذا الشكل الهندسي.

الصيغة

bounds_width(geometry)

الوسائط

  • geometry - شكل هندسي

أمثلة

  • bounds_width(@geometry) → عرض المستطيل المحيط بالشكل الهندسي للمعلم الحالي

  • bounds_width(geom_from_wkt('Polygon((1 1, 0 0, -1 1, 1 1))')) → 2

9.2.14.12. buffer

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

الصيغة

buffer(geometry, distance, [segments:=8], [cap:='round'], [join:='round'], [miter_limit:=2])

تشير [] إلى الوسائط الاختيارية

الوسائط

  • geometry - شكل هندسي

  • distance - مسافة النطاق العازل بوحدات الطبقة

  • segments - عدد القطع المستقيمة المستخدمة لتمثيل ربع دائرة عند استخدام نمط وصل دائري. يؤدي العدد الأكبر إلى نطاق عازل أنعم بعدد أكبر من العقد.

  • cap - نمط نهاية النطاق العازل. القيم الصالحة هي 'round' أو 'flat' أو 'square'

  • join - نمط الوصل للنطاق العازل. القيم الصالحة هي 'round' أو 'bevel' أو 'miter'.

  • miter_limit - حد مسافة الوصل المشطوف (miter)، يُستخدم عند ضبط نمط الوصل على 'miter'

أمثلة

  • buffer(@geometry, 10.5) → مضلع يمثل الشكل الهندسي للمعلم الحالي بنطاق عازل قدره 10.5 وحدة

../../../_images/buffer.png

شكل 9.7 النطاق العازل (باللون الأصفر) للنقاط والخط والمضلع بنطاق عازل موجب، والمضلع بنطاق عازل سالب

لمزيد من القراءة: خوارزمية Buffer (النطاق العازل)

9.2.14.13. buffer_by_m

تُنشئ نطاقًا عازلًا على طول شكل هندسي خطي يتغير فيه قطر النطاق العازل وفقًا لقيم m عند رؤوس الخط.

الصيغة

buffer_by_m(geometry, [segments:=8])

تشير [] إلى الوسائط الاختيارية

الوسائط

  • geometry - الشكل الهندسي المدخل. يجب أن يكون شكلًا هندسيًا خطيًا (متعددًا) يحتوي على قيم m.

  • segments - عدد القطع المستقيمة لتقريب منحنيات ربع الدائرة في النطاق العازل.

أمثلة

  • buffer_by_m(geometry:=geom_from_wkt('LINESTRINGM(1 2 0.5, 4 2 0.2)'),segments:=8) → نطاق عازل متغير العرض يبدأ بقطر 0.5 وينتهي بقطر 0.2 على طول الشكل الهندسي الخطي.

../../../_images/variable_buffer_m.png

شكل 9.8 إنشاء نطاق عازل لمعالم خطية باستخدام قيمة m عند الرؤوس

لمزيد من القراءة: خوارزمية نطاق عازل متغير العرض (حسب قيمة M)

9.2.14.14. centroid

تُرجع المركز الهندسي لشكل هندسي.

الصيغة

centroid(geometry)

الوسائط

  • geometry - شكل هندسي

أمثلة

  • centroid(@geometry) → شكل هندسي نقطي

../../../_images/centroids.png

شكل 9.9 تمثل النجوم الحمراء المراكز الهندسية لمعالم طبقة الإدخال.

لمزيد من القراءة: خوارزمية Centroids (المراكز الهندسية)

9.2.14.15. close_line

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

الصيغة

close_line(geometry)

الوسائط

  • geometry - شكل هندسي خطي

أمثلة

  • geom_to_wkt(close_line(geom_from_wkt('LINESTRING(0 0, 1 0, 1 1)'))) → 'LineString (0 0, 1 0, 1 1, 0 0)'

  • geom_to_wkt(close_line(geom_from_wkt('LINESTRING(0 0, 1 0, 1 1, 0 0)'))) → 'LineString (0 0, 1 0, 1 1, 0 0)'

9.2.14.16. closest_point

تُرجع النقطة الواقعة على geometry1 الأقرب إلى geometry2.

الصيغة

closest_point(geometry1, geometry2)

الوسائط

  • geometry1 - الشكل الهندسي المراد إيجاد أقرب نقطة عليه

  • geometry2 - الشكل الهندسي المراد إيجاد أقرب نقطة إليه

أمثلة

  • geom_to_wkt(closest_point(geom_from_wkt('LINESTRING (20 80, 98 190, 110 180, 50 75 )'),geom_from_wkt('POINT(100 100)'))) → 'Point(73.0769 115.384)'

9.2.14.17. collect_geometries

تجمع مجموعة من الأشكال الهندسية في كائن شكل هندسي متعدد الأجزاء.

صيغة قائمة الوسائط

تُحدَّد أجزاء الشكل الهندسي بوصفها وسائط منفصلة للدالة.

الصيغة

collect_geometries(geometry1, geometry2, ...)

الوسائط

  • geometry - شكل هندسي

أمثلة

  • geom_to_wkt(collect_geometries(make_point(1,2), make_point(3,4), make_point(5,6))) → 'MultiPoint ((1 2),(3 4),(5 6))'

صيغة المصفوفة

تُحدَّد أجزاء الشكل الهندسي على شكل مصفوفة من أجزاء الشكل الهندسي.

الصيغة

collect_geometries(array)

الوسائط

  • array - مصفوفة من كائنات الشكل الهندسي

أمثلة

  • geom_to_wkt(collect_geometries(array(make_point(1,2), make_point(3,4), make_point(5,6)))) → 'MultiPoint ((1 2),(3 4),(5 6))'

لمزيد من القراءة: خوارزمية Collect geometries (تجميع الأشكال الهندسية)

9.2.14.18. combine

تُرجع دمج شكلين هندسيين.

الصيغة

combine(geometry1, geometry2)

الوسائط

  • geometry1 - شكل هندسي

  • geometry2 - شكل هندسي

أمثلة

  • geom_to_wkt( combine( geom_from_wkt( 'LINESTRING(3 3, 4 4, 5 5)' ), geom_from_wkt( 'LINESTRING(3 3, 4 4, 2 1)' ) ) ) → 'MULTILINESTRING((4 4, 2 1), (3 3, 4 4), (4 4, 5 5))'

  • geom_to_wkt( combine( geom_from_wkt( 'LINESTRING(3 3, 4 4)' ), geom_from_wkt( 'LINESTRING(3 3, 6 6, 2 1)' ) ) ) → 'LINESTRING(3 3, 4 4, 6 6, 2 1)'

9.2.14.19. concave_hull

تُرجع مضلعًا قد يكون مقعّرًا يحتوي على جميع النقاط في الشكل الهندسي

الصيغة

concave_hull(geometry, target_percent, [allow_holes:=false])

تشير [] إلى الوسائط الاختيارية

الوسائط

  • geometry - شكل هندسي

  • target_percent - نسبة مساحة الغلاف المحدب التي يحاول الحل الاقتراب منها. تعطي قيمة target_percent تساوي 1 النتيجة نفسها التي يعطيها الغلاف المحدب. وتُنتج قيمة target_percent بين 0 و 0.99 نتيجة يُفترض أن تكون مساحتها أصغر من مساحة الغلاف المحدب.

  • allow_holes - وسيط اختياري يحدد ما إذا كان يُسمح بوجود ثقوب داخل الشكل الهندسي الناتج. القيمة الافتراضية FALSE، اضبطه على TRUE للسماح بتضمين ثقوب في الشكل الهندسي الناتج.

أمثلة

  • geom_to_wkt(concave_hull(geom_from_wkt('MULTILINESTRING((106 164,30 112,74 70,82 112,130 94,130 62,122 40,156 32,162 76,172 88),(132 178,134 148,128 136,96 128,132 108,150 130,170 142,174 110,156 96,158 90,158 88),(22 64,66 28,94 38,94 68,114 76,112 30,132 10,168 18,178 34,186 52,184 74,190 100,190 122,182 148,178 170,176 184,156 164,146 178,132 186,92 182,56 158,36 150,62 150,76 128,88 118))'), 0.99)) → 'Polygon ((30 112, 36 150, 92 182, 132 186, 176 184, 190 122, 190 100, 186 52, 178 34, 168 18, 132 10, 112 30, 66 28, 22 64, 30 112))'

../../../_images/concave_hull_threshold.png

شكل 9.10 أغلفة مقعّرة مع زيادة قيمة المعامل target_percent

لمزيد من القراءة: convex_hull، وخوارزمية Concave hull (by layer) (الغلاف المقعر حسب الطبقة)

9.2.14.20. contains

تختبر ما إذا كان شكل هندسي يحتوي على شكل آخر. تُرجع TRUE إذا وفقط إذا لم تقع أي نقطة من geometry2 خارج geometry1، ووقعت نقطة واحدة على الأقل من داخل geometry2 في داخل geometry1.

الصيغة

contains(geometry1, geometry2)

الوسائط

  • geometry1 - شكل هندسي

  • geometry2 - شكل هندسي

أمثلة

  • contains( geom_from_wkt( 'POLYGON((0 0, 0 1, 1 1, 1 0, 0 0))' ), geom_from_wkt( 'POINT(0.5 0.5 )' ) ) → TRUE

  • contains( geom_from_wkt( 'POLYGON((0 0, 0 1, 1 1, 1 0, 0 0))' ), geom_from_wkt( 'LINESTRING(3 3, 4 4, 5 5)' ) ) → FALSE

لمزيد من القراءة: overlay_contains

9.2.14.21. convex_hull

تُرجع الغلاف المحدب لشكل هندسي. وهو يمثل أصغر شكل هندسي محدب يحيط بجميع الأشكال الهندسية ضمن المجموعة.

الصيغة

convex_hull(geometry)

الوسائط

  • geometry - شكل هندسي

أمثلة

  • geom_to_wkt( convex_hull( geom_from_wkt( 'LINESTRING(3 3, 4 4, 4 10)' ) ) ) → 'POLYGON((3 3, 4 10, 4 4, 3 3))'

../../../_images/convex_hull.png

شكل 9.11 تحدد الخطوط السوداء الغلاف المحدب لكل معلم

لمزيد من القراءة: concave_hull، وخوارزمية Convex hull (الغلاف المحدب)

9.2.14.22. crosses

تختبر ما إذا كان شكل هندسي يعبر شكلًا آخر. تُرجع TRUE إذا كانت الأشكال الهندسية المعطاة تشترك في بعض النقاط الداخلية لا كلها.

الصيغة

crosses(geometry1, geometry2)

الوسائط

  • geometry1 - شكل هندسي

  • geometry2 - شكل هندسي

أمثلة

  • crosses( geom_from_wkt( 'LINESTRING(3 5, 4 4, 5 3)' ), geom_from_wkt( 'LINESTRING(3 3, 4 4, 5 5)' ) ) → TRUE

  • crosses( geom_from_wkt( 'POINT(4 5)' ), geom_from_wkt( 'LINESTRING(3 3, 4 4, 5 5)' ) ) → FALSE

لمزيد من القراءة: overlay_crosses

9.2.14.23. densify_by_count

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

الصيغة

densify_by_count(geometry, vertices)

الوسائط

  • geometry - شكل هندسي (يقبل الخطوط (المتعددة) أو المضلعات (المتعددة)).

  • vertices - عدد الرؤوس المراد إضافتها (لكل قطعة)

أمثلة

  • geom_to_wkt(densify_by_count(geom_from_wkt('LINESTRING(1 1, 10 1)'), 3)) → LineString (1 1, 3.25 1, 5.5 1, 7.75 1, 10 1)

../../../_images/densify_geometry.png

شكل 9.12 تُظهر النقاط الحمراء الرؤوس قبل التكثيف وبعده

لمزيد من القراءة: خوارزمية Densify by count (التكثيف حسب العدد)

9.2.14.24. densify_by_distance

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

الصيغة

densify_by_distance(geometry, distance)

الوسائط

  • geometry - شكل هندسي (يقبل الخطوط (المتعددة) أو المضلعات (المتعددة)).

  • distance - أقصى مسافة فاصلة بين الرؤوس في الشكل الهندسي الناتج

أمثلة

  • geom_to_wkt(densify_by_distance(geom_from_wkt('LINESTRING(1 1, 10 1)'), 4)) → LineString (1 1, 4 1, 7 1, 10 1)

../../../_images/densify_geometry_interval.png

شكل 9.13 تكثيف الشكل الهندسي بفاصل محدد

لمزيد من القراءة: خوارزمية Densify by interval (التكثيف حسب الفاصل)

9.2.14.25. difference

تُرجع شكلًا هندسيًا يمثل الجزء من geometry1 الذي لا يتقاطع مع geometry2.

الصيغة

difference(geometry1, geometry2)

الوسائط

  • geometry1 - شكل هندسي

  • geometry2 - شكل هندسي

أمثلة

  • geom_to_wkt( difference( geom_from_wkt( 'LINESTRING(3 3, 4 4, 5 5)' ), geom_from_wkt( 'LINESTRING(3 3, 4 4)' ) ) ) → 'LINESTRING(4 4, 5 5)'

../../../_images/difference.png

شكل 9.14 عملية الفرق بين طبقة إدخال ‘a’ تحتوي على معلمين وطبقة تراكب ‘b’ تحتوي على معلم واحد (يسارًا) - وينتج عنها طبقة جديدة بمعالم ‘a’ المعدَّلة (يمينًا)

لمزيد من القراءة: خوارزمية الفرق

9.2.14.26. disjoint

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

الصيغة

disjoint(geometry1, geometry2)

الوسائط

  • geometry1 - شكل هندسي

  • geometry2 - شكل هندسي

أمثلة

  • disjoint( geom_from_wkt( 'POLYGON((0 0, 0 1, 1 1, 1 0, 0 0 ))' ), geom_from_wkt( 'LINESTRING(3 3, 4 4, 5 5)' ) ) → TRUE

  • disjoint( geom_from_wkt( 'LINESTRING(3 3, 4 4, 5 5)' ), geom_from_wkt( 'POINT(4 4)' )) → FALSE

لمزيد من القراءة: overlay_disjoint

9.2.14.27. distance

تُرجع أقل مسافة (بناءً على المرجع المكاني) بين شكلين هندسيين بالوحدات المسقطة.

الصيغة

distance(geometry1, geometry2)

الوسائط

  • geometry1 - شكل هندسي

  • geometry2 - شكل هندسي

أمثلة

  • distance( geom_from_wkt( 'POINT(4 4)' ), geom_from_wkt( 'POINT(4 8)' ) ) → 4

9.2.14.28. distance_to_vertex

تُرجع المسافة على طول الشكل الهندسي حتى رأس محدد.

الصيغة

distance_to_vertex(geometry, vertex)

الوسائط

  • geometry - شكل هندسي خطي (linestring)

  • vertex - فهرس الرأس، بدءًا من 0؛ إذا كانت القيمة سالبة، فسيكون فهرس الرأس المحدد هو العدد الكلي للرؤوس مطروحًا منه القيمة المطلقة

أمثلة

  • distance_to_vertex(geometry:=geom_from_wkt('LineString(0 0, 10 0, 10 10)'),vertex:=1) → 10.0

9.2.14.29. end_point

تُرجع العقدة الأخيرة من شكل هندسي.

الصيغة

end_point(geometry)

الوسائط

  • geometry - كائن شكل هندسي

أمثلة

  • geom_to_wkt(end_point(geom_from_wkt('LINESTRING(4 0, 4 2, 0 2)'))) → 'Point (0 2)'

../../../_images/end_point.png

شكل 9.15 نقطة النهاية لمعلم خطي

لمزيد من القراءة: start_point، وخوارزمية Extract specific vertices (استخراج رؤوس محددة)

9.2.14.30. exif_geotag

تُنشئ شكلًا هندسيًا نقطيًا من وسوم الموقع الجغرافي exif لملف صورة.

الصيغة

exif_geotag(path)

الوسائط

  • path - مسار ملف صورة أو قيمة طبقة خريطة. إذا حُدِّدت قيمة طبقة خريطة فسيُستخدم ملف مصدر الطبقة.

أمثلة

  • geom_to_wkt(exif_geotag('/my/photo.jpg')) → 'Point (2 4)'

9.2.14.31. extend

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

الصيغة

extend(geometry, start_distance, end_distance)

الوسائط

  • geometry - شكل هندسي خطي (متعدد)

  • start_distance - المسافة المراد تمديد بداية الخط بها

  • end_distance - المسافة المراد تمديد نهاية الخط بها.

أمثلة

  • geom_to_wkt(extend(geom_from_wkt('LineString(0 0, 1 0, 1 1)'),1,2)) → 'LineString (-1 0, 1 0, 1 3)'

  • geom_to_wkt(extend(geom_from_wkt('MultiLineString((0 0, 1 0, 1 1), (2 2, 0 2, 0 5))'),1,2)) → 'MultiLineString ((-1 0, 1 0, 1 3),(3 2, 0 2, 0 7))'

../../../_images/extend_lines.png

شكل 9.16 تمثل الشرطات الحمراء التمديد الابتدائي والنهائي للطبقة الأصلية

لمزيد من القراءة: خوارزمية Extend lines (تمديد الخطوط)

9.2.14.32. exterior_ring

تُرجع خطًا يمثل الحلقة الخارجية لشكل هندسي مضلع. إذا لم يكن الشكل الهندسي مضلعًا فستكون النتيجة NULL.

الصيغة

exterior_ring(geometry)

الوسائط

  • geometry - شكل هندسي مضلع

أمثلة

  • geom_to_wkt(exterior_ring(geom_from_wkt('POLYGON((-1 -1, 4 0, 4 2, 0 2, -1 -1),( 0.1 0.1, 0.1 0.2, 0.2 0.2, 0.2, 0.1, 0.1 0.1))'))) → 'LineString (-1 -1, 4 0, 4 2, 0 2, -1 -1)'

../../../_images/exterior_ring.png

شكل 9.17 يمثل الخط المتقطع الحلقة الخارجية للمضلع

لمزيد من القراءة: خوارزمية Boundary (الحدود)، و interior_ring_n

9.2.14.33. extrude

تُرجع نسخة مبثوقة (extruded) من الشكل الهندسي المدخل من نوع منحنى (متعدد) أو خط (متعدد) بامتداد تحدده قيمتا x و y.

الصيغة

extrude(geometry, x, y)

الوسائط

  • geometry - شكل هندسي منحني أو خطي

  • x - الامتداد على x، قيمة رقمية

  • y - الامتداد على y، قيمة رقمية

أمثلة

  • geom_to_wkt(extrude(geom_from_wkt('LineString(1 2, 3 2, 4 3)'), 1, 2)) → 'Polygon ((1 2, 3 2, 4 3, 5 5, 4 4, 2 4, 1 2))'

  • geom_to_wkt(extrude(geom_from_wkt('MultiLineString((1 2, 3 2), (4 3, 8 3))'), 1, 2)) → 'MultiPolygon (((1 2, 3 2, 4 4, 2 4, 1 2)),((4 3, 8 3, 9 5, 5 5, 4 3)))'

../../../_images/extrude.png

شكل 9.18 توليد مضلع ببثق خط مع إزاحة في اتجاهي x و y

9.2.14.34. flip_coordinates

تُرجع نسخة من الشكل الهندسي مع تبديل الإحداثيين x و y. مفيدة لإصلاح الأشكال الهندسية التي انعكست فيها قيم خطوط العرض والطول.

الصيغة

flip_coordinates(geometry)

الوسائط

  • geometry - شكل هندسي

أمثلة

  • geom_to_wkt(flip_coordinates(make_point(1, 2))) → 'Point (2 1)'

  • geom_to_wkt(flip_coordinates(geom_from_wkt('LineString(0 2, 1 0, 1 6)'))) → 'LineString (2 0, 0 1, 6 1)'

لمزيد من القراءة: خوارزمية تبديل الإحداثيين X وY

9.2.14.35. force_polygon_ccw

تُجبر الشكل الهندسي على اتباع الاصطلاح الذي تكون فيه الحلقات الخارجية عكس اتجاه عقارب الساعة والحلقات الداخلية في اتجاه عقارب الساعة.

الصيغة

force_polygon_ccw(geometry)

الوسائط

  • geometry - شكل هندسي. تُرجَع أي أشكال هندسية غير مضلعة دون تغيير.

أمثلة

  • geom_to_wkt(force_polygon_ccw(geometry:=geom_from_wkt('Polygon ((-1 -1, 0 2, 4 2, 4 0, -1 -1))'))) → 'Polygon ((-1 -1, 4 0, 4 2, 0 2, -1 -1))'

لمزيد من القراءة: force_polygon_cw، و force_rhr

9.2.14.36. force_polygon_cw

تُجبر الشكل الهندسي على اتباع الاصطلاح الذي تكون فيه الحلقات الخارجية في اتجاه عقارب الساعة والحلقات الداخلية عكس اتجاه عقارب الساعة.

الصيغة

force_polygon_cw(geometry)

الوسائط

  • geometry - شكل هندسي. تُرجَع أي أشكال هندسية غير مضلعة دون تغيير.

أمثلة

  • geom_to_wkt(force_polygon_cw(geometry:=geom_from_wkt('POLYGON((-1 -1, 4 0, 4 2, 0 2, -1 -1))'))) → 'Polygon ((-1 -1, 0 2, 4 2, 4 0, -1 -1))'

لمزيد من القراءة: force_polygon_ccw، و force_rhr

9.2.14.37. force_rhr

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

الصيغة

force_rhr(geometry)

الوسائط

  • geometry - شكل هندسي. تُرجَع أي أشكال هندسية غير مضلعة دون تغيير.

أمثلة

  • geom_to_wkt(force_rhr(geometry:=geom_from_wkt('POLYGON((-1 -1, 4 0, 4 2, 0 2, -1 -1))'))) → 'Polygon ((-1 -1, 0 2, 4 2, 4 0, -1 -1))'

لمزيد من القراءة: خوارزمية Force right-hand-rule (فرض قاعدة اليد اليمنى)، و force_polygon_ccw، و force_polygon_cw

9.2.14.38. geom_from_gml

تُرجع شكلًا هندسيًا من تمثيل GML لشكل هندسي.

الصيغة

geom_from_gml(gml)

الوسائط

  • gml - تمثيل GML لشكل هندسي على شكل سلسلة نصية

أمثلة

  • geom_from_gml('<gml:LineString srsName="EPSG:4326"><gml:coordinates>4,4 5,5 6,6</gml:coordinates></gml:LineString>') → كائن شكل هندسي خطي

9.2.14.39. geom_from_wkb

تُرجع شكلًا هندسيًا مُنشأً من تمثيل Well-Known Binary (WKB).

الصيغة

geom_from_wkb(binary)

الوسائط

  • binary - تمثيل Well-Known Binary (WKB) لشكل هندسي (على شكل كتلة ثنائية blob)

أمثلة

  • geom_from_wkb( geom_to_wkb( make_point(4,5) ) ) → كائن شكل هندسي نقطي

9.2.14.40. geom_from_wkt

تُرجع شكلًا هندسيًا مُنشأً من تمثيل Well-Known Text (WKT).

الصيغة

geom_from_wkt(text)

الوسائط

  • text - تمثيل Well-Known Text (WKT) لشكل هندسي

أمثلة

  • geom_from_wkt( 'POINT(4 5)' ) → كائن شكل هندسي

9.2.14.41. geom_to_wkb

تُرجع تمثيل Well-Known Binary (WKB) لشكل هندسي

الصيغة

geom_to_wkb(geometry)

الوسائط

  • geometry - شكل هندسي

أمثلة

  • geom_to_wkb( @geometry ) → كتلة ثنائية (blob) تحتوي على كائن شكل هندسي

9.2.14.42. geom_to_wkt

تُرجع تمثيل Well-Known Text (WKT) للشكل الهندسي دون بيانات SRID الوصفية.

الصيغة

geom_to_wkt(geometry, [precision:=8])

تشير [] إلى الوسائط الاختيارية

الوسائط

  • geometry - شكل هندسي

  • precision - الدقة الرقمية

أمثلة

  • geom_to_wkt( make_point(6, 50) ) → 'POINT(6 50)'

  • geom_to_wkt(centroid(geom_from_wkt('Polygon((1 1, 0 0, -1 1, 1 1))'))) → 'POINT(0 0.66666667)'

  • geom_to_wkt(centroid(geom_from_wkt('Polygon((1 1, 0 0, -1 1, 1 1))')), 2) → 'POINT(0 0.67)'

9.2.14.43. $geometry

تُرجع الشكل الهندسي للمعلم الحالي. يمكن استخدامها للمعالجة مع دوال أخرى. تحذير: هذه الدالة مُهمَلة. يُوصى باستخدام المتغير البديل @geometry بدلًا منها.

الصيغة

$geometry

أمثلة

  • geom_to_wkt( $geometry ) → 'POINT(6 50)'

9.2.14.44. geometry

تُرجع الشكل الهندسي لمعلم.

الصيغة

geometry(feature)

الوسائط

  • feature - كائن معلم

أمثلة

  • geometry( @feature ) → الشكل الهندسي للمعلم الحالي. يُفضَّل استخدام @geometry.

  • geom_to_wkt( geometry( get_feature_by_id( 'streets', 1 ) ) ) → الشكل الهندسي بصيغة WKT للمعلم ذي المعرّف 1 في الطبقة "streets"، مثل 'POINT(6 50)'

  • intersects( @geometry, geometry( get_feature( 'streets', 'name', 'Main St.' ) ) ) → TRUE إذا كان المعلم الحالي يتقاطع مكانيًا مع المعلم المسمّى 'Main St.' في الطبقة "streets"

9.2.14.45. geometry_n

تُرجع شكلًا هندسيًا محددًا من مجموعة أشكال هندسية، أو NULL إذا لم يكن الشكل الهندسي المدخل مجموعة. كما تُرجع جزءًا من شكل هندسي متعدد الأجزاء.

الصيغة

geometry_n(geometry, index)

الوسائط

  • geometry - مجموعة أشكال هندسية

  • index - فهرس الشكل الهندسي المراد إرجاعه، حيث 1 هو أول شكل هندسي في المجموعة

أمثلة

  • geom_to_wkt(geometry_n(geom_from_wkt('GEOMETRYCOLLECTION(POINT(0 1), POINT(0 0), POINT(1 0), POINT(1 1))'),3)) → 'Point (1 0)'

9.2.14.46. geometry_type

تُرجع قيمة نصية تصف نوع الشكل الهندسي (Point أو Line أو Polygon)

الصيغة

geometry_type(geometry)

الوسائط

  • geometry - شكل هندسي

أمثلة

  • geometry_type( geom_from_wkt( 'LINESTRING(2 5, 3 6, 4 8)') ) → 'Line'

  • geometry_type( geom_from_wkt( 'MULTILINESTRING((2 5, 3 6, 4 8), (1 1, 0 0))') ) → 'Line'

  • geometry_type( geom_from_wkt( 'POINT(2 5)') ) → 'Point'

  • geometry_type( geom_from_wkt( 'POLYGON((-1 -1, 4 0, 4 2, 0 2, -1 -1))') ) → 'Polygon'

9.2.14.47. hausdorff_distance

تُرجع مسافة Hausdorff بين شكلين هندسيين. وهي في الأساس مقياس لمدى تشابه شكلين هندسيين أو اختلافهما، إذ تدل المسافة الأصغر على أشكال هندسية أكثر تشابهًا.

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

  • حساب المسافة بين خطوط (Linestrings) متوازية تقريبًا ومتساوية الطول تقريبًا. ويحدث هذا عند مطابقة الشبكات الخطية.

  • اختبار تشابه الأشكال الهندسية.

إذا كان التقريب الافتراضي الذي توفره هذه الطريقة غير كافٍ، فحدّد وسيط نسبة التكثيف الاختياري. يؤدي تحديد هذا الوسيط إلى تكثيف القطع قبل حساب مسافة Hausdorff المتقطعة. يحدد المعامل النسبة التي تُكثَّف بها كل قطعة؛ إذ تُقسَم كل قطعة إلى عدد من القطع الفرعية المتساوية الطول، تكون نسبتها من الطول الكلي أقرب ما يمكن إلى النسبة المعطاة. ويؤدي تقليل قيمة معامل نسبة التكثيف إلى اقتراب المسافة المُرجَعة من مسافة Hausdorff الحقيقية للأشكال الهندسية.

الصيغة

hausdorff_distance(geometry1, geometry2, [densify_fraction:=1])

تشير [] إلى الوسائط الاختيارية

الوسائط

  • geometry1 - شكل هندسي

  • geometry2 - شكل هندسي

  • densify_fraction - مقدار نسبة التكثيف

أمثلة

  • hausdorff_distance( geometry1:= geom_from_wkt('LINESTRING (0 0, 2 1)'),geometry2:=geom_from_wkt('LINESTRING (0 0, 2 0)')) → 1

  • hausdorff_distance( geom_from_wkt('LINESTRING (130 0, 0 0, 0 150)'),geom_from_wkt('LINESTRING (10 10, 10 150, 130 10)')) → 14.142135623

  • hausdorff_distance( geom_from_wkt('LINESTRING (130 0, 0 0, 0 150)'),geom_from_wkt('LINESTRING (10 10, 10 150, 130 10)'),0.5) → 70.0

9.2.14.48. inclination

تُرجع زاوية الميل مقيسةً من السمت الرأسي (0) إلى النظير (180) من point_a إلى point_b.

الصيغة

inclination(point_a, point_b)

الوسائط

  • point_a - شكل هندسي نقطي

  • point_b - شكل هندسي نقطي

أمثلة

  • inclination( make_point( 5, 10, 0 ), make_point( 5, 10, 5 ) ) → 0.0

  • inclination( make_point( 5, 10, 0 ), make_point( 5, 10, 0 ) ) → 90.0

  • inclination( make_point( 5, 10, 0 ), make_point( 50, 100, 0 ) ) → 90.0

  • inclination( make_point( 5, 10, 0 ), make_point( 5, 10, -5 ) ) → 180.0

9.2.14.49. interior_ring_n

تُرجع حلقة داخلية محددة من شكل هندسي مضلع، أو NULL إذا لم يكن الشكل الهندسي مضلعًا.

الصيغة

interior_ring_n(geometry, index)

الوسائط

  • geometry - شكل هندسي مضلع

  • index - فهرس الحلقة الداخلية المراد إرجاعها، حيث 1 هي الحلقة الداخلية الأولى

أمثلة

  • geom_to_wkt(interior_ring_n(geom_from_wkt('POLYGON((-1 -1, 4 0, 4 2, 0 2, -1 -1),(-0.1 -0.1, 0.4 0, 0.4 0.2, 0 0.2, -0.1 -0.1),(-1 -1, 4 0, 4 2, 0 2, -1 -1))'),1)) → 'LineString (-0.1 -0.1, 0.4 0, 0.4 0.2, 0 0.2, -0.1 -0.1))'

../../../_images/interior_ring_n.png

شكل 9.19 يمثل الخط المتقطع حلقة داخلية محددة من المضلع

لمزيد من القراءة: exterior_ring

9.2.14.50. intersection

تُرجع شكلًا هندسيًا يمثل الجزء المشترك بين شكلين هندسيين.

الصيغة

intersection(geometry1, geometry2)

الوسائط

  • geometry1 - شكل هندسي

  • geometry2 - شكل هندسي

أمثلة

  • geom_to_wkt( intersection( geom_from_wkt( 'LINESTRING(3 3, 4 4, 5 5)' ), geom_from_wkt( 'LINESTRING(3 3, 4 4)' ) ) ) → 'LINESTRING(3 3, 4 4)'

  • geom_to_wkt( intersection( geom_from_wkt( 'LINESTRING(3 3, 4 4, 5 5)' ), geom_from_wkt( 'MULTIPOINT(3.5 3.5, 4 5)' ) ) ) → 'POINT(3.5 3.5)'

لمزيد من القراءة: خوارزمية التقاطع

9.2.14.51. intersects

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

الصيغة

intersects(geometry1, geometry2)

الوسائط

  • geometry1 - شكل هندسي

  • geometry2 - شكل هندسي

أمثلة

  • intersects( geom_from_wkt( 'POINT(4 4)' ), geom_from_wkt( 'LINESTRING(3 3, 4 4, 5 5)' ) ) → TRUE

  • intersects( geom_from_wkt( 'POINT(4 5)' ), geom_from_wkt( 'POINT(5 5)' ) ) → FALSE

لمزيد من القراءة: overlay_intersects

9.2.14.52. intersects_bbox

تختبر ما إذا كان المستطيل المحيط بشكل هندسي يتداخل مع المستطيل المحيط بشكل هندسي آخر. تُرجع TRUE إذا تقاطعت الأشكال الهندسية مكانيًا مع المستطيل المحيط المحدد و false إذا لم تتقاطع.

الصيغة

intersects_bbox(geometry1, geometry2)

الوسائط

  • geometry1 - شكل هندسي

  • geometry2 - شكل هندسي

أمثلة

  • intersects_bbox( geom_from_wkt( 'POINT(4 5)' ), geom_from_wkt( 'LINESTRING(3 3, 4 4, 5 5)' ) ) → TRUE

  • intersects_bbox( geom_from_wkt( 'POINT(6 5)' ), geom_from_wkt( 'POLYGON((3 3, 4 4, 5 5, 3 3))' ) ) → FALSE

9.2.14.53. is_closed

تُرجع TRUE إذا كان الخط مغلقًا (تتطابق نقطتا البداية والنهاية)، أو false إذا لم يكن الخط مغلقًا. إذا لم يكن الشكل الهندسي خطًا فستكون النتيجة NULL.

الصيغة

is_closed(geometry)

الوسائط

  • geometry - شكل هندسي خطي

أمثلة

  • is_closed(geom_from_wkt('LINESTRING(0 0, 1 1, 2 2)')) → FALSE

  • is_closed(geom_from_wkt('LINESTRING(0 0, 1 1, 2 2, 0 0)')) → TRUE

9.2.14.54. is_empty

تُرجع TRUE إذا كان الشكل الهندسي فارغًا (دون إحداثيات)، و false إذا لم يكن فارغًا، و NULL إذا لم يوجد شكل هندسي. انظر أيضًا is_empty_or_null.

الصيغة

is_empty(geometry)

الوسائط

  • geometry - شكل هندسي

أمثلة

  • is_empty(geom_from_wkt('LINESTRING(0 0, 1 1, 2 2)')) → FALSE

  • is_empty(geom_from_wkt('LINESTRING EMPTY')) → TRUE

  • is_empty(geom_from_wkt('POINT(7 4)')) → FALSE

  • is_empty(geom_from_wkt('POINT EMPTY')) → TRUE

لمزيد من القراءة: is_empty_or_null

9.2.14.55. is_empty_or_null

تُرجع TRUE إذا كان الشكل الهندسي NULL أو فارغًا (دون إحداثيات)، أو false خلاف ذلك. هذه الدالة تماثل التعبير '@geometry IS NULL or is_empty(@geometry)'

الصيغة

is_empty_or_null(geometry)

الوسائط

  • geometry - شكل هندسي

أمثلة

  • is_empty_or_null(NULL) → TRUE

  • is_empty_or_null(geom_from_wkt('LINESTRING(0 0, 1 1, 2 2)')) → FALSE

  • is_empty_or_null(geom_from_wkt('LINESTRING EMPTY')) → TRUE

  • is_empty_or_null(geom_from_wkt('POINT(7 4)')) → FALSE

  • is_empty_or_null(geom_from_wkt('POINT EMPTY')) → TRUE

لمزيد من القراءة: is_empty، و NULL

9.2.14.56. is_multipart

تُرجع TRUE إذا كان الشكل الهندسي من النوع المتعدد (Multi).

الصيغة

is_multipart(geometry)

الوسائط

  • geometry - شكل هندسي

أمثلة

  • is_multipart(geom_from_wkt('MULTIPOINT ((0 0),(1 1),(2 2))')) → TRUE

  • is_multipart(geom_from_wkt('POINT (0 0)')) → FALSE

9.2.14.57. is_valid

تُرجع TRUE إذا كان الشكل الهندسي صالحًا، أي إذا كان سليم البنية في البعدين وفقًا لقواعد OGC.

الصيغة

is_valid(geometry)

الوسائط

  • geometry - شكل هندسي

أمثلة

  • is_valid(geom_from_wkt('LINESTRING(0 0, 1 1, 2 2, 0 0)')) → TRUE

  • is_valid(geom_from_wkt('LINESTRING(0 0)')) → FALSE

لمزيد من القراءة: make_valid، وخوارزمية Check validity (التحقق من الصلاحية)

9.2.14.58. $length

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

الصيغة

$length

أمثلة

  • $length → 42.4711

9.2.14.59. length

تُرجع عدد الأحرف في سلسلة نصية أو طول شكل هندسي خطي.

صيغة السلسلة النصية

تُرجع عدد الأحرف في سلسلة نصية.

الصيغة

length(string)

الوسائط

  • string - السلسلة النصية المراد حساب طولها

أمثلة

  • length('hello') → 5

صيغة الشكل الهندسي

تحسب طول كائن شكل هندسي خطي. تكون الحسابات دائمًا مستوية في النظام المرجعي المكاني (SRS) لهذا الشكل الهندسي، وتطابق وحدات الطول المُرجَع وحدات SRS. ويختلف ذلك عن الحسابات التي تُجريها الدالة $length، التي تُجري حسابات إهليلجية بناءً على إعدادات الإهليلج ووحدة المسافة في المشروع.

الصيغة

length(geometry)

الوسائط

  • geometry - كائن شكل هندسي خطي

أمثلة

  • length(geom_from_wkt('LINESTRING(0 0, 4 0)')) → 4.0

لمزيد من القراءة: straight_distance_2d

9.2.14.60. length3D

تحسب الطول ثلاثي الأبعاد لكائن شكل هندسي خطي. إذا لم يكن الشكل الهندسي كائنًا خطيًا ثلاثي الأبعاد فإنها تُرجع طوله ثنائي الأبعاد. تكون الحسابات دائمًا مستوية في النظام المرجعي المكاني (SRS) لهذا الشكل الهندسي، وتطابق وحدات الطول المُرجَع وحدات SRS. ويختلف ذلك عن الحسابات التي تُجريها الدالة $length، التي تُجري حسابات إهليلجية بناءً على إعدادات الإهليلج ووحدة المسافة في المشروع.

الصيغة

length3D(geometry)

الوسائط

  • geometry - كائن شكل هندسي خطي

أمثلة

  • length3D(geom_from_wkt('LINESTRINGZ(0 0 0, 3 0 4)')) → 5.0

9.2.14.61. line_interpolate_angle

تُرجع الزاوية الموازية للشكل الهندسي عند مسافة محددة على طول شكل هندسي خطي. الزوايا بالدرجات في اتجاه عقارب الساعة بدءًا من الشمال.

الصيغة

line_interpolate_angle(geometry, distance)

الوسائط

  • geometry - شكل هندسي خطي (linestring)

  • distance - المسافة على طول الخط التي تُستكمَل عندها الزاوية

أمثلة

  • line_interpolate_angle(geometry:=geom_from_wkt('LineString(0 0, 10 0)'),distance:=5) → 90.0

9.2.14.62. line_interpolate_point

تُرجع النقطة المستكمَلة عند مسافة محددة على طول شكل هندسي خطي.

الصيغة

line_interpolate_point(geometry, distance)

الوسائط

  • geometry - شكل هندسي خطي (linestring)

  • distance - المسافة على طول الخط المراد الاستكمال عندها

أمثلة

  • geom_to_wkt(line_interpolate_point(geometry:=geom_from_wkt('LineString(0 0, 8 0)'), distance:=5)) → 'Point (5 0)'

  • geom_to_wkt(line_interpolate_point(geometry:=geom_from_wkt('LineString(0 0, 1 1, 2 0)'), distance:=2.1)) → 'Point (1.48492424 0.51507576)'

  • geom_to_wkt(line_interpolate_point(geometry:=geom_from_wkt('LineString(0 0, 1 0)'), distance:=2)) → NULL

../../../_images/interpolated_point.png

شكل 9.20 نقطة مستكمَلة على بعد 500m من بداية الخط

لمزيد من القراءة: خوارزمية Interpolate point on line (استكمال نقطة على خط)

9.2.14.63. line_interpolate_point_by_m

تُرجع النقطة المستكمَلة عند قيمة M مطابقة على طول شكل هندسي خطي.

الصيغة

line_interpolate_point_by_m(geometry, m, [use_3d_distance:=false])

تشير [] إلى الوسائط الاختيارية

الوسائط

  • geometry - شكل هندسي خطي (linestring)

  • m - قيمة M

  • use_3d_distance - يتحكم في استخدام المسافات ثنائية الأبعاد أو ثلاثية الأبعاد بين الرؤوس أثناء الاستكمال (لا يُؤخذ هذا الخيار في الاعتبار إلا للخطوط التي تحتوي على قيم z)

أمثلة

  • geom_to_wkt(line_interpolate_point_by_m(geom_from_wkt('LineStringM(0 0 0, 10 10 10)'), m:=5)) → 'Point (5 5)'

9.2.14.64. line_locate_m

تُرجع المسافة على طول الخط المقابلة لأول قيمة M مستكمَلة مطابقة.

الصيغة

line_locate_m(geometry, m, [use_3d_distance:=false])

تشير [] إلى الوسائط الاختيارية

الوسائط

  • geometry - شكل هندسي خطي (linestring)

  • m - قيمة M

  • use_3d_distance - يتحكم في استخدام المسافات ثنائية الأبعاد أو ثلاثية الأبعاد بين الرؤوس أثناء الاستكمال (لا يُؤخذ هذا الخيار في الاعتبار إلا للخطوط التي تحتوي على قيم z)

أمثلة

  • line_locate_m(geometry:=geom_from_wkt('LineStringM(0 0 0, 10 10 10)'),m:=5) → 7.07106

9.2.14.65. line_locate_point

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

الصيغة

line_locate_point(geometry, point)

الوسائط

  • geometry - شكل هندسي خطي (linestring)

  • point - الشكل الهندسي النقطي المراد تحديد أقرب موضع إليه على الخط

أمثلة

  • line_locate_point(geometry:=geom_from_wkt('LineString(0 0, 10 0)'),point:=geom_from_wkt('Point(5 0)')) → 5.0

9.2.14.66. line_merge

تُرجع شكلًا هندسيًا من نوع LineString أو MultiLineString، دُمجت فيه أي خطوط LineStrings متصلة من الشكل الهندسي المدخل في خط واحد. ستُرجع هذه الدالة NULL إذا مُرِّر إليها شكل هندسي ليس من نوع LineString/MultiLineString.

الصيغة

line_merge(geometry)

الوسائط

  • geometry - شكل هندسي من نوع LineString/MultiLineString

أمثلة

  • geom_to_wkt(line_merge(geom_from_wkt('MULTILINESTRING((0 0, 1 1),(1 1, 2 2))'))) → 'LineString(0 0,1 1,2 2)'

  • geom_to_wkt(line_merge(geom_from_wkt('MULTILINESTRING((0 0, 1 1),(11 1, 21 2))'))) → 'MultiLineString((0 0, 1 1),(11 1, 21 2)'

9.2.14.67. line_substring

تُرجع الجزء من الشكل الهندسي الخطي (أو المنحني) الواقع بين مسافتي البداية والنهاية المحددتين (مقيستين من بداية الخط). تُستكمَل قيم Z و M خطيًا من القيم الموجودة.

الصيغة

line_substring(geometry, start_distance, end_distance)

الوسائط

  • geometry - شكل هندسي خطي أو منحني

  • start_distance - المسافة حتى بداية الجزء

  • end_distance - المسافة حتى نهاية الجزء

أمثلة

  • geom_to_wkt(line_substring(geometry:=geom_from_wkt('LineString(0 0, 10 0)'),start_distance:=2,end_distance:=6)) → 'LineString (2 0,6 0)'

../../../_images/substring.png

شكل 9.21 جزء من خط بمسافة بداية مضبوطة على 0 متر ومسافة نهاية على 250 مترًا.

لمزيد من القراءة: خوارزمية Line substring (جزء من خط)

9.2.14.68. m

تُرجع قيمة m (القياس) لشكل هندسي نقطي.

الصيغة

m(geometry)

الوسائط

  • geometry - شكل هندسي نقطي

أمثلة

  • m( geom_from_wkt( 'POINTM(2 5 4)' ) ) → 4

9.2.14.69. m_at

تسترجع إحداثي m للشكل الهندسي، أو NULL إذا لم يكن للشكل الهندسي قيمة m.

الصيغة

m_at(geometry, vertex)

الوسائط

  • geometry - كائن شكل هندسي

  • vertex - فهرس رأس الشكل الهندسي (تبدأ الفهارس من 0؛ وتُطبَّق القيم السالبة بدءًا من الفهرس الأخير، ابتداءً من -1)

أمثلة

  • m_at(geom_from_wkt('LineStringZM(0 0 0 0, 10 10 0 5, 10 10 0 0)'), 1) → 5

9.2.14.70. m_max

تُرجع أكبر قيمة m (قياس) لشكل هندسي.

الصيغة

m_max(geometry)

الوسائط

  • geometry - شكل هندسي يحتوي على قيم m

أمثلة

  • m_max( make_point_m( 0,0,1 ) ) → 1

  • m_max(make_line( make_point_m( 0,0,1 ), make_point_m( -1,-1,2 ), make_point_m( -2,-2,0 ) ) ) → 2

9.2.14.71. m_min

تُرجع أصغر قيمة m (قياس) لشكل هندسي.

الصيغة

m_min(geometry)

الوسائط

  • geometry - شكل هندسي يحتوي على قيم m

أمثلة

  • m_min( make_point_m( 0,0,1 ) ) → 1

  • m_min(make_line( make_point_m( 0,0,1 ), make_point_m( -1,-1,2 ), make_point_m( -2,-2,0 ) ) ) → 0

9.2.14.72. main_angle

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

الصيغة

main_angle(geometry)

الوسائط

  • geometry - شكل هندسي

أمثلة

  • main_angle(geom_from_wkt('Polygon ((321577 129614, 321581 129618, 321585 129615, 321581 129610, 321577 129614))')) → 38.66

9.2.14.73. make_circle

تُنشئ مضلعًا دائريًا.

الصيغة

make_circle(center, radius, [segments:=36])

تشير [] إلى الوسائط الاختيارية

الوسائط

  • center - النقطة المركزية للدائرة

  • radius - نصف قطر الدائرة

  • segments - وسيط اختياري لتقسيم المضلع إلى قطع. القيمة الافتراضية 36

أمثلة

  • geom_to_wkt(make_circle(make_point(10,10), 5, 4)) → 'Polygon ((10 15, 15 10, 10 5, 5 10, 10 15))'

  • geom_to_wkt(make_circle(make_point(10,10,5), 5, 4)) → 'PolygonZ ((10 15 5, 15 10 5, 10 5 5, 5 10 5, 10 15 5))'

  • geom_to_wkt(make_circle(make_point(10,10,5,30), 5, 4)) → 'PolygonZM ((10 15 5 30, 15 10 5 30, 10 5 5 30, 5 10 5 30, 10 15 5 30))'

9.2.14.74. make_ellipse

تُنشئ مضلعًا إهليلجيًا (قطعًا ناقصًا).

الصيغة

make_ellipse(center, semi_major_axis, semi_minor_axis, azimuth, [segments:=36])

تشير [] إلى الوسائط الاختيارية

الوسائط

  • center - النقطة المركزية للقطع الناقص

  • semi_major_axis - نصف المحور الأكبر للقطع الناقص

  • semi_minor_axis - نصف المحور الأصغر للقطع الناقص

  • azimuth - اتجاه القطع الناقص

  • segments - وسيط اختياري لتقسيم المضلع إلى قطع. القيمة الافتراضية 36

أمثلة

  • geom_to_wkt(make_ellipse(make_point(10,10), 5, 2, 90, 4)) → 'Polygon ((15 10, 10 8, 5 10, 10 12, 15 10))'

  • geom_to_wkt(make_ellipse(make_point(10,10,5), 5, 2, 90, 4)) → 'PolygonZ ((15 10 5, 10 8 5, 5 10 5, 10 12 5, 15 10 5))'

  • geom_to_wkt(make_ellipse(make_point(10,10,5,30), 5, 2, 90, 4)) → 'PolygonZM ((15 10 5 30, 10 8 5 30, 5 10 5 30, 10 12 5 30, 15 10 5 30))'

9.2.14.75. make_line

تُنشئ شكلًا هندسيًا خطيًا من سلسلة من الأشكال الهندسية النقطية.

صيغة قائمة الوسائط

تُحدَّد رؤوس الخط بوصفها وسائط منفصلة للدالة.

الصيغة

make_line(point1, point2, ...)

الوسائط

  • point - شكل هندسي نقطي (أو مصفوفة من النقاط)

أمثلة

  • geom_to_wkt(make_line(make_point(2,4),make_point(3,5))) → 'LineString (2 4, 3 5)'

  • geom_to_wkt(make_line(make_point(2,4),make_point(3,5),make_point(9,7))) → 'LineString (2 4, 3 5, 9 7)'

صيغة المصفوفة

تُحدَّد رؤوس الخط على شكل مصفوفة من النقاط.

الصيغة

make_line(array)

الوسائط

  • array - مصفوفة من النقاط

أمثلة

  • geom_to_wkt(make_line(array(make_point(2,4),make_point(3,5),make_point(9,7)))) → 'LineString (2 4, 3 5, 9 7)'

9.2.14.76. make_point

تُنشئ شكلًا هندسيًا نقطيًا من قيمتي x و y (وقيمتي z و m الاختياريتين).

الصيغة

make_point(x, y, [z], [m])

تشير [] إلى الوسائط الاختيارية

الوسائط

  • x - الإحداثي x للنقطة

  • y - الإحداثي y للنقطة

  • z - الإحداثي z الاختياري للنقطة

  • m - قيمة m الاختيارية للنقطة

أمثلة

  • geom_to_wkt(make_point(2,4)) → 'Point (2 4)'

  • geom_to_wkt(make_point(2,4,6)) → 'PointZ (2 4 6)'

  • geom_to_wkt(make_point(2,4,6,8)) → 'PointZM (2 4 6 8)'

9.2.14.77. make_point_m

تُنشئ شكلًا هندسيًا نقطيًا من إحداثيي x و y وقيمة m.

الصيغة

make_point_m(x, y, m)

الوسائط

  • x - الإحداثي x للنقطة

  • y - الإحداثي y للنقطة

  • m - قيمة m للنقطة

أمثلة

  • geom_to_wkt(make_point_m(2,4,6)) → 'PointM (2 4 6)'

9.2.14.78. make_polygon

تُنشئ شكلًا هندسيًا مضلعًا من حلقة خارجية وسلسلة اختيارية من الأشكال الهندسية للحلقات الداخلية.

الصيغة

make_polygon(outerRing, [innerRing1], [innerRing2], ...)

تشير [] إلى الوسائط الاختيارية

الوسائط

  • outerRing - شكل هندسي خطي مغلق للحلقة الخارجية للمضلع

  • innerRing - شكل هندسي خطي مغلق اختياري للحلقة الداخلية

أمثلة

  • geom_to_wkt(make_polygon(geom_from_wkt('LINESTRING( 0 0, 0 1, 1 1, 1 0, 0 0 )'))) → 'Polygon ((0 0, 0 1, 1 1, 1 0, 0 0))'

  • geom_to_wkt(make_polygon(geom_from_wkt('LINESTRING( 0 0, 0 1, 1 1, 1 0, 0 0 )'),geom_from_wkt('LINESTRING( 0.1 0.1, 0.1 0.2, 0.2 0.2, 0.2 0.1, 0.1 0.1 )'),geom_from_wkt('LINESTRING( 0.8 0.8, 0.8 0.9, 0.9 0.9, 0.9 0.8, 0.8 0.8 )'))) → 'Polygon ((0 0, 0 1, 1 1, 1 0, 0 0),(0.1 0.1, 0.1 0.2, 0.2 0.2, 0.2 0.1, 0.1 0.1),(0.8 0.8, 0.8 0.9, 0.9 0.9, 0.9 0.8, 0.8 0.8))'

9.2.14.79. make_rectangle_3points

تُنشئ مستطيلًا من 3 نقاط.

الصيغة

make_rectangle_3points(point1, point2, point3, [option:=0])

تشير [] إلى الوسائط الاختيارية

الوسائط

  • point1 - النقطة الأولى.

  • point2 - النقطة الثانية.

  • point3 - النقطة الثالثة.

  • option - وسيط اختياري لإنشاء المستطيل. القيمة الافتراضية 0. يمكن أن تكون القيمة 0 (مسافة) أو 1 (إسقاط). خيار المسافة: المسافة الثانية تساوي المسافة بين النقطتين الثانية والثالثة. خيار الإسقاط: المسافة الثانية تساوي مسافة الإسقاط العمودي للنقطة الثالثة على القطعة أو على امتدادها.

أمثلة

  • geom_to_wkt(make_rectangle_3points(make_point(0, 0), make_point(0,5), make_point(3, 3), 0)) → 'Polygon ((0 0, 0 5, 3.60555128 5, 3.60555128 0, 0 0))'

  • geom_to_wkt(make_rectangle_3points(make_point(0, 0), make_point(0,5), make_point(3, 3), 1)) → 'Polygon ((0 0, 0 5, 3 5, 3 0, 0 0))'

9.2.14.80. make_regular_polygon

تُنشئ مضلعًا منتظمًا.

الصيغة

make_regular_polygon(center, radius, number_sides, [circle:=0])

تشير [] إلى الوسائط الاختيارية

الوسائط

  • center - مركز المضلع المنتظم

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

  • number_sides - عدد أضلاع المضلع المنتظم

  • circle - وسيط اختياري لإنشاء المضلع المنتظم. القيمة الافتراضية 0. يمكن أن تكون القيمة 0 (داخل الدائرة) أو 1 (محيط بالدائرة)

أمثلة

  • geom_to_wkt(make_regular_polygon(make_point(0,0), make_point(0,5), 5)) → 'Polygon ((0 5, 4.76 1.55, 2.94 -4.05, -2.94 -4.05, -4.76 1.55, 0 5))'

  • geom_to_wkt(make_regular_polygon(make_point(0,0), project(make_point(0,0), 4.0451, radians(36)), 5)) → 'Polygon ((0 5, 4.76 1.55, 2.94 -4.05, -2.94 -4.05, -4.76 1.55, 0 5))'

9.2.14.81. make_square

تُنشئ مربعًا من قطر.

الصيغة

make_square(point1, point2)

الوسائط

  • point1 - النقطة الأولى من القطر

  • point2 - النقطة الأخيرة من القطر

أمثلة

  • geom_to_wkt(make_square( make_point(0,0), make_point(5,5))) → 'Polygon ((0 0, -0 5, 5 5, 5 0, 0 0))'

  • geom_to_wkt(make_square( make_point(5,0), make_point(5,5))) → 'Polygon ((5 0, 2.5 2.5, 5 5, 7.5 2.5, 5 0))'

9.2.14.82. make_triangle

تُنشئ مضلعًا مثلثًا.

الصيغة

make_triangle(point1, point2, point3)

الوسائط

  • point1 - النقطة الأولى من المثلث

  • point2 - النقطة الثانية من المثلث

  • point3 - النقطة الثالثة من المثلث

أمثلة

  • geom_to_wkt(make_triangle(make_point(0,0), make_point(5,5), make_point(0,10))) → 'Triangle ((0 0, 5 5, 0 10, 0 0))'

  • geom_to_wkt(boundary(make_triangle(make_point(0,0), make_point(5,5), make_point(0,10)))) → 'LineString (0 0, 5 5, 0 10, 0 0)'

9.2.14.83. make_valid

تُرجع شكلًا هندسيًا صالحًا، أو شكلًا هندسيًا فارغًا إذا تعذّر جعل الشكل الهندسي صالحًا.

الصيغة

make_valid(geometry, [method:='structure'], [keep_collapsed:=false])

تشير [] إلى الوسائط الاختيارية

الوسائط

  • geometry - شكل هندسي

  • method - خوارزمية الإصلاح. يمكن أن تكون 'structure' أو 'linework'. يجمع الخيار 'linework' جميع الحلقات في مجموعة من الخطوط ذات العقد ثم يستخرج مضلعات صالحة من هذه الخطوط. أما الطريقة 'structure' فتجعل جميع الحلقات صالحة أولًا ثم تدمج الأغلفة الخارجية وتطرح الثقوب منها لتوليد نتيجة صالحة. وتفترض أن الثقوب والأغلفة مصنَّفة تصنيفًا صحيحًا.

  • keep_collapsed - إذا ضُبط على true فسيُحتفظ بالمكونات التي انهارت إلى بُعد أدنى. على سبيل المثال، حلقة تنهار إلى خط، أو خط ينهار إلى نقطة.

أمثلة

  • geom_to_wkt(make_valid(geom_from_wkt('POLYGON((3 2, 4 1, 5 8, 3 2, 4 2))'))) → 'Polygon ((3 2, 5 8, 4 1, 3 2))'

  • geom_to_wkt(make_valid(geom_from_wkt('POLYGON((3 2, 4 1, 5 8, 3 2, 4 2))'), 'linework')) → 'GeometryCollection (Polygon ((5 8, 4 1, 3 2, 5 8)),LineString (3 2, 4 2))'

  • geom_to_wkt(make_valid(geom_from_wkt('POLYGON((3 2, 4 1, 5 8))'), method:='linework')) → 'Polygon ((3 2, 4 1, 5 8, 3 2))'

  • make_valid(geom_from_wkt('LINESTRING(0 0)')) → شكل هندسي فارغ

للمزيد: is_valid، وخوارزمية Fix geometries (إصلاح الأشكال الهندسية)

9.2.14.84. minimal_circle

تُعيد أصغر دائرة محيطة بالشكل الهندسي، وهي أصغر دائرة تحيط بجميع الأشكال الهندسية ضمن المجموعة.

الصيغة

minimal_circle(geometry, [segments:=36])

تشير [] إلى الوسائط الاختيارية

الوسائط

  • geometry - شكل هندسي

  • segments - وسيط اختياري لتقسيم المضلع إلى قطع. القيمة الافتراضية 36

أمثلة

  • geom_to_wkt( minimal_circle( geom_from_wkt( 'LINESTRING(0 5, 0 -5, 2 1)' ), 4 ) ) → 'Polygon ((0 5, 5 -0, -0 -5, -5 0, 0 5))'

  • geom_to_wkt( minimal_circle( geom_from_wkt( 'MULTIPOINT(1 2, 3 4, 3 2)' ), 4 ) ) → 'Polygon ((3 4, 3 2, 1 2, 1 4, 3 4))'

../../../_images/minimum_enclosing_circles.png

شكل 9.22 أصغر دائرة محيطة بكل معلم

للمزيد: خوارزمية Minimum enclosing circles (أصغر الدوائر المحيطة)

9.2.14.85. nodes_to_points

تُعيد شكلًا هندسيًا متعدد النقاط يتكوّن من كل عقدة في الشكل الهندسي المُدخَل.

الصيغة

nodes_to_points(geometry, [ignore_closing_nodes:=false])

تشير [] إلى الوسائط الاختيارية

الوسائط

  • geometry - كائن شكل هندسي

  • ignore_closing_nodes - وسيط اختياري يحدد ما إذا كانت العقد المكرّرة التي تُغلق الخطوط أو حلقات المضلعات ستُضمَّن. القيمة الافتراضية false، اضبطه على true لتجنّب تضمين هذه العقد المكرّرة في المجموعة الناتجة.

أمثلة

  • geom_to_wkt(nodes_to_points(geom_from_wkt('LINESTRING(0 0, 1 1, 2 2)'))) → 'MultiPoint ((0 0),(1 1),(2 2))'

  • geom_to_wkt(nodes_to_points(geom_from_wkt('POLYGON((-1 -1, 4 0, 4 2, 0 2, -1 -1))'),true)) → 'MultiPoint ((-1 -1),(4 0),(4 2),(0 2))'

../../../_images/extract_nodes.png

شكل 9.23 معلم متعدد النقاط مستخرج من الرؤوس

للمزيد: خوارزمية Extract vertices (استخراج الرؤوس)

9.2.14.86. num_geometries

تُعيد عدد الأشكال الهندسية في مجموعة أشكال هندسية، أو عدد الأجزاء في شكل هندسي متعدد الأجزاء. تُعيد الدالة NULL إذا لم يكن الشكل الهندسي المُدخَل مجموعة.

الصيغة

num_geometries(geometry)

الوسائط

  • geometry - مجموعة أشكال هندسية أو شكل هندسي متعدد الأجزاء

أمثلة

  • num_geometries(geom_from_wkt('GEOMETRYCOLLECTION(POINT(0 1), POINT(0 0), POINT(1 0), POINT(1 1))')) → 4

  • num_geometries(geom_from_wkt('MULTIPOINT((0 1), (0 0), (1 0))')) → 3

9.2.14.87. num_interior_rings

تُعيد عدد الحلقات الداخلية في مضلع أو مجموعة أشكال هندسية، أو NULL إذا لم يكن الشكل الهندسي المُدخَل مضلعًا أو مجموعة.

الصيغة

num_interior_rings(geometry)

الوسائط

  • geometry - الشكل الهندسي المُدخَل

أمثلة

  • num_interior_rings(geom_from_wkt('POLYGON((-1 -1, 4 0, 4 2, 0 2, -1 -1),(-0.1 -0.1, 0.4 0, 0.4 0.2, 0 0.2, -0.1 -0.1))')) → 1

9.2.14.88. num_points

تُعيد عدد الرؤوس في الشكل الهندسي.

الصيغة

num_points(geometry)

الوسائط

  • geometry - شكل هندسي

أمثلة

  • num_points(@geometry) → عدد الرؤوس في الشكل الهندسي للمعلم الحالي

9.2.14.89. num_rings

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

الصيغة

num_rings(geometry)

الوسائط

  • geometry - الشكل الهندسي المُدخَل

أمثلة

  • num_rings(geom_from_wkt('POLYGON((-1 -1, 4 0, 4 2, 0 2, -1 -1),(-0.1 -0.1, 0.4 0, 0.4 0.2, 0 0.2, -0.1 -0.1))')) → 2

9.2.14.90. offset_curve

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

الصيغة

offset_curve(geometry, distance, [segments:=8], [join:=1], [miter_limit:=2.0])

تشير [] إلى الوسائط الاختيارية

الوسائط

  • geometry - شكل هندسي خطي (متعدد)

  • distance - مسافة الإزاحة. القيم الموجبة تُزاح إلى يسار الخطوط، والسالبة إلى يمينها

  • segments - عدد المقاطع المستخدمة لتمثيل ربع دائرة عند استخدام نمط الوصل المستدير. يؤدي العدد الأكبر إلى خط أنعم بعقد أكثر.

  • join - نمط وصل الزوايا، حيث 1 = مستدير، 2 = حاد (miter)، 3 = مشطوف (bevel)

  • miter_limit - حدّ نسبة الوصل الحاد المستخدم مع الزوايا شديدة الحدة (عند استخدام الوصل الحاد فقط)

أمثلة

  • offset_curve(@geometry, 10.5) → خط مُزاح إلى اليسار بمقدار 10.5 وحدة

  • offset_curve(@geometry, -10.5) → خط مُزاح إلى اليمين بمقدار 10.5 وحدة

  • offset_curve(@geometry, 10.5, segments:=16, join:=1) → خط مُزاح إلى اليسار بمقدار 10.5 وحدة، مع استخدام مقاطع أكثر للحصول على منحنى أنعم

  • offset_curve(@geometry, 10.5, join:=3) → خط مُزاح إلى اليسار بمقدار 10.5 وحدة، مع استخدام وصل مشطوف

../../../_images/offset_lines.png

شكل 9.24 بالأزرق الطبقة المصدر، وبالأحمر الطبقة المُزاحة

للمزيد: خوارزمية Offset lines (إزاحة الخطوط)

9.2.14.91. order_parts

ترتّب أجزاء الشكل الهندسي المتعدد (MultiGeometry) وفق معيار محدد

الصيغة

order_parts(geometry, orderby, [ascending:=true])

تشير [] إلى الوسائط الاختيارية

الوسائط

  • geometry - شكل هندسي من نوع متعدد

  • orderby - سلسلة نصية لتعبير يحدد معيار الترتيب

  • ascending - قيمة منطقية، True للترتيب التصاعدي وFalse للتنازلي

أمثلة

  • geom_to_wkt(order_parts(geom_from_wkt('MultiPolygon (((1 1, 5 1, 5 5, 1 5, 1 1)),((1 1, 9 1, 9 9, 1 9, 1 1)))'), 'area(@geometry)', False)) → 'MultiPolygon (((1 1, 9 1, 9 9, 1 9, 1 1)),((1 1, 5 1, 5 5, 1 5, 1 1)))'

  • geom_to_wkt(order_parts(geom_from_wkt('LineString(1 2, 3 2, 4 3)'), '1', True)) → 'LineString(1 2, 3 2, 4 3)'

9.2.14.92. oriented_bbox

تُعيد شكلًا هندسيًا يمثل أصغر مستطيل محيط موجَّه بالشكل الهندسي المُدخَل.

الصيغة

oriented_bbox(geometry)

الوسائط

  • geometry - شكل هندسي

أمثلة

  • geom_to_wkt( oriented_bbox( geom_from_wkt( 'MULTIPOINT(1 2, 3 4, 3 2)' ) ) ) → 'Polygon ((3 2, 3 4, 1 4, 1 2, 3 2))'

../../../_images/oriented_minimum_bounding_box.png

شكل 9.25 أصغر مستطيل محيط موجَّه

للمزيد: خوارزمية أصغر مستطيل محيط موجَّه

9.2.14.93. overlaps

تختبر ما إذا كان شكل هندسي يتداخل مع آخر. تُعيد TRUE إذا كان الشكلان يشتركان في حيّز، ولهما البُعد نفسه، ولكن لا يحتوي أحدهما الآخر بالكامل.

الصيغة

overlaps(geometry1, geometry2)

الوسائط

  • geometry1 - شكل هندسي

  • geometry2 - شكل هندسي

أمثلة

  • overlaps( geom_from_wkt( 'LINESTRING(3 5, 4 4, 5 5, 5 3)' ), geom_from_wkt( 'LINESTRING(3 3, 4 4, 5 5)' ) ) → TRUE

  • overlaps( geom_from_wkt( 'LINESTRING(0 0, 1 1)' ), geom_from_wkt( 'LINESTRING(3 3, 4 4, 5 5)' ) ) → FALSE

9.2.14.94. overlay_contains

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

اقرأ المزيد عن شرط GEOS "Contains" الأساسي، كما هو موصوف في دالة PostGIS ST_Contains.

الصيغة

overlay_contains(layer, [expression], [filter], [limit], [cache:=false])

تشير [] إلى الوسائط الاختيارية

الوسائط

  • layer - الطبقة التي يُفحص التراكب معها

  • expression - تعبير اختياري يُقيَّم على معالم الطبقة الهدف. إن لم يُحدَّد، تُعيد الدالة قيمة منطقية فقط تشير إلى وجود تطابق واحد على الأقل.

  • filter - تعبير اختياري لتصفية المعالم الهدف المراد فحصها. إن لم يُحدَّد، تُفحص جميع المعالم.

  • limit - عدد صحيح اختياري لتحديد عدد المعالم المتطابقة. إن لم يُحدَّد، تُعاد جميع المعالم المتطابقة.

  • cache - اضبطه على true لبناء فهرس مكاني محلي (وهذا غير مرغوب في أغلب الأحيان، إلا إذا كنت تعمل مع مزوّد بيانات بطيء بشكل خاص)

أمثلة

  • overlay_contains('regions') → TRUE إذا كان المعلم الحالي يحتوي مكانيًا على منطقة

  • overlay_contains('regions', filter:= population > 10000) → TRUE إذا كان المعلم الحالي يحتوي مكانيًا على منطقة يزيد عدد سكانها على 10000

  • overlay_contains('regions', name) → مصفوفة من الأسماء للمناطق التي يحتويها المعلم الحالي

  • array_to_string(overlay_contains('regions', name)) → سلسلة نصية على شكل قائمة أسماء مفصولة بفواصل للمناطق التي يحتويها المعلم الحالي

  • array_sort(overlay_contains(layer:='regions', expression:="name", filter:= population > 10000)) → مصفوفة مرتّبة من الأسماء للمناطق التي يحتويها المعلم الحالي ويزيد عدد سكانها على 10000

  • overlay_contains(layer:='regions', expression:= geom_to_wkt(@geometry), limit:=2) → مصفوفة من الأشكال الهندسية (بصيغة WKT) لمنطقتين على الأكثر يحتويهما المعلم الحالي

للمزيد: contains، و معالجة المصفوفات، وخوارزمية التحديد حسب الموقع

9.2.14.95. overlay_crosses

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

اقرأ المزيد عن شرط GEOS "Crosses" الأساسي، كما هو موصوف في دالة PostGIS ST_Crosses.

الصيغة

overlay_crosses(layer, [expression], [filter], [limit], [cache:=false])

تشير [] إلى الوسائط الاختيارية

الوسائط

  • layer - الطبقة التي يُفحص التراكب معها

  • expression - تعبير اختياري يُقيَّم على معالم الطبقة الهدف. إن لم يُحدَّد، تُعيد الدالة قيمة منطقية فقط تشير إلى وجود تطابق واحد على الأقل.

  • filter - تعبير اختياري لتصفية المعالم الهدف المراد فحصها. إن لم يُحدَّد، تُفحص جميع المعالم.

  • limit - عدد صحيح اختياري لتحديد عدد المعالم المتطابقة. إن لم يُحدَّد، تُعاد جميع المعالم المتطابقة.

  • cache - اضبطه على true لبناء فهرس مكاني محلي (وهذا غير مرغوب في أغلب الأحيان، إلا إذا كنت تعمل مع مزوّد بيانات بطيء بشكل خاص)

أمثلة

  • overlay_crosses('regions') → TRUE إذا كان المعلم الحالي يعبر مكانيًا منطقة

  • overlay_crosses('regions', filter:= population > 10000) → TRUE إذا كان المعلم الحالي يعبر مكانيًا منطقة يزيد عدد سكانها على 10000

  • overlay_crosses('regions', name) → مصفوفة من الأسماء للمناطق التي يعبرها المعلم الحالي

  • array_to_string(overlay_crosses('regions', name)) → سلسلة نصية على شكل قائمة أسماء مفصولة بفواصل للمناطق التي يعبرها المعلم الحالي

  • array_sort(overlay_crosses(layer:='regions', expression:="name", filter:= population > 10000)) → مصفوفة مرتّبة من الأسماء للمناطق التي يعبرها المعلم الحالي ويزيد عدد سكانها على 10000

  • overlay_crosses(layer:='regions', expression:= geom_to_wkt(@geometry), limit:=2) → مصفوفة من الأشكال الهندسية (بصيغة WKT) لمنطقتين على الأكثر يعبرهما المعلم الحالي

للمزيد: crosses، و معالجة المصفوفات، وخوارزمية التحديد حسب الموقع

9.2.14.96. overlay_disjoint

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

اقرأ المزيد عن شرط GEOS "Disjoint" الأساسي، كما هو موصوف في دالة PostGIS ST_Disjoint.

الصيغة

overlay_disjoint(layer, [expression], [filter], [limit], [cache:=false])

تشير [] إلى الوسائط الاختيارية

الوسائط

  • layer - الطبقة التي يُفحص التراكب معها

  • expression - تعبير اختياري يُقيَّم على معالم الطبقة الهدف. إن لم يُحدَّد، تُعيد الدالة قيمة منطقية فقط تشير إلى وجود تطابق واحد على الأقل.

  • filter - تعبير اختياري لتصفية المعالم الهدف المراد فحصها. إن لم يُحدَّد، تُفحص جميع المعالم.

  • limit - عدد صحيح اختياري لتحديد عدد المعالم المتطابقة. إن لم يُحدَّد، تُعاد جميع المعالم المتطابقة.

  • cache - اضبطه على true لبناء فهرس مكاني محلي (وهذا غير مرغوب في أغلب الأحيان، إلا إذا كنت تعمل مع مزوّد بيانات بطيء بشكل خاص)

أمثلة

  • overlay_disjoint('regions') → TRUE إذا كان المعلم الحالي منفصلًا مكانيًا عن جميع المناطق

  • overlay_disjoint('regions', filter:= population > 10000) → TRUE إذا كان المعلم الحالي منفصلًا مكانيًا عن جميع المناطق التي يزيد عدد سكانها على 10000

  • overlay_disjoint('regions', name) → مصفوفة من الأسماء للمناطق المنفصلة مكانيًا عن المعلم الحالي

  • array_to_string(overlay_disjoint('regions', name)) → سلسلة نصية على شكل قائمة أسماء مفصولة بفواصل للمناطق المنفصلة مكانيًا عن المعلم الحالي

  • array_sort(overlay_disjoint(layer:='regions', expression:="name", filter:= population > 10000)) → مصفوفة مرتّبة من الأسماء للمناطق المنفصلة مكانيًا عن المعلم الحالي والتي يزيد عدد سكانها على 10000

  • overlay_disjoint(layer:='regions', expression:= geom_to_wkt(@geometry), limit:=2) → مصفوفة من الأشكال الهندسية (بصيغة WKT) لمنطقتين على الأكثر منفصلتين مكانيًا عن المعلم الحالي

للمزيد: disjoint، و معالجة المصفوفات، وخوارزمية التحديد حسب الموقع

9.2.14.97. overlay_equals

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

الصيغة

overlay_equals(layer, [expression], [filter], [limit], [cache:=false])

تشير [] إلى الوسائط الاختيارية

الوسائط

  • layer - الطبقة التي يُفحص التراكب معها

  • expression - تعبير اختياري يُقيَّم على معالم الطبقة الهدف. إن لم يُحدَّد، تُعيد الدالة قيمة منطقية فقط تشير إلى وجود تطابق واحد على الأقل.

  • filter - تعبير اختياري لتصفية المعالم الهدف المراد فحصها. إن لم يُحدَّد، تُفحص جميع المعالم.

  • limit - عدد صحيح اختياري لتحديد عدد المعالم المتطابقة. إن لم يُحدَّد، تُعاد جميع المعالم المتطابقة.

  • cache - اضبطه على true لبناء فهرس مكاني محلي (وهذا غير مرغوب في أغلب الأحيان، إلا إذا كنت تعمل مع مزوّد بيانات بطيء بشكل خاص)

أمثلة

  • overlay_equals('regions') → TRUE إذا كان الشكل الهندسي للمعلم الحالي مطابقًا تمامًا للشكل الهندسي لمنطقة ما

  • overlay_equals('regions', filter:= population > 10000) → TRUE إذا كان الشكل الهندسي للمعلم الحالي مطابقًا تمامًا للشكل الهندسي لمنطقة يزيد عدد سكانها على 10000

  • overlay_equals('regions', name) → مصفوفة من الأسماء للمناطق المساوية تمامًا للمعلم الحالي

  • array_to_string(overlay_equals('regions', name)) → سلسلة نصية على شكل قائمة أسماء مفصولة بفواصل للمناطق المساوية تمامًا للمعلم الحالي

  • array_sort(overlay_equals(layer:='regions', expression:="name", filter:= population > 10000)) → مصفوفة مرتّبة من الأسماء للمناطق المساوية تمامًا للمعلم الحالي والتي يزيد عدد سكانها على 10000

  • overlay_equals(layer:='regions', expression:= geom_to_wkt(@geometry), limit:=2) → مصفوفة من الأشكال الهندسية (بصيغة WKT) لمنطقتين على الأكثر مساويتين تمامًا للمعلم الحالي

ملاحظة

تتطلب هذه الدالة تساويًا تامًا بين الأشكال الهندسية، أي إن الشكلين 'LINESTRING( 0 0, 1 1 )' و 'LINESTRING( 1 1, 0 0 )' مختلفان.

للمزيد: معالجة المصفوفات، وخوارزمية التحديد حسب الموقع

9.2.14.98. overlay_intersects

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

اقرأ المزيد عن شرط GEOS "Intersects" الأساسي، كما هو موصوف في دالة PostGIS ST_Intersects.

الصيغة

overlay_intersects(layer, [expression], [filter], [limit], [cache:=false], [min_overlap], [min_inscribed_circle_radius], [return_details], [sort_by_intersection_size])

تشير [] إلى الوسائط الاختيارية

الوسائط

  • layer - الطبقة التي يُفحص التراكب معها

  • expression - تعبير اختياري يُقيَّم على معالم الطبقة الهدف. إن لم يُحدَّد، تُعيد الدالة قيمة منطقية فقط تشير إلى وجود تطابق واحد على الأقل.

  • filter - تعبير اختياري لتصفية المعالم الهدف المراد فحصها. إن لم يُحدَّد، تُفحص جميع المعالم.

  • limit - عدد صحيح اختياري لتحديد عدد المعالم المتطابقة. إن لم يُحدَّد، تُعاد جميع المعالم المتطابقة.

  • cache - اضبطه على true لبناء فهرس مكاني محلي (وهذا غير مرغوب في أغلب الأحيان، إلا إذا كنت تعمل مع مزوّد بيانات بطيء بشكل خاص)

  • min_overlap - يحدد مرشّح استبعاد اختياريًا:

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

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

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

    اقرأ المزيد عن شرط GEOS الأساسي، كما هو موصوف في دالة PostGIS ST_MaximumInscribedCircle.

    يتطلب هذا الوسيط GEOS >= 3.9.

  • return_details - اضبطه على true لإعادة قائمة من الخرائط (maps) تحتوي (أسماء المفاتيح بين علامتي اقتباس) على 'id' المعلم، و 'result' التعبير، وقيمة 'overlap' (لأكبر عنصر في حالة الأشكال متعددة الأجزاء). ويُعاد أيضًا 'radius' أكبر دائرة داخلية عندما تكون الطبقة الهدف مضلعية. صالح فقط عند استخدامه مع الوسيط expression

  • sort_by_intersection_size - صالح فقط عند استخدامه مع تعبير؛ اضبطه على 'des' لإعادة النتائج مرتبة تنازليًا حسب قيمة التداخل، أو على 'asc' للترتيب التصاعدي.

أمثلة

  • overlay_intersects('regions') → TRUE إذا كان المعلم الحالي يتقاطع مكانيًا مع منطقة

  • overlay_intersects('regions', filter:= population > 10000) → TRUE إذا كان المعلم الحالي يتقاطع مكانيًا مع منطقة يزيد عدد سكانها على 10000

  • overlay_intersects('regions', name) → مصفوفة من الأسماء للمناطق التي يتقاطع معها المعلم الحالي

  • array_to_string(overlay_intersects('regions', name)) → سلسلة نصية على شكل قائمة أسماء مفصولة بفواصل للمناطق التي يتقاطع معها المعلم الحالي

  • array_sort(overlay_intersects(layer:='regions', expression:="name", filter:= population > 10000)) → مصفوفة مرتّبة من الأسماء للمناطق التي يتقاطع معها المعلم الحالي ويزيد عدد سكانها على 10000

  • overlay_intersects(layer:='regions', expression:= geom_to_wkt(@geometry), limit:=2) → مصفوفة من الأشكال الهندسية (بصيغة WKT) لمنطقتين على الأكثر يتقاطع معهما المعلم الحالي

  • overlay_intersects(layer:='regions', min_overlap:=0.54) → TRUE إذا كان المعلم الحالي يتقاطع مكانيًا مع منطقة وكانت مساحة التقاطع (لجزء واحد على الأقل في حالة المضلعات المتعددة) أكبر من 0.54 أو تساويها

  • overlay_intersects(layer:='regions', min_inscribed_circle_radius:=0.54) → TRUE إذا كان المعلم الحالي يتقاطع مكانيًا مع منطقة وكان نصف قطر أكبر دائرة داخلية لمساحة التقاطع (لجزء واحد على الأقل في حالة الأشكال متعددة الأجزاء) أكبر من 0.54 أو يساويها

  • overlay_intersects(layer:='regions', expression:= geom_to_wkt(@geometry), return_details:=true) → مصفوفة من الخرائط (maps) تحتوي على 'id' و 'result' و 'overlap' و 'radius'

  • overlay_intersects(layer:='regions', expression:= geom_to_wkt(@geometry), sort_by_intersection_size:='des') → مصفوفة من الأشكال الهندسية (بصيغة WKT) مرتبة تنازليًا حسب قيمة التداخل

للمزيد: intersects، و معالجة المصفوفات، وخوارزمية التحديد حسب الموقع

9.2.14.99. overlay_nearest

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

ملاحظة: قد تكون هذه الدالة بطيئة وتستهلك قدرًا كبيرًا من الذاكرة مع الطبقات الكبيرة.

الصيغة

overlay_nearest(layer, [expression], [filter], [limit:=1], [max_distance], [cache:=false])

تشير [] إلى الوسائط الاختيارية

الوسائط

  • layer - الطبقة الهدف

  • expression - تعبير اختياري يُقيَّم على معالم الطبقة الهدف. إن لم يُحدَّد، تُعيد الدالة قيمة منطقية فقط تشير إلى وجود تطابق واحد على الأقل.

  • filter - تعبير اختياري لتصفية المعالم الهدف المراد فحصها. إن لم يُحدَّد، تُستخدم جميع معالم الطبقة الهدف.

  • limit - عدد صحيح اختياري لتحديد عدد المعالم المتطابقة. إن لم يُحدَّد، يُعاد أقرب معلم فقط. وإذا ضُبط على -1، تُعاد جميع المعالم المتطابقة.

  • max_distance - مسافة اختيارية لتقييد البحث عن المعالم المتطابقة. إن لم تُحدَّد، تُستخدم جميع معالم الطبقة الهدف.

  • cache - اضبطه على true لبناء فهرس مكاني محلي (وهذا غير مرغوب في أغلب الأحيان، إلا إذا كنت تعمل مع مزوّد بيانات بطيء بشكل خاص)

أمثلة

  • overlay_nearest('airports') → TRUE إذا كانت الطبقة "airports" تحتوي على معلم واحد على الأقل

  • overlay_nearest('airports', max_distance:= 5000) → TRUE إذا وُجد مطار ضمن مسافة 5000 وحدة خريطة من المعلم الحالي

  • overlay_nearest('airports', name) → اسم أقرب مطار إلى المعلم الحالي، على شكل مصفوفة

  • array_to_string(overlay_nearest('airports', name)) → اسم أقرب مطار إلى المعلم الحالي، على شكل سلسلة نصية

  • overlay_nearest(layer:='airports', expression:= name, max_distance:= 5000) → اسم أقرب مطار ضمن مسافة 5000 وحدة خريطة من المعلم الحالي، على شكل مصفوفة

  • overlay_nearest(layer:='airports', expression:="name", filter:= "Use"='Civilian', limit:=3) → مصفوفة من الأسماء لأقرب ثلاثة مطارات مدنية على الأكثر، مرتبة حسب المسافة

  • overlay_nearest(layer:='airports', expression:="name", limit:= -1, max_distance:= 5000) → مصفوفة من الأسماء لجميع المطارات الواقعة ضمن مسافة 5000 وحدة خريطة من المعلم الحالي، مرتبة حسب المسافة

للمزيد: معالجة المصفوفات، وخوارزمية ضم البيانات الوصفية حسب الأقرب

9.2.14.100. overlay_touches

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

اقرأ المزيد عن شرط GEOS "Touches" الأساسي، كما هو موصوف في دالة PostGIS ST_Touches.

الصيغة

overlay_touches(layer, [expression], [filter], [limit], [cache:=false])

تشير [] إلى الوسائط الاختيارية

الوسائط

  • layer - الطبقة التي يُفحص التراكب معها

  • expression - تعبير اختياري يُقيَّم على معالم الطبقة الهدف. إن لم يُحدَّد، تُعيد الدالة قيمة منطقية فقط تشير إلى وجود تطابق واحد على الأقل.

  • filter - تعبير اختياري لتصفية المعالم الهدف المراد فحصها. إن لم يُحدَّد، تُفحص جميع المعالم.

  • limit - عدد صحيح اختياري لتحديد عدد المعالم المتطابقة. إن لم يُحدَّد، تُعاد جميع المعالم المتطابقة.

  • cache - اضبطه على true لبناء فهرس مكاني محلي (وهذا غير مرغوب في أغلب الأحيان، إلا إذا كنت تعمل مع مزوّد بيانات بطيء بشكل خاص)

أمثلة

  • overlay_touches('regions') → TRUE إذا كان المعلم الحالي يلامس مكانيًا منطقة

  • overlay_touches('regions', filter:= population > 10000) → TRUE إذا كان المعلم الحالي يلامس مكانيًا منطقة يزيد عدد سكانها على 10000

  • overlay_touches('regions', name) → مصفوفة من الأسماء للمناطق التي يلامسها المعلم الحالي

  • array_to_string(overlay_touches('regions', name)) → سلسلة نصية على شكل قائمة أسماء مفصولة بفواصل للمناطق التي يلامسها المعلم الحالي

  • array_sort(overlay_touches(layer:='regions', expression:="name", filter:= population > 10000)) → مصفوفة مرتّبة من الأسماء للمناطق التي يلامسها المعلم الحالي ويزيد عدد سكانها على 10000

  • overlay_touches(layer:='regions', expression:= geom_to_wkt(@geometry), limit:=2) → مصفوفة من الأشكال الهندسية (بصيغة WKT) لمنطقتين على الأكثر يلامسهما المعلم الحالي

للمزيد: touches، و معالجة المصفوفات، وخوارزمية التحديد حسب الموقع

9.2.14.101. overlay_within

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

اقرأ المزيد عن شرط GEOS "Within" الأساسي، كما هو موصوف في دالة PostGIS ST_Within.

الصيغة

overlay_within(layer, [expression], [filter], [limit], [cache:=false])

تشير [] إلى الوسائط الاختيارية

الوسائط

  • layer - الطبقة التي يُفحص التراكب معها

  • expression - تعبير اختياري يُقيَّم على معالم الطبقة الهدف. إن لم يُحدَّد، تُعيد الدالة قيمة منطقية فقط تشير إلى وجود تطابق واحد على الأقل.

  • filter - تعبير اختياري لتصفية المعالم الهدف المراد فحصها. إن لم يُحدَّد، تُفحص جميع المعالم.

  • limit - عدد صحيح اختياري لتحديد عدد المعالم المتطابقة. إن لم يُحدَّد، تُعاد جميع المعالم المتطابقة.

  • cache - اضبطه على true لبناء فهرس مكاني محلي (وهذا غير مرغوب في أغلب الأحيان، إلا إذا كنت تعمل مع مزوّد بيانات بطيء بشكل خاص)

أمثلة

  • overlay_within('regions') → TRUE إذا كان المعلم الحالي يقع مكانيًا داخل منطقة

  • overlay_within('regions', filter:= population > 10000) → TRUE إذا كان المعلم الحالي يقع مكانيًا داخل منطقة يزيد عدد سكانها على 10000

  • overlay_within('regions', name) → مصفوفة من الأسماء للمناطق التي تحتوي المعلم الحالي

  • array_to_string(overlay_within('regions', name)) → سلسلة نصية على شكل قائمة أسماء مفصولة بفواصل للمناطق التي تحتوي المعلم الحالي

  • array_sort(overlay_within(layer:='regions', expression:="name", filter:= population > 10000)) → مصفوفة مرتّبة من الأسماء للمناطق التي تحتوي المعلم الحالي ويزيد عدد سكانها على 10000

  • overlay_within(layer:='regions', expression:= geom_to_wkt(@geometry), limit:=2) → مصفوفة من الأشكال الهندسية (بصيغة WKT) لمنطقتين على الأكثر تحتويان المعلم الحالي

للمزيد: within، و معالجة المصفوفات، وخوارزمية التحديد حسب الموقع

9.2.14.102. $perimeter

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

الصيغة

$perimeter

أمثلة

  • $perimeter → 42

9.2.14.103. perimeter

تُعيد محيط كائن مضلع هندسي. تكون الحسابات دائمًا مستوية في النظام المرجعي المكاني (SRS) لهذا الشكل الهندسي، وتطابق وحدات المحيط المُعاد وحدات SRS. ويختلف هذا عن الحسابات التي تجريها الدالة $perimeter، التي تجري حسابات إهليلجية بناءً على إهليلج المشروع وإعدادات وحدة المسافة.

الصيغة

perimeter(geometry)

الوسائط

  • geometry - كائن شكل هندسي مضلع

أمثلة

  • perimeter(geom_from_wkt('POLYGON((0 0, 4 0, 4 2, 0 2, 0 0))')) → 12.0

9.2.14.104. point_n

تُعيد عقدة محددة من الشكل الهندسي.

الصيغة

point_n(geometry, index)

الوسائط

  • geometry - كائن شكل هندسي

  • index - فهرس العقدة المراد إعادتها، حيث 1 هي العقدة الأولى؛ إذا كانت القيمة سالبة، فسيكون فهرس الرأس المحدد هو العدد الكلي للرؤوس مطروحًا منه القيمة المطلقة

أمثلة

  • geom_to_wkt(point_n(geom_from_wkt('POLYGON((0 0, 4 0, 4 2, 0 2, 0 0))'),2)) → 'Point (4 0)'

للمزيد: خوارزمية Extract specific vertices (استخراج رؤوس محددة)

9.2.14.105. point_on_surface

تُعيد نقطة مضمونة الوقوع على سطح الشكل الهندسي.

الصيغة

point_on_surface(geometry)

الوسائط

  • geometry - شكل هندسي

أمثلة

  • point_on_surface(@geometry) → شكل هندسي نقطي

للمزيد: خوارزمية Point on Surface (نقطة على السطح)

9.2.14.106. pole_of_inaccessibility

تحسب القطب التقريبي لعدم الوصول (pole of inaccessibility) لسطح ما، وهو النقطة الداخلية الأبعد عن حدود السطح. تستخدم هذه الدالة خوارزمية 'polylabel' (Vladimir Agafonkin، 2016)، وهي طريقة تكرارية مضمونة لإيجاد القطب الحقيقي لعدم الوصول ضمن تفاوت محدد. تتطلب قيم التفاوت الأدق تكرارات أكثر وتستغرق وقتًا أطول في الحساب.

الصيغة

pole_of_inaccessibility(geometry, tolerance)

الوسائط

  • geometry - شكل هندسي

  • tolerance - أقصى مسافة بين النقطة المُعادة وموقع القطب الحقيقي

أمثلة

  • geom_to_wkt(pole_of_inaccessibility( geom_from_wkt('POLYGON((0 1, 0 9, 3 10, 3 3, 10 3, 10 1, 0 1))'), 0.1)) → 'Point(1.546875 2.546875)'

../../../_images/pole_inaccessibility.png

شكل 9.26 قطب عدم الوصول

للمزيد: خوارزمية قطب عدم الوصول

9.2.14.107. project

تُعيد نقطة مُسقَطة من نقطة بداية باستخدام مسافة واتجاه (سَمت) وزاوية ارتفاع بالراديان.

الصيغة

project(point, distance, azimuth, [elevation])

تشير [] إلى الوسائط الاختيارية

الوسائط

  • point - نقطة البداية

  • distance - المسافة المراد الإسقاط بها

  • azimuth - السَّمت بالراديان باتجاه عقارب الساعة، حيث 0 يقابل الشمال

  • elevation - زاوية الميل بالراديان

أمثلة

  • geom_to_wkt(project(make_point(1, 2), 3, radians(270))) → 'Point(-2, 2)'

للمزيد: خوارزمية إسقاط النقاط (ديكارتي)

9.2.14.108. relate

تختبر تمثيل نموذج التقاطع التساعي الموسّع الأبعاد (DE-9IM) للعلاقة بين شكلين هندسيين.

صيغة العلاقة

تُعيد تمثيل نموذج التقاطع التساعي الموسّع الأبعاد (DE-9IM) للعلاقة بين شكلين هندسيين.

الصيغة

relate(geometry, geometry)

الوسائط

  • geometry - شكل هندسي

  • geometry - شكل هندسي

أمثلة

  • relate( geom_from_wkt( 'LINESTRING(40 40,120 120)' ), geom_from_wkt( 'LINESTRING(40 40,60 120)' ) ) → 'FF1F00102'

صيغة مطابقة النمط

تختبر ما إذا كانت علاقة DE-9IM بين شكلين هندسيين تطابق نمطًا محددًا.

الصيغة

relate(geometry, geometry, pattern)

الوسائط

  • geometry - شكل هندسي

  • geometry - شكل هندسي

  • pattern - نمط DE-9IM المراد مطابقته

أمثلة

  • relate( geom_from_wkt( 'LINESTRING(40 40,120 120)' ), geom_from_wkt( 'LINESTRING(40 40,60 120)' ), '**1F001**' ) → TRUE

9.2.14.109. reverse

تعكس اتجاه خط أو تعكس سلسلة نصية.

صيغة السلسلة النصية

تعكس ترتيب الأحرف في سلسلة نصية.

الصيغة

reverse(string)

الوسائط

  • string - السلسلة النصية المراد عكسها

أمثلة

  • reverse('hello') → 'olleh'

صيغة الشكل الهندسي

تعكس اتجاه الخط بعكس ترتيب رؤوسه.

الصيغة

reverse(geometry)

الوسائط

  • geometry - شكل هندسي

أمثلة

  • geom_to_wkt(reverse(geom_from_wkt('LINESTRING(0 0, 1 1, 2 2)'))) → 'LINESTRING(2 2, 1 1, 0 0)'

../../../_images/reverse_line.png

شكل 9.27 عكس اتجاه الخط

للمزيد: خوارزمية عكس اتجاه الخط

9.2.14.110. rotate

تُعيد نسخة مُدوَّرة من الشكل الهندسي. تُجرى الحسابات في النظام المرجعي المكاني لهذا الشكل الهندسي.

الصيغة

rotate(geometry, rotation, [center:=NULL], [per_part:=false])

تشير [] إلى الوسائط الاختيارية

الوسائط

  • geometry - شكل هندسي

  • rotation - زاوية التدوير بالدرجات باتجاه عقارب الساعة

  • center - نقطة مركز التدوير. إن لم تُحدَّد، يُستخدم مركز المستطيل المحيط بالشكل الهندسي.

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

أمثلة

  • rotate(@geometry, 45, make_point(4, 5)) → شكل هندسي مُدوَّر 45 درجة باتجاه عقارب الساعة حول النقطة (4, 5)

  • rotate(@geometry, 45) → شكل هندسي مُدوَّر 45 درجة باتجاه عقارب الساعة حول مركز المستطيل المحيط به

../../../_images/rotate.gif

شكل 9.28 تدوير المعالم

9.2.14.111. roundness

تحسب مدى قرب شكل المضلع من الدائرة. تُعيد الدالة 1 عندما يكون شكل المضلع دائرة تامة، و 0 عندما يكون مسطحًا تمامًا.

الصيغة

roundness(geometry)

الوسائط

  • geometry - مضلع

أمثلة

  • round(roundness(geom_from_wkt('POLYGON(( 0 0, 0 1, 1 1, 1 0, 0 0))')), 3) → 0.785

  • round(roundness(geom_from_wkt('POLYGON(( 0 0, 0 0.1, 1 0.1, 1 0, 0 0))')), 3) → 0.260

للمزيد: خوارزمية الاستدارة

9.2.14.112. scale

تُعيد نسخة مُغيَّرة الحجم من الشكل الهندسي. تُجرى الحسابات في النظام المرجعي المكاني لهذا الشكل الهندسي.

الصيغة

scale(geometry, x_scale, y_scale, [center:=NULL])

تشير [] إلى الوسائط الاختيارية

الوسائط

  • geometry - شكل هندسي

  • x_scale - معامل تغيير الحجم على المحور x

  • y_scale - معامل تغيير الحجم على المحور y

  • center - نقطة مركز تغيير الحجم. إن لم تُحدَّد، يُستخدم مركز المستطيل المحيط بالشكل الهندسي.

أمثلة

  • scale(@geometry, 2, 0.5, make_point(4, 5)) → شكل هندسي مُضاعف أفقيًا ومُنصَّف رأسيًا، حول النقطة (4, 5)

  • scale(@geometry, 2, 0.5) → شكل هندسي مُضاعف أفقيًا ومُنصَّف رأسيًا، حول مركز المستطيل المحيط به

9.2.14.113. segments_to_lines

تُعيد شكلًا هندسيًا متعدد الخطوط يتكوّن من خط لكل مقطع في الشكل الهندسي المُدخَل.

الصيغة

segments_to_lines(geometry)

الوسائط

  • geometry - كائن شكل هندسي

أمثلة

  • geom_to_wkt(segments_to_lines(geom_from_wkt('LINESTRING(0 0, 1 1, 2 2)'))) → 'MultiLineString ((0 0, 1 1),(1 1, 2 2))'

للمزيد: خوارزمية Explode lines (تفكيك الخطوط)

9.2.14.114. shared_paths

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

الصيغة

shared_paths(geometry1, geometry2)

الوسائط

  • geometry1 - شكل هندسي من نوع LineString/MultiLineString

  • geometry2 - شكل هندسي من نوع LineString/MultiLineString

أمثلة

  • geom_to_wkt(shared_paths(geom_from_wkt('MULTILINESTRING((26 125,26 200,126 200,126 125,26 125),(51 150,101 150,76 175,51 150)))'),geom_from_wkt('LINESTRING(151 100,126 156.25,126 125,90 161, 76 175)'))) → 'GeometryCollection (MultiLineString ((126 156.25, 126 125),(101 150, 90 161),(90 161, 76 175)),MultiLineString EMPTY)'

  • geom_to_wkt(shared_paths(geom_from_wkt('LINESTRING(76 175,90 161,126 125,126 156.25,151 100)'),geom_from_wkt('MULTILINESTRING((26 125,26 200,126 200,126 125,26 125),(51 150,101 150,76 175,51 150))'))) → 'GeometryCollection (MultiLineString EMPTY,MultiLineString ((76 175, 90 161),(90 161, 101 150),(126 125, 126 156.25)))'

9.2.14.115. shortest_line

تُعيد أقصر خط يصل geometry1 بـ geometry2. يبدأ الخط الناتج عند geometry1 وينتهي عند geometry2.

الصيغة

shortest_line(geometry1, geometry2)

الوسائط

  • geometry1 - الشكل الهندسي الذي يبدأ منه أقصر خط

  • geometry2 - الشكل الهندسي الذي ينتهي إليه أقصر خط

أمثلة

  • geom_to_wkt(shortest_line(geom_from_wkt('LINESTRING (20 80, 98 190, 110 180, 50 75 )'),geom_from_wkt('POINT(100 100)'))) → 'LineString(73.0769 115.384, 100 100)'

9.2.14.116. simplify

تُبسِّط الشكل الهندسي بإزالة العقد باستخدام عتبة مبنية على المسافة (أي خوارزمية Douglas Peucker). تحافظ الخوارزمية على الانحرافات الكبيرة في الأشكال الهندسية وتقلّل عدد الرؤوس في المقاطع شبه المستقيمة.

الصيغة

simplify(geometry, tolerance)

الوسائط

  • geometry - شكل هندسي

  • tolerance - أقصى انحراف عن المقاطع المستقيمة للنقاط المراد إزالتها

أمثلة

  • geom_to_wkt(simplify(geometry:=geom_from_wkt('LineString(0 0, 5 0.1, 10 0)'),tolerance:=5)) → 'LineString(0 0, 10 0)'

../../../_images/simplify_geometries.png

شكل 9.29 من اليسار إلى اليمين: الطبقة المصدر وقيم تفاوت تبسيط متزايدة

للمزيد: خوارزمية تبسيط

9.2.14.117. simplify_vw

تُبسِّط الشكل الهندسي بإزالة العقد باستخدام عتبة مبنية على المساحة (أي خوارزمية Visvalingam-Whyatt). تزيل الخوارزمية الرؤوس التي تُنشئ مساحات صغيرة في الأشكال الهندسية، مثل النتوءات الضيقة أو المقاطع شبه المستقيمة.

الصيغة

simplify_vw(geometry, tolerance)

الوسائط

  • geometry - شكل هندسي

  • tolerance - مقياس لأقصى مساحة تُنشئها العقدة كي تُزال العقدة

أمثلة

  • geom_to_wkt(simplify_vw(geometry:=geom_from_wkt('LineString(0 0, 5 0, 5.01 10, 5.02 0, 10 0)'),tolerance:=5)) → 'LineString(0 0, 10 0)'

للمزيد: خوارزمية تبسيط

9.2.14.118. single_sided_buffer

تُعيد شكلًا هندسيًا ناتجًا عن إنشاء نطاق عازل على جانب واحد فقط من شكل هندسي خطي. تكون المسافات بوحدات النظام المرجعي المكاني لهذا الشكل الهندسي.

الصيغة

single_sided_buffer(geometry, distance, [segments:=8], [join:=1], [miter_limit:=2.0])

تشير [] إلى الوسائط الاختيارية

الوسائط

  • geometry - شكل هندسي خطي (متعدد)

  • distance - مسافة النطاق العازل. القيم الموجبة تُنشئ النطاق إلى يسار الخطوط، والسالبة إلى يمينها

  • segments - عدد القطع المستقيمة المستخدمة لتمثيل ربع دائرة عند استخدام نمط وصل دائري. يؤدي العدد الأكبر إلى نطاق عازل أنعم بعدد أكبر من العقد.

  • join - نمط وصل الزوايا، حيث 1 = مستدير، 2 = حاد (miter)، 3 = مشطوف (bevel)

  • miter_limit - حدّ نسبة الوصل الحاد المستخدم مع الزوايا شديدة الحدة (عند استخدام الوصل الحاد فقط)

أمثلة

  • single_sided_buffer(@geometry, 10.5) → نطاق عازل للخط إلى اليسار بمقدار 10.5 وحدة

  • single_sided_buffer(@geometry, -10.5) → نطاق عازل للخط إلى اليمين بمقدار 10.5 وحدة

  • single_sided_buffer(@geometry, 10.5, segments:=16, join:=1) → نطاق عازل للخط إلى اليسار بمقدار 10.5 وحدة، مع استخدام مقاطع أكثر للحصول على نطاق أنعم

  • single_sided_buffer(@geometry, 10.5, join:=3) → نطاق عازل للخط إلى اليسار بمقدار 10.5 وحدة، مع استخدام وصل مشطوف

../../../_images/single_side_buffer.png

شكل 9.30 النطاق العازل على الجانب الأيسر مقابل الأيمن على طبقة الخطوط المتجهية نفسها

للمزيد: خوارزمية نطاق عازل أحادي الجانب

9.2.14.119. sinuosity

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

الصيغة

sinuosity(geometry)

الوسائط

  • geometry - المنحنى المُدخَل (circularstring، linestring)

أمثلة

  • round(sinuosity(geom_from_wkt('LINESTRING(2 0, 2 2, 3 2, 3 3)')), 3) → 1.265

  • sinuosity(geom_from_wkt('LINESTRING( 3 1, 5 1)')) → 1.0

9.2.14.120. smooth

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

الصيغة

smooth(geometry, [iterations:=1], [offset:=0.25], [min_length:=-1], [max_angle:=180])

تشير [] إلى الوسائط الاختيارية

الوسائط

  • geometry - شكل هندسي

  • iterations - عدد تكرارات التنعيم المراد تطبيقها. تؤدي الأعداد الأكبر إلى أشكال هندسية أنعم ولكن أكثر تعقيدًا.

  • offset - قيمة بين 0 و 0.5 تتحكم في مدى التصاق الشكل الهندسي المُنعَّم بالشكل الأصلي. تؤدي القيم الأصغر إلى تنعيم أكثر التصاقًا، والقيم الأكبر إلى تنعيم أكثر ارتخاءً.

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

  • max_angle - أقصى زاوية عند العقدة لتطبيق التنعيم (0-180). بخفض الزاوية القصوى يمكن الحفاظ على الزوايا الحادة المقصودة في الشكل الهندسي. فمثلًا، تحتفظ القيمة 80 درجة بالزوايا القائمة في الشكل الهندسي.

أمثلة

  • geom_to_wkt(smooth(geometry:=geom_from_wkt('LineString(0 0, 5 0, 5 5)'),iterations:=1,offset:=0.2,min_length:=-1,max_angle:=180)) → 'LineString (0 0, 4 0, 5 1, 5 5)'

../../../_images/smooth_geometry_1.png

شكل 9.31 زيادة عدد التكرارات تُنتج أشكالًا هندسية أنعم

للمزيد: خوارزمية تنعيم

9.2.14.121. square_wave

تُنشئ موجات مربعة/مستطيلة على امتداد حدود الشكل الهندسي.

الصيغة

square_wave(geometry, wavelength, amplitude, [strict:=false])

تشير [] إلى الوسائط الاختيارية

الوسائط

  • geometry - شكل هندسي

  • wavelength - الطول الموجي للموجة المربعة

  • amplitude - سعة الموجة المربعة

  • strict - افتراضيًا يُعامَل الوسيط wavelength على أنه "أقصى طول موجي"، حيث يُعدَّل الطول الموجي الفعلي ديناميكيًا بحيث يُنشأ عدد صحيح من الموجات المربعة على امتداد حدود الشكل الهندسي. إذا ضُبط الوسيط strict على true فسيُستخدم الطول الموجي تمامًا، وقد يُستخدم نمط غير مكتمل للموجة الأخيرة.

أمثلة

  • square_wave(geom_from_wkt('LineString(0 0, 10 0)'), 3, 1) → موجات مربعة بطول موجي 3 وسعة 1 على امتداد الخط

  • geom_to_wkt(square_wave(geom_from_wkt('LineString(0 0, 5 0)'), 3, 1, false)) → 'LineString (0 0, 0 1, 1.25 1, 1.25 -1, 2.5 -1, 2.5 1, 3.75 1, 3.75 -1, 5 -1, 5 0)'

  • geom_to_wkt(square_wave(geom_from_wkt('LineString(0 0, 5 0)'), 3, 1, true)) → 'LineString (0 0, 0 1, 1.5 1, 1.5 -1, 3 -1, 3 1, 4.5 1, 5 0)'

../../../_images/square_wave.png

شكل 9.32 ترميز المعالم بموجات مربعة

9.2.14.122. square_wave_randomized

تُنشئ موجات مربعة/مستطيلة عشوائية على امتداد حدود الشكل الهندسي.

الصيغة

square_wave_randomized(geometry, min_wavelength, max_wavelength, min_amplitude, max_amplitude, [seed:=0])

تشير [] إلى الوسائط الاختيارية

الوسائط

  • geometry - شكل هندسي

  • min_wavelength - أدنى طول موجي للموجات

  • max_wavelength - أقصى طول موجي للموجات

  • min_amplitude - أدنى سعة للموجات

  • max_amplitude - أقصى سعة للموجات

  • seed - يحدد بذرة عشوائية لتوليد الموجات. إذا كانت البذرة 0، فستُولَّد مجموعة موجات عشوائية تمامًا.

أمثلة

  • square_wave_randomized(geom_from_wkt('LineString(0 0, 10 0)'), 2, 3, 0.1, 0.2) → موجات مربعة عشوائية الحجم بأطوال موجية بين 2 و 3 وسعات بين 0.1 و 0.2 على امتداد الخط

../../../_images/square_wave_randomized.png

شكل 9.33 ترميز المعالم بموجات مربعة عشوائية

9.2.14.123. start_point

تُعيد العقدة الأولى من الشكل الهندسي.

الصيغة

start_point(geometry)

الوسائط

  • geometry - كائن شكل هندسي

أمثلة

  • geom_to_wkt(start_point(geom_from_wkt('LINESTRING(4 0, 4 2, 0 2)'))) → 'Point (4 0)'

../../../_images/start_point.png

شكل 9.34 نقطة بداية معلم خطي

للمزيد: end_point، وخوارزمية Extract specific vertices (استخراج رؤوس محددة)

9.2.14.124. straight_distance_2d

تُعيد المسافة المباشرة/الإقليدية بين الرأس الأول والأخير للشكل الهندسي. يجب أن يكون الشكل الهندسي منحنى (circularstring، linestring).

الصيغة

straight_distance_2d(geometry)

الوسائط

  • geometry - الشكل الهندسي.

أمثلة

  • straight_distance_2d(geom_from_wkt('LINESTRING(1 0, 1 1)')) → 1

  • round(straight_distance_2d(geom_from_wkt('LINESTRING(1 4, 3 5, 5 0)')), 3) → 5.657

للمزيد: length

9.2.14.125. sym_difference

تُعيد شكلًا هندسيًا يمثل أجزاء الشكلين الهندسيين التي لا تتقاطع.

الصيغة

sym_difference(geometry1, geometry2)

الوسائط

  • geometry1 - شكل هندسي

  • geometry2 - شكل هندسي

أمثلة

  • geom_to_wkt( sym_difference( geom_from_wkt( 'LINESTRING(3 3, 4 4, 5 5)' ), geom_from_wkt( 'LINESTRING(3 3, 8 8)' ) ) ) → 'LINESTRING(5 5, 8 8)'

للمزيد: خوارزمية الفرق المتماثل

9.2.14.126. tapered_buffer

تُنشئ نطاقًا عازلًا على امتداد شكل هندسي خطي يتغيّر قطره بانتظام على طول الخط.

الصيغة

tapered_buffer(geometry, start_width, end_width, [segments:=8])

تشير [] إلى الوسائط الاختيارية

الوسائط

  • geometry - الشكل الهندسي المُدخَل. يجب أن يكون شكلًا هندسيًا خطيًا (أو متعدد الخطوط).

  • start_width - عرض النطاق العازل عند بداية الخط،

  • end_width - عرض النطاق العازل عند نهاية الخط.

  • segments - عدد القطع المستقيمة لتقريب منحنيات ربع الدائرة في النطاق العازل.

أمثلة

  • tapered_buffer(geometry:=geom_from_wkt('LINESTRING(1 2, 4 2)'),start_width:=1,end_width:=2,segments:=8) → نطاق عازل مُستدِق يبدأ بقطر 1 وينتهي بقطر 2 على امتداد الشكل الهندسي الخطي.

../../../_images/tapered_buffer.png

شكل 9.35 نطاق عازل مُستدِق على معالم خطية

للمزيد: خوارزمية نطاقات عازلة مستدقّة

9.2.14.127. touches

تختبر ما إذا كان شكل هندسي يلامس آخر. تُعيد TRUE إذا كان للشكلين نقطة مشتركة واحدة على الأقل، ولكن لا تتقاطع أجزاؤهما الداخلية.

الصيغة

touches(geometry1, geometry2)

الوسائط

  • geometry1 - شكل هندسي

  • geometry2 - شكل هندسي

أمثلة

  • touches( geom_from_wkt( 'LINESTRING(5 3, 4 4)' ), geom_from_wkt( 'LINESTRING(3 3, 4 4, 5 5)' ) ) → TRUE

  • touches( geom_from_wkt( 'POINT(4 4)' ), geom_from_wkt( 'POINT(5 5)' ) ) → FALSE

للمزيد: overlay_touches

9.2.14.128. transform

تُعيد الشكل الهندسي بعد تحويله من نظام إحداثيات مرجعي (CRS) مصدر إلى نظام إحداثيات مرجعي هدف.

الصيغة

transform(geometry, source_auth_id, dest_auth_id)

الوسائط

  • geometry - شكل هندسي

  • source_auth_id - تعريف نظام الإحداثيات المرجعي المصدر أو كائن CRS

  • dest_auth_id - تعريف نظام الإحداثيات المرجعي الهدف أو كائن CRS

أمثلة

  • geom_to_wkt( transform( make_point(488995.53240249, 7104473.38600835), 'EPSG:2154', 'EPSG:4326' ) ) → 'POINT(0 51)'

للمزيد: خوارزمية إعادة إسقاط طبقة

9.2.14.129. translate

تُعيد نسخة مُزاحة (منقولة) من الشكل الهندسي. تُجرى الحسابات في النظام المرجعي المكاني لهذا الشكل الهندسي.

الصيغة

translate(geometry, dx, dy)

الوسائط

  • geometry - شكل هندسي

  • dx - مقدار الإزاحة على x

  • dy - مقدار الإزاحة على y

أمثلة

  • translate(@geometry, 5, 10) → شكل هندسي من نوع الشكل الأصلي نفسه

../../../_images/translate_geometry.png

شكل 9.36 إزاحة المعالم

للمزيد: خوارزمية الإزاحة (Translate)

9.2.14.130. triangular_wave

تُنشئ موجات مثلثية على امتداد حدود الشكل الهندسي.

الصيغة

triangular_wave(geometry, wavelength, amplitude, [strict:=false])

تشير [] إلى الوسائط الاختيارية

الوسائط

  • geometry - شكل هندسي

  • wavelength - الطول الموجي للموجة المثلثية

  • amplitude - سعة الموجة المثلثية

  • strict - افتراضيًا يُعامَل الوسيط wavelength على أنه "أقصى طول موجي"، حيث يُعدَّل الطول الموجي الفعلي ديناميكيًا بحيث يُنشأ عدد صحيح من الموجات المثلثية على امتداد حدود الشكل الهندسي. إذا ضُبط الوسيط strict على true فسيُستخدم الطول الموجي تمامًا، وقد يُستخدم نمط غير مكتمل للموجة الأخيرة.

أمثلة

  • triangular_wave(geom_from_wkt('LineString(0 0, 10 0)'), 3, 1) → موجات مثلثية بطول موجي 3 وسعة 1 على امتداد الخط

  • geom_to_wkt(triangular_wave(geom_from_wkt('LineString(0 0, 5 0)'), 3, 1, false)) → 'LineString (0 0, 0.625 1, 1.875 -1, 3.125 1, 4.375 -1, 5 0)'

  • geom_to_wkt(triangular_wave(geom_from_wkt('LineString(0 0, 5 0)'), 3, 1, true)) → 'LineString (0 0, 0.75 1, 2.25 -1, 3.75 1, 5 0)'

../../../_images/triangular_wave.png

شكل 9.37 ترميز المعالم بموجات مثلثية

9.2.14.131. triangular_wave_randomized

تُنشئ موجات مثلثية عشوائية على امتداد حدود الشكل الهندسي.

الصيغة

triangular_wave_randomized(geometry, min_wavelength, max_wavelength, min_amplitude, max_amplitude, [seed:=0])

تشير [] إلى الوسائط الاختيارية

الوسائط

  • geometry - شكل هندسي

  • min_wavelength - أدنى طول موجي للموجات

  • max_wavelength - أقصى طول موجي للموجات

  • min_amplitude - أدنى سعة للموجات

  • max_amplitude - أقصى سعة للموجات

  • seed - يحدد بذرة عشوائية لتوليد الموجات. إذا كانت البذرة 0، فستُولَّد مجموعة موجات عشوائية تمامًا.

أمثلة

  • triangular_wave_randomized(geom_from_wkt('LineString(0 0, 10 0)'), 2, 3, 0.1, 0.2) → موجات مثلثية عشوائية الحجم بأطوال موجية بين 2 و 3 وسعات بين 0.1 و 0.2 على امتداد الخط

../../../_images/triangular_wave_randomized.png

شكل 9.38 ترميز المعالم بموجات مثلثية عشوائية

9.2.14.132. union

تُعيد شكلًا هندسيًا يمثل اتحاد مجموعات النقاط للأشكال الهندسية.

الصيغة

union(geometry1, geometry2)

الوسائط

  • geometry1 - شكل هندسي

  • geometry2 - شكل هندسي

أمثلة

  • geom_to_wkt( union( make_point(4, 4), make_point(5, 5) ) ) → 'MULTIPOINT(4 4, 5 5)'

9.2.14.133. wave

تُنشئ موجات مستديرة (شبه جيبية) على امتداد حدود الشكل الهندسي.

الصيغة

wave(geometry, wavelength, amplitude, [strict:=false])

تشير [] إلى الوسائط الاختيارية

الوسائط

  • geometry - شكل هندسي

  • wavelength - الطول الموجي للموجة شبه الجيبية

  • amplitude - سعة الموجة شبه الجيبية

  • strict - افتراضيًا يُعامَل الوسيط wavelength على أنه "أقصى طول موجي"، حيث يُعدَّل الطول الموجي الفعلي ديناميكيًا بحيث يُنشأ عدد صحيح من الموجات على امتداد حدود الشكل الهندسي. إذا ضُبط الوسيط strict على true فسيُستخدم الطول الموجي تمامًا، وقد يُستخدم نمط غير مكتمل للموجة الأخيرة.

أمثلة

  • wave(geom_from_wkt('LineString(0 0, 10 0)'), 3, 1) → موجات شبه جيبية بطول موجي 3 وسعة 1 على امتداد الخط

../../../_images/wave.png

شكل 9.39 ترميز المعالم بالموجات

9.2.14.134. wave_randomized

تُنشئ موجات منحنية (شبه جيبية) عشوائية على امتداد حدود الشكل الهندسي.

الصيغة

wave_randomized(geometry, min_wavelength, max_wavelength, min_amplitude, max_amplitude, [seed:=0])

تشير [] إلى الوسائط الاختيارية

الوسائط

  • geometry - شكل هندسي

  • min_wavelength - أدنى طول موجي للموجات

  • max_wavelength - أقصى طول موجي للموجات

  • min_amplitude - أدنى سعة للموجات

  • max_amplitude - أقصى سعة للموجات

  • seed - يحدد بذرة عشوائية لتوليد الموجات. إذا كانت البذرة 0، فستُولَّد مجموعة موجات عشوائية تمامًا.

أمثلة

  • wave_randomized(geom_from_wkt('LineString(0 0, 10 0)'), 2, 3, 0.1, 0.2) → موجات منحنية عشوائية الحجم بأطوال موجية بين 2 و 3 وسعات بين 0.1 و 0.2 على امتداد الخط

../../../_images/wave_randomized.png

شكل 9.40 ترميز المعالم بموجات عشوائية

9.2.14.135. wedge_buffer

تُعيد نطاقًا عازلًا على شكل إسفين ينطلق من شكل هندسي نقطي.

الصيغة

wedge_buffer(center, azimuth, width, outer_radius, [inner_radius:=0.0])

تشير [] إلى الوسائط الاختيارية

الوسائط

  • center - نقطة المركز (الأصل) للنطاق العازل. يجب أن تكون شكلًا هندسيًا نقطيًا.

  • azimuth - الزاوية (بالدرجات) التي يتجه إليها منتصف الإسفين.

  • width - عرض النطاق العازل (بالدرجات). لاحظ أن الإسفين يمتد بمقدار نصف العرض الزاوي على كل جانب من اتجاه السَّمت.

  • outer_radius - نصف القطر الخارجي للنطاقات العازلة

  • inner_radius - نصف القطر الداخلي الاختياري للنطاقات العازلة

أمثلة

  • wedge_buffer(center:=geom_from_wkt('POINT(1 2)'),azimuth:=90,width:=180,outer_radius:=1) → نطاق عازل على شكل إسفين مركزه النقطة (1,2)، متجه نحو الشرق، بعرض 180 درجة ونصف قطر خارجي 1.

../../../_images/wedge_buffers.png

شكل 9.41 إنشاء نطاقات عازلة إسفينية للمعالم

للمزيد: خوارزمية Create wedge buffers (إنشاء نطاقات عازلة إسفينية)

9.2.14.136. within

تختبر ما إذا كان شكل هندسي يقع داخل آخر. تُعيد TRUE إذا كان geometry1 يقع بالكامل داخل geometry2.

الصيغة

within(geometry1, geometry2)

الوسائط

  • geometry1 - شكل هندسي

  • geometry2 - شكل هندسي

أمثلة

  • within( geom_from_wkt( 'POINT( 0.5 0.5)' ), geom_from_wkt( 'POLYGON((0 0, 0 1, 1 1, 1 0, 0 0))' ) ) → TRUE

  • within( geom_from_wkt( 'POINT( 5 5 )' ), geom_from_wkt( 'POLYGON((0 0, 0 1, 1 1, 1 0, 0 0 ))' ) ) → FALSE

للمزيد: overlay_within

9.2.14.137. $x

تُعيد الإحداثي x للمعلم النقطي الحالي. إذا كان المعلم متعدد النقاط، فسيُعاد الإحداثي x للنقطة الأولى. تحذير: هذه الدالة مُهمَلة. يُوصى باستخدام الدالة البديلة x() مع المتغير @geometry بدلًا منها.

الصيغة

$x

أمثلة

  • $x → 42

للمزيد: x

9.2.14.138. x

تُعيد الإحداثي x لشكل هندسي نقطي، أو الإحداثي x للمركز الهندسي (centroid) لشكل هندسي غير نقطي.

الصيغة

x(geometry)

الوسائط

  • geometry - شكل هندسي

أمثلة

  • x( geom_from_wkt( 'POINT(2 5)' ) ) → 2

  • x( @geometry ) → الإحداثي x للمركز الهندسي للمعلم الحالي

9.2.14.139. $x_at

تسترجع إحداثيًا x من الشكل الهندسي للمعلم الحالي. تحذير: هذه الدالة مُهمَلة. يُوصى باستخدام الدالة البديلة x_at مع المتغير @geometry بدلًا منها.

الصيغة

$x_at(vertex)

الوسائط

  • vertex - فهرس الرأس في الشكل الهندسي الحالي (تبدأ الفهارس من 0؛ والقيم السالبة تُحسب من الفهرس الأخير بدءًا من -1)

أمثلة

  • $x_at(1) → 5

للمزيد: x_at

9.2.14.140. x_at

تسترجع إحداثيًا x من الشكل الهندسي.

الصيغة

x_at(geometry, vertex)

الوسائط

  • geometry - كائن شكل هندسي

  • vertex - فهرس رأس الشكل الهندسي (تبدأ الفهارس من 0؛ وتُطبَّق القيم السالبة بدءًا من الفهرس الأخير، ابتداءً من -1)

أمثلة

  • x_at( geom_from_wkt( 'POINT(4 5)' ), 0 ) → 4

9.2.14.141. x_max

تُعيد أكبر قيمة للإحداثي x في الشكل الهندسي. تُجرى الحسابات في النظام المرجعي المكاني لهذا الشكل الهندسي.

الصيغة

x_max(geometry)

الوسائط

  • geometry - شكل هندسي

أمثلة

  • x_max( geom_from_wkt( 'LINESTRING(2 5, 3 6, 4 8)') ) → 4

9.2.14.142. x_min

تُعيد أصغر قيمة للإحداثي x في الشكل الهندسي. تُجرى الحسابات في النظام المرجعي المكاني لهذا الشكل الهندسي.

الصيغة

x_min(geometry)

الوسائط

  • geometry - شكل هندسي

أمثلة

  • x_min( geom_from_wkt( 'LINESTRING(2 5, 3 6, 4 8)') ) → 2

9.2.14.143. $y

تُعيد الإحداثي y للمعلم النقطي الحالي. إذا كان المعلم متعدد النقاط، فسيُعاد الإحداثي y للنقطة الأولى. تحذير: هذه الدالة مُهمَلة. يُوصى باستخدام الدالة البديلة y() مع المتغير @geometry بدلًا منها.

الصيغة

$y

أمثلة

  • $y → 42

للمزيد: y

9.2.14.144. y

تُعيد الإحداثي y لشكل هندسي نقطي، أو الإحداثي y للمركز الهندسي (centroid) لشكل هندسي غير نقطي.

الصيغة

y(geometry)

الوسائط

  • geometry - شكل هندسي

أمثلة

  • y( geom_from_wkt( 'POINT(2 5)' ) ) → 5

  • y( @geometry ) → الإحداثي y للمركز الهندسي للمعلم الحالي

9.2.14.145. $y_at

تسترجع إحداثيًا y من الشكل الهندسي للمعلم الحالي. تحذير: هذه الدالة مُهمَلة. يُوصى باستخدام الدالة البديلة y_at مع المتغير @geometry بدلًا منها.

الصيغة

$y_at(vertex)

الوسائط

  • vertex - فهرس الرأس في الشكل الهندسي الحالي (تبدأ الفهارس من 0؛ والقيم السالبة تُحسب من الفهرس الأخير بدءًا من -1)

أمثلة

  • $y_at(1) → 2

للمزيد: y_at

9.2.14.146. y_at

تسترجع إحداثيًا y من الشكل الهندسي.

الصيغة

y_at(geometry, vertex)

الوسائط

  • geometry - كائن شكل هندسي

  • vertex - فهرس رأس الشكل الهندسي (تبدأ الفهارس من 0؛ وتُطبَّق القيم السالبة بدءًا من الفهرس الأخير، ابتداءً من -1)

أمثلة

  • y_at( geom_from_wkt( 'POINT(4 5)' ), 0 ) → 5

9.2.14.147. y_max

تُعيد أكبر قيمة للإحداثي y في الشكل الهندسي. تُجرى الحسابات في النظام المرجعي المكاني لهذا الشكل الهندسي.

الصيغة

y_max(geometry)

الوسائط

  • geometry - شكل هندسي

أمثلة

  • y_max( geom_from_wkt( 'LINESTRING(2 5, 3 6, 4 8)') ) → 8

9.2.14.148. y_min

تُعيد أصغر قيمة للإحداثي y في الشكل الهندسي. تُجرى الحسابات في النظام المرجعي المكاني لهذا الشكل الهندسي.

الصيغة

y_min(geometry)

الوسائط

  • geometry - شكل هندسي

أمثلة

  • y_min( geom_from_wkt( 'LINESTRING(2 5, 3 6, 4 8)') ) → 5

9.2.14.149. $z

تُعيد قيمة z للمعلم النقطي الحالي إذا كان ثلاثي الأبعاد. إذا كان المعلم متعدد النقاط، فستُعاد قيمة z للنقطة الأولى. تحذير: هذه الدالة مُهمَلة. يُوصى باستخدام الدالة البديلة z() مع المتغير @geometry بدلًا منها.

الصيغة

$z

أمثلة

  • $z → 123

9.2.14.150. z

تُعيد الإحداثي z لشكل هندسي نقطي، أو NULL إذا لم يكن للشكل الهندسي قيمة z.

الصيغة

z(geometry)

الوسائط

  • geometry - شكل هندسي نقطي

أمثلة

  • z( geom_from_wkt( 'POINTZ(2 5 7)' ) ) → 7

9.2.14.151. z_at

تسترجع إحداثيًا z من الشكل الهندسي، أو NULL إذا لم يكن للشكل الهندسي قيمة z.

الصيغة

z_at(geometry, vertex)

الوسائط

  • geometry - كائن شكل هندسي

  • vertex - فهرس رأس الشكل الهندسي (تبدأ الفهارس من 0؛ وتُطبَّق القيم السالبة بدءًا من الفهرس الأخير، ابتداءً من -1)

أمثلة

  • z_at(geom_from_wkt('LineStringZ(0 0 0, 10 10 5, 10 10 0)'), 1) → 5

9.2.14.152. z_max

تُعيد أكبر قيمة للإحداثي z في الشكل الهندسي، أو NULL إذا لم يكن للشكل الهندسي قيمة z.

الصيغة

z_max(geometry)

الوسائط

  • geometry - شكل هندسي يحتوي على إحداثي z

أمثلة

  • z_max( geom_from_wkt( 'POINT ( 0 0 1 )' ) ) → 1

  • z_max( geom_from_wkt( 'MULTIPOINT ( 0 0 1 , 1 1 3 )' ) ) → 3

  • z_max( make_line( make_point( 0,0,0 ), make_point( -1,-1,-2 ) ) ) → 0

  • z_max( geom_from_wkt( 'LINESTRING( 0 0 0, 1 0 2, 1 1 -1 )' ) ) → 2

  • z_max( geom_from_wkt( 'POINT ( 0 0 )' ) ) → NULL

9.2.14.153. z_min

تُعيد أصغر قيمة للإحداثي z في الشكل الهندسي، أو NULL إذا لم يكن للشكل الهندسي قيمة z.

الصيغة

z_min(geometry)

الوسائط

  • geometry - شكل هندسي يحتوي على إحداثي z

أمثلة

  • z_min( geom_from_wkt( 'POINT ( 0 0 1 )' ) ) → 1

  • z_min( geom_from_wkt( 'MULTIPOINT ( 0 0 1 , 1 1 3 )' ) ) → 1

  • z_min( make_line( make_point( 0,0,0 ), make_point( -1,-1,-2 ) ) ) → -2

  • z_min( geom_from_wkt( 'LINESTRING( 0 0 0, 1 0 2, 1 1 -1 )' ) ) → -1

  • z_min( geom_from_wkt( 'POINT ( 0 0 )' ) ) → NULL

9.2.15. دوال التخطيط

تحتوي هذه المجموعة على دوال لمعالجة خصائص عناصر تخطيط الطباعة.

9.2.15.1. item_variables

تُعيد خريطة (map) من المتغيرات الخاصة بعنصر تخطيط داخل تخطيط الطباعة هذا.

الصيغة

item_variables(id)

الوسائط

  • id - معرّف (ID) عنصر التخطيط

أمثلة

  • map_get( item_variables('Map 0'), 'map_scale') → مقياس رسم العنصر 'Map 0' في تخطيط الطباعة الحالي

لمزيد من القراءة: قائمة المتغيرات الافتراضية

9.2.15.2. map_credits

تُعيد قائمة بسلاسل نصية لحقوق النشر (حقوق الاستخدام) للطبقات المعروضة في تخطيط، أو في عنصر خريطة محدد ضمن التخطيط.

الصيغة

map_credits([id], [include_layer_names:=false], [layer_name_separator:=': '])

تشير [] إلى الوسائط الاختيارية

الوسائط

  • id - معرّف (ID) عنصر الخريطة. إن لم يُحدَّد، تُستخدم الطبقات من جميع الخرائط في التخطيط.

  • include_layer_names - اضبطه على true لتضمين أسماء الطبقات قبل سلاسل حقوق النشر الخاصة بها

  • layer_name_separator - سلسلة نصية تُدرج بين أسماء الطبقات وسلاسل حقوق النشر الخاصة بها، إذا كانت قيمة include_layer_names هي true

أمثلة

  • array_to_string( map_credits() ) → قائمة مفصولة بفواصل بحقوق النشر لجميع الطبقات المعروضة في جميع عناصر الخرائط في التخطيط، مثل 'CC-BY-NC, CC-BY-SA'

  • array_to_string( map_credits( 'Main Map' ) ) → قائمة مفصولة بفواصل بحقوق النشر للطبقات المعروضة في عنصر التخطيط 'Main Map'، مثل 'CC-BY-NC, CC-BY-SA'

  • array_to_string( map_credits( 'Main Map', include_layer_names := true, layer_name_separator := ': ' ) ) → قائمة مفصولة بفواصل بأسماء الطبقات وحقوق النشر الخاصة بها للطبقات المعروضة في عنصر التخطيط 'Main Map'، مثل 'Railway lines: CC-BY-NC, Basemap: CC-BY-SA'

تتطلب هذه الدالة أن تكون خصائص البيانات الوصفية للوصول (Access) للطبقات قد مُلئت.

9.2.16. طبقات الخريطة

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

كما توفّر بعض الدوال الملائمة لمعالجة الطبقات.

9.2.16.1. decode_uri

تأخذ طبقة وتفكّ ترميز مُعرِّف الموارد (URI) لمزوّد البيانات الذي تستند إليه. تعتمد البيانات المتاحة على مزوّد البيانات.

الصيغة

decode_uri(layer, [part])

تشير [] إلى الوسائط الاختيارية

الوسائط

  • layer - الطبقة المراد فكّ ترميز URI الخاص بها.

  • part - جزء URI المراد إعادته. إن لم يُحدَّد، تُعاد خريطة (map) بجميع أجزاء URI.

أمثلة

  • decode_uri(@layer) → {'layerId': '0', 'layerName': '', 'path': '/home/qgis/shapefile.shp'}

  • decode_uri(@layer) → {'layerId': NULL, 'layerName': 'layer', 'path': '/home/qgis/geopackage.gpkg'}

  • decode_uri(@layer, 'path') → 'C:\my_data\qgis\shape.shp'

9.2.16.2. layer_property

تُعيد قيمة خاصية أو بيانات تعريفية (metadata) مطابقة للطبقة.

الصيغة

layer_property(layer, property, [translate:=true])

تشير [] إلى الوسائط الاختيارية

الوسائط

  • layer - سلسلة نصية تمثّل إما اسم طبقة أو معرّف طبقة

  • property - سلسلة نصية تقابل الخاصية المراد إعادتها. الخيارات الصالحة هي:

    • name: اسم الطبقة

    • id: معرّف (ID) الطبقة

    • title: سلسلة عنوان البيانات التعريفية

    • abstract: سلسلة ملخّص البيانات التعريفية

    • keywords: الكلمات المفتاحية في البيانات التعريفية

    • data_url: عنوان URL في البيانات التعريفية

    • attribution: سلسلة الإسناد في البيانات التعريفية

    • attribution_url: عنوان URL للإسناد في البيانات التعريفية

    • source: مصدر الطبقة

    • min_scale: أدنى مقياس رسم لعرض الطبقة

    • max_scale: أقصى مقياس رسم لعرض الطبقة

    • is_editable: إذا كانت الطبقة في وضع التحرير

    • crs: نظام الإحداثيات المرجعي (CRS) للطبقة

    • crs_definition: التعريف الكامل لنظام الإحداثيات المرجعي للطبقة

    • crs_description: وصف نظام الإحداثيات المرجعي للطبقة

    • crs_ellipsoid: اختصار إهليلج نظام الإحداثيات المرجعي للطبقة

    • extent: امتداد الطبقة (ككائن شكل هندسي)

    • distance_units: وحدات المسافة للطبقة

    • type: نوع الطبقة، مثل Vector أو Raster

    • storage_type: صيغة التخزين (للطبقات المتجهية فقط)

    • geometry_type: نوع الشكل الهندسي، مثل Point (للطبقات المتجهية فقط)

    • feature_count: العدد التقريبي لمعالم الطبقة (للطبقات المتجهية فقط)

    • path: مسار الملف إلى مصدر بيانات الطبقة. متاح فقط للطبقات المعتمدة على ملفات.

  • translate - ما إذا كانت ستُعاد سلسلة نصية مترجمة. يؤثر حاليًا على الخاصية 'type' فقط. افتراضيًا تُعاد السلاسل المترجمة. ضبطه على false يعطّل الترجمة، فتُعاد دائمًا سلاسل باللغة الإنجليزية.

أمثلة

  • layer_property('streets','title') → 'Basemap Streets'

  • layer_property('airports','feature_count') → 120

  • layer_property('landsat','crs') → 'EPSG:4326'

لمزيد من القراءة: خصائص الطبقات المتجهية و الشبكية (رستر) و الشبكة المثلثية (mesh)

9.2.16.3. load_layer

تُحمِّل طبقة بواسطة URI المصدر واسم مزوّد البيانات.

الصيغة

load_layer(uri, provider)

الوسائط

  • uri - سلسلة URI لمصدر الطبقة

  • provider - اسم مزوّد بيانات الطبقة

أمثلة

  • layer_property(load_layer('c:/data/roads.shp', 'ogr'), 'feature_count') → عدد المعالم في الطبقة المتجهية c:/data/roads.shp

9.2.17. دوال الخرائط (Maps)

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

9.2.17.1. from_json

تُحمِّل سلسلة نصية بصيغة JSON.

الصيغة

from_json(string)

الوسائط

  • string - سلسلة JSON

أمثلة

  • from_json('{"1":"one","2":"two"}') → { '1': 'one', '2': 'two' }

  • from_json('[1,2,3]') → [1,2,3]

9.2.17.2. hstore_to_map

تُنشئ خريطة (map) من سلسلة نصية بصيغة hstore.

الصيغة

hstore_to_map(string)

الوسائط

  • string - السلسلة النصية المُدخَلة

أمثلة

  • hstore_to_map('qgis=>rocks') → { 'qgis': 'rocks' }

9.2.17.3. map

تُعيد خريطة (map) تحتوي على جميع المفاتيح والقيم المُمرَّرة كأزواج من الوسائط.

الصيغة

map(key1, value1, key2, value2, ...)

الوسائط

  • key - مفتاح (سلسلة نصية)

  • value - قيمة

أمثلة

  • map('1','one','2', 'two') → { '1': 'one', '2': 'two' }

  • map('1','one','2', 'two')['1'] → 'one'

9.2.17.4. map_akeys

تُعيد جميع مفاتيح الخريطة (map) على شكل مصفوفة.

الصيغة

map_akeys(map)

الوسائط

  • map - خريطة (map)

أمثلة

  • map_akeys(map('1','one','2','two')) → [ '1', '2' ]

9.2.17.5. map_avals

تُعيد جميع قيم الخريطة (map) على شكل مصفوفة.

الصيغة

map_avals(map)

الوسائط

  • map - خريطة (map)

أمثلة

  • map_avals(map('1','one','2','two')) → [ 'one', 'two' ]

9.2.17.6. map_concat

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

الصيغة

map_concat(map1, map2, ...)

الوسائط

  • map - خريطة (map)

أمثلة

  • map_concat(map('1','one', '2','overridden'),map('2','two', '3','three')) → { '1': 'one', '2': 'two', '3': 'three' }

9.2.17.7. map_delete

تُعيد خريطة (map) بعد حذف المفتاح المعطى وقيمته المقابلة.

الصيغة

map_delete(map, key)

الوسائط

  • map - خريطة (map)

  • key - المفتاح المراد حذفه

أمثلة

  • map_delete(map('1','one','2','two'),'2') → { '1': 'one' }

9.2.17.8. map_exist

تُعيد TRUE إذا كان المفتاح المعطى موجودًا في الخريطة (map).

الصيغة

map_exist(map, key)

الوسائط

  • map - خريطة (map)

  • key - المفتاح المراد البحث عنه

أمثلة

  • map_exist(map('1','one','2','two'),'3') → FALSE

9.2.17.9. map_get

تُعيد قيمة من الخريطة (map) بمعلومية مفتاحها. تُعيد NULL إذا لم يكن المفتاح موجودًا.

الصيغة

map_get(map, key)

الوسائط

  • map - خريطة (map)

  • key - المفتاح المراد البحث عنه

أمثلة

  • map_get(map('1','one','2','two'),'2') → 'two'

  • map_get( item_variables('Map 0'), 'map_scale') → مقياس رسم العنصر 'Map 0' (إن وُجد) في تخطيط الطباعة الحالي

تلميح

يمكنك أيضًا استخدام عامل الفهرسة ([]) للحصول على قيمة من الخريطة.

9.2.17.10. map_insert

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

الصيغة

map_insert(map, key, value)

الوسائط

  • map - خريطة (map)

  • key - المفتاح المراد إضافته

  • value - القيمة المراد إضافتها

أمثلة

  • map_insert(map('1','one'),'3','three') → { '1': 'one', '3': 'three' }

  • map_insert(map('1','one','2','overridden'),'2','two') → { '1': 'one', '2': 'two' }

9.2.17.11. map_prefix_keys

تُعيد خريطة (map) تُسبق فيها جميع المفاتيح بسلسلة نصية معطاة.

الصيغة

map_prefix_keys(map, prefix)

الوسائط

  • map - خريطة (map)

  • prefix - سلسلة نصية

أمثلة

  • map_prefix_keys(map('1','one','2','two'), 'prefix-') → { 'prefix-1': 'one', 'prefix-2': 'two' }

9.2.17.12. map_to_hstore

تدمج عناصر الخريطة (map) في سلسلة نصية بصيغة hstore.

الصيغة

map_to_hstore(map)

الوسائط

  • map - الخريطة (map) المُدخَلة

أمثلة

  • map_to_hstore(map('1','one','2','two')) → '"1"=>"one"','"2"=>"two"'

9.2.17.13. map_to_html_dl

تدمج عناصر الخريطة (map) في سلسلة نصية على شكل قائمة تعريفات HTML.

الصيغة

map_to_html_dl(map)

الوسائط

  • map - الخريطة (map) المُدخَلة

أمثلة

  • map_to_html_dl(map('1','one','2','two')) → <dl><dt>1</dt><dd>one</dd><dt>2</dt><dd>two</dd></dl>

9.2.17.14. map_to_html_table

تدمج عناصر الخريطة (map) في سلسلة نصية على شكل جدول HTML.

الصيغة

map_to_html_table(map)

الوسائط

  • map - الخريطة (map) المُدخَلة

أمثلة

  • map_to_html_table(map('1','one','2','two')) → <table><thead><tr><th>1</th><th>2</th></tr></thead><tbody><tr><td>one</td><td>two</td></tr></tbody></table>

9.2.17.15. to_json

تُنشئ سلسلة نصية بصيغة JSON من خريطة (map) أو مصفوفة أو قيمة أخرى.

الصيغة

to_json(value)

الوسائط

  • value - القيمة المُدخَلة

أمثلة

  • to_json(map('1','one','2','two')) → {"1":"one","2":"two"}

  • to_json(array(1,2,3)) → [1,2,3]

9.2.17.16. url_encode

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

لاحظ أن علامة الجمع '+' لا تُحوَّل.

الصيغة

url_encode(map)

الوسائط

  • map - خريطة (map).

أمثلة

  • url_encode(map('a&+b', 'a and plus b', 'a=b', 'a equals b')) → 'a%26+b=a%20and%20plus%20b&a%3Db=a%20equals%20b'

9.2.18. الدوال الرياضية

تحتوي هذه المجموعة على الدوال الرياضية (مثل الجذر التربيعي و sin و cos).

9.2.18.1. abs

تُعيد القيمة المطلقة لعدد.

الصيغة

abs(value)

الوسائط

  • value - عدد

أمثلة

  • abs(-2) → 2

9.2.18.2. acos

تُعيد جيب التمام العكسي (arccos) لقيمة بالراديان.

الصيغة

acos(value)

الوسائط

  • value - جيب تمام زاوية بالراديان

أمثلة

  • acos(0.5) → 1.0471975511966

9.2.18.3. asin

تُرجع الجيب العكسي (arcsine) لقيمة بالراديان.

الصيغة

asin(value)

الوسائط

  • value - جيب زاوية بالراديان

أمثلة

  • asin(1.0) → 1.5707963267949

9.2.18.4. atan

تُرجع الظل العكسي (arctangent) لقيمة بالراديان.

الصيغة

atan(value)

الوسائط

  • value - ظل زاوية بالراديان

أمثلة

  • atan(0.5) → 0.463647609000806

9.2.18.5. atan2

تُرجع الظل العكسي لـ dy/dx مستخدمةً إشارتي الوسيطين لتحديد الربع الذي تقع فيه النتيجة.

الصيغة

atan2(dy, dx)

الوسائط

  • dy - فرق الإحداثي y

  • dx - فرق الإحداثي x

أمثلة

  • atan2(1.0, 1.732) → 0.523611477769969

9.2.18.6. ceil

تقرّب العدد إلى الأعلى.

الصيغة

ceil(value)

الوسائط

  • value - عدد

أمثلة

  • ceil(4.9) → 5

  • ceil(-4.9) → -4

9.2.18.7. clamp

تحصر قيمة مُدخلة ضمن نطاق محدد.

الصيغة

clamp(minimum, input, maximum)

الوسائط

  • minimum - أصغر قيمة مسموح أن تأخذها input.

  • input - قيمة ستُحصر ضمن النطاق المحدد بـ minimum و maximum

  • maximum - أكبر قيمة مسموح أن تأخذها input

أمثلة

  • clamp(1,5,10) → 5

    input تقع بين 1 و 10 لذا تُرجع دون تغيير

  • clamp(1,0,10) → 1

    input أصغر من القيمة الدنيا 1، لذا تُرجع الدالة 1

  • clamp(1,11,10) → 10

    input أكبر من القيمة العليا 10، لذا تُرجع الدالة 10

9.2.18.8. cos

تُرجع جيب تمام زاوية.

الصيغة

cos(angle)

الوسائط

  • angle - الزاوية بالراديان

أمثلة

  • cos(1.571) → 0.000796326710733263

9.2.18.9. degrees

تحوّل من الراديان إلى الدرجات.

الصيغة

degrees(radians)

الوسائط

  • radians - قيمة عددية

أمثلة

  • degrees(3.14159) → 180

  • degrees(1) → 57.2958

9.2.18.10. exp

تُرجع الدالة الأسية لقيمة.

الصيغة

exp(value)

الوسائط

  • value - العدد المراد إرجاع أسّه

أمثلة

  • exp(1.0) → 2.71828182845905

9.2.18.11. floor

تقرّب العدد إلى الأسفل.

الصيغة

floor(value)

الوسائط

  • value - عدد

أمثلة

  • floor(4.9) → 4

  • floor(-4.9) → -5

9.2.18.12. ln

تُرجع اللوغاريتم الطبيعي لقيمة.

الصيغة

ln(value)

الوسائط

  • value - قيمة عددية

أمثلة

  • ln(1) → 0

  • ln(2.7182818284590452354) → 1

9.2.18.13. log

تُرجع قيمة لوغاريتم القيمة المُمرَّرة بالأساس المحدد.

الصيغة

log(base, value)

الوسائط

  • base - أي عدد موجب

  • value - أي عدد موجب

أمثلة

  • log(2, 32) → 5

  • log(0.5, 32) → -5

9.2.18.14. log10

تُرجع قيمة اللوغاريتم العشري (الأساس 10) للتعبير المُمرَّر.

الصيغة

log10(value)

الوسائط

  • value - أي عدد موجب

أمثلة

  • log10(1) → 0

  • log10(100) → 2

9.2.18.15. max

تُرجع أكبر قيمة في مجموعة من القيم.

الصيغة

max(value1, value2, ...)

الوسائط

  • value - عدد

أمثلة

  • max(2,10.2,5.5) → 10.2

  • max(20.5,NULL,6.2) → 20.5

9.2.18.16. min

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

الصيغة

min(value1, value2, ...)

الوسائط

  • value - عدد

أمثلة

  • min(20.5,10,6.2) → 6.2

  • min(2,-10.3,NULL) → -10.3

9.2.18.17. pi

تُرجع قيمة باي (pi) لاستخدامها في الحسابات.

الصيغة

pi()

أمثلة

  • pi() → 3.14159265358979

9.2.18.18. radians

تحوّل من الدرجات إلى الراديان.

الصيغة

radians(degrees)

الوسائط

  • degrees - قيمة عددية

أمثلة

  • radians(180) → 3.14159

  • radians(57.2958) → 1

9.2.18.19. rand

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

الصيغة

rand(min, max, [seed:=NULL])

تشير [] إلى الوسائط الاختيارية

الوسائط

  • min - عدد صحيح يمثل أصغر عدد عشوائي ممكن مطلوب

  • max - عدد صحيح يمثل أكبر عدد عشوائي ممكن مطلوب

  • seed - أي قيمة تُستخدم بذرةً

أمثلة

  • rand(1, 10) → 8

9.2.18.20. randf

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

الصيغة

randf([min:=0.0], [max:=1.0], [seed:=NULL])

تشير [] إلى الوسائط الاختيارية

الوسائط

  • min - عدد عشري يمثل أصغر عدد عشوائي ممكن مطلوب

  • max - عدد عشري يمثل أكبر عدد عشوائي ممكن مطلوب

  • seed - أي قيمة تُستخدم بذرةً

أمثلة

  • randf(1, 10) → 4.59258286403147

9.2.18.21. round

تقرّب العدد إلى عدد محدد من المنازل العشرية.

الصيغة

round(value, [places:=0])

تشير [] إلى الوسائط الاختيارية

الوسائط

  • value - العدد العشري المراد تقريبه

  • places - عدد صحيح اختياري يمثل عدد المنازل العشرية التي يُقرَّب إليها. يمكن أن يكون سالبًا.

أمثلة

  • round(1234.567, 2) → 1234.57

  • round(1234.567) → 1235

  • round(1234.567, -1) → 1230

9.2.18.22. scale_exponential

تحوّل قيمة معطاة من مجال إدخال إلى نطاق إخراج باستخدام منحنى أسي. يمكن استخدام هذه الدالة لتنعيم دخول القيم إلى نطاق الإخراج المحدد أو خروجها منه.

الصيغة

scale_exponential(value, domain_min, domain_max, range_min, range_max, exponent)

الوسائط

  • value - قيمة في مجال الإدخال. ستُرجع الدالة القيمة المقابلة لها بعد تحويلها إلى نطاق الإخراج.

  • domain_min - يحدد القيمة الدنيا في مجال الإدخال، أي أصغر قيمة ينبغي أن تأخذها قيمة الإدخال.

  • domain_max - يحدد القيمة العليا في مجال الإدخال، أي أكبر قيمة ينبغي أن تأخذها قيمة الإدخال.

  • range_min - يحدد القيمة الدنيا في نطاق الإخراج، أي أصغر قيمة ينبغي أن تُخرجها الدالة.

  • range_max - يحدد القيمة العليا في نطاق الإخراج، أي أكبر قيمة ينبغي أن تُخرجها الدالة.

  • exponent - قيمة موجبة (أكبر من 0) تحدد طريقة ربط قيم الإدخال بنطاق الإخراج. الأسس الكبيرة تجعل قيم الإخراج 'تتسارع تدريجيًا' (ease in)، إذ تبدأ ببطء ثم تتسارع كلما اقتربت قيم الإدخال من الحد الأعلى للمجال. أما الأسس الأصغر (أقل من 1) فتجعل قيم الإخراج 'تتباطأ تدريجيًا' (ease out)، إذ يبدأ الربط سريعًا ثم يتباطأ كلما اقترب من الحد الأعلى للمجال.

أمثلة

  • scale_exponential(5,0,10,0,100,2) → 3.030

    تسارع تدريجي باستخدام أس قيمته 2

  • scale_exponential(3,0,10,0,100,0.5) → 87.585

    تباطؤ تدريجي باستخدام أس قيمته 0.5

9.2.18.23. scale_linear

تحوّل قيمة معطاة من مجال إدخال إلى نطاق إخراج باستخدام الاستيفاء الخطي.

الصيغة

scale_linear(value, domain_min, domain_max, range_min, range_max)

الوسائط

  • value - قيمة في مجال الإدخال. ستُرجع الدالة القيمة المقابلة لها بعد تحويلها إلى نطاق الإخراج.

  • domain_min - يحدد القيمة الدنيا في مجال الإدخال، أي أصغر قيمة ينبغي أن تأخذها قيمة الإدخال.

  • domain_max - يحدد القيمة العليا في مجال الإدخال، أي أكبر قيمة ينبغي أن تأخذها قيمة الإدخال.

  • range_min - يحدد القيمة الدنيا في نطاق الإخراج، أي أصغر قيمة ينبغي أن تُخرجها الدالة.

  • range_max - يحدد القيمة العليا في نطاق الإخراج، أي أكبر قيمة ينبغي أن تُخرجها الدالة.

أمثلة

  • scale_linear(5,0,10,0,100) → 50

  • scale_linear(0.2,0,1,0,360) → 72

    تحويل قيمة بين 0 و 1 إلى زاوية بين 0 و 360

  • scale_linear(1500,1000,10000,9,20) → 9.6111111

    تحويل عدد سكان يتراوح بين 1000 و 10000 إلى حجم خط بين 9 و 20

9.2.18.24. scale_polynomial

تحوّل قيمة معطاة من مجال إدخال إلى نطاق إخراج باستخدام منحنى متعدد الحدود. يمكن استخدام هذه الدالة لتنعيم دخول القيم إلى نطاق الإخراج المحدد أو خروجها منه.

الصيغة

scale_polynomial(value, domain_min, domain_max, range_min, range_max, exponent)

الوسائط

  • value - قيمة في مجال الإدخال. ستُرجع الدالة القيمة المقابلة لها بعد تحويلها إلى نطاق الإخراج.

  • domain_min - يحدد القيمة الدنيا في مجال الإدخال، أي أصغر قيمة ينبغي أن تأخذها قيمة الإدخال.

  • domain_max - يحدد القيمة العليا في مجال الإدخال، أي أكبر قيمة ينبغي أن تأخذها قيمة الإدخال.

  • range_min - يحدد القيمة الدنيا في نطاق الإخراج، أي أصغر قيمة ينبغي أن تُخرجها الدالة.

  • range_max - يحدد القيمة العليا في نطاق الإخراج، أي أكبر قيمة ينبغي أن تُخرجها الدالة.

  • exponent - قيمة موجبة (أكبر من 0) تحدد طريقة ربط قيم الإدخال بنطاق الإخراج. الأسس الكبيرة تجعل قيم الإخراج 'تتسارع تدريجيًا' (ease in)، إذ تبدأ ببطء ثم تتسارع كلما اقتربت قيم الإدخال من الحد الأعلى للمجال. أما الأسس الأصغر (أقل من 1) فتجعل قيم الإخراج 'تتباطأ تدريجيًا' (ease out)، إذ يبدأ الربط سريعًا ثم يتباطأ كلما اقترب من الحد الأعلى للمجال.

أمثلة

  • scale_polynomial(5,0,10,0,100,2) → 25

    تسارع تدريجي باستخدام أس قيمته 2

  • scale_polynomial(3,0,10,0,100,0.5) → 54.772

    تباطؤ تدريجي باستخدام أس قيمته 0.5

9.2.18.25. sin

تُرجع جيب زاوية.

الصيغة

sin(angle)

الوسائط

  • angle - الزاوية بالراديان

أمثلة

  • sin(1.571) → 0.999999682931835

9.2.18.26. sqrt

تُرجع الجذر التربيعي لقيمة.

الصيغة

sqrt(value)

الوسائط

  • value - عدد

أمثلة

  • sqrt(9) → 3

9.2.18.27. tan

تُرجع ظل زاوية.

الصيغة

tan(angle)

الوسائط

  • angle - الزاوية بالراديان

أمثلة

  • tan(1.0) → 1.5574077246549

9.2.19. دوال الشبكة المثلثية (mesh)

تحتوي هذه المجموعة على دوال تحسب أو تُرجع قيمًا متعلقة بالشبكة المثلثية (mesh).

9.2.19.1. $face_area

تُرجع مساحة الوجه الحالي في الشبكة المثلثية (mesh). وتراعي المساحة المحسوبة بهذه الدالة كلًا من إعداد الإهليلج (ellipsoid) وإعدادات وحدة المساحة في المشروع الحالي. فعلى سبيل المثال، إذا ضُبط إهليلج للمشروع فستكون المساحة المحسوبة إهليلجية، وإذا لم يُضبط إهليلج فستكون المساحة المحسوبة مستوية.

الصيغة

$face_area

أمثلة

  • $face_area → 42

9.2.19.2. $face_index

تُرجع فهرس الوجه الحالي في الشبكة المثلثية (mesh).

الصيغة

$face_index

أمثلة

  • $face_index → 4581

9.2.19.3. $vertex_as_point

تُرجع الرأس الحالي بوصفه شكلًا هندسيًا نقطيًا.

الصيغة

$vertex_as_point

أمثلة

  • geom_to_wkt( $vertex_as_point ) → 'POINT(800 1500 41)'

9.2.19.4. $vertex_index

تُرجع فهرس الرأس الحالي في الشبكة المثلثية (mesh).

الصيغة

$vertex_index

أمثلة

  • $vertex_index → 9874

9.2.19.5. $vertex_x

تُرجع الإحداثي X للرأس الحالي في الشبكة المثلثية (mesh).

الصيغة

$vertex_x

أمثلة

  • $vertex_x → 42.12

9.2.19.6. $vertex_y

تُرجع الإحداثي Y للرأس الحالي في الشبكة المثلثية (mesh).

الصيغة

$vertex_y

أمثلة

  • $vertex_y → 12.24

9.2.19.7. $vertex_z

تُرجع قيمة Z للرأس الحالي في الشبكة المثلثية (mesh).

الصيغة

$vertex_z

أمثلة

  • $vertex_z → 42

9.2.20. العوامل

تضم هذه المجموعة العوامل (مثل +، -، *). لاحظ أنه في معظم الدوال الرياضية أدناه، إذا كان أحد المُدخلات NULL فإن النتيجة تكون NULL.

9.2.20.1. %

باقي القسمة. يأخذ إشارة المقسوم.

الصيغة

a % b

الوسائط

  • a - قيمة

  • b - قيمة

أمثلة

  • 9 % 2 → 1

  • 9 % -2 → 1

  • -9 % 2 → -1

  • 5 % NULL → NULL

9.2.20.2. *

ضرب قيمتين

الصيغة

a * b

الوسائط

  • a - قيمة

  • b - قيمة

أمثلة

  • 5 * 4 → 20

  • 5 * NULL → NULL

9.2.20.3. +

جمع قيمتين. إذا كانت إحدى القيمتين NULL فستكون النتيجة NULL.

الصيغة

a + b

الوسائط

  • a - قيمة

  • b - قيمة

أمثلة

  • 5 + 4 → 9

  • 5 + NULL → NULL

  • 'QGIS ' + 'ROCKS' → 'QGIS ROCKS'

  • to_datetime('2020-08-01 12:00:00') + '1 day 2 hours' → 2020-08-02T14:00:00

لمزيد من القراءة: concat، ||

9.2.20.4. -

طرح قيمتين. إذا كانت إحدى القيمتين NULL فستكون النتيجة NULL.

الصيغة

a - b

الوسائط

  • a - قيمة

  • b - قيمة

أمثلة

  • 5 - 4 → 1

  • 5 - NULL → NULL

  • to_datetime('2012-05-05 12:00:00') - to_interval('1 day 2 hours') → 2012-05-04T10:00:00

9.2.20.5. /

قسمة قيمتين

الصيغة

a / b

الوسائط

  • a - قيمة

  • b - قيمة

أمثلة

  • 5 / 4 → 1.25

  • 5 / NULL → NULL

9.2.20.6. //

القسمة الصحيحة (floor division) لقيمتين

الصيغة

a // b

الوسائط

  • a - قيمة

  • b - قيمة

أمثلة

  • 9 // 2 → 4

9.2.20.7. <

تقارن قيمتين وتُعطي 1 إذا كانت القيمة اليسرى أصغر من القيمة اليمنى.

الصيغة

a < b

الوسائط

  • a - قيمة

  • b - قيمة

أمثلة

  • 5 < 4 → FALSE

  • 5 < 5 → FALSE

  • 4 < 5 → TRUE

9.2.20.8. <=

تقارن قيمتين وتُعطي 1 إذا كانت القيمة اليسرى أصغر من القيمة اليمنى أو تساويها.

الصيغة

a <= b

الوسائط

  • a - قيمة

  • b - قيمة

أمثلة

  • 5 <= 4 → FALSE

  • 5 <= 5 → TRUE

  • 4 <= 5 → TRUE

9.2.20.9. <>

تقارن قيمتين وتُعطي 1 إذا كانتا غير متساويتين.

الصيغة

a <> b

الوسائط

  • a - قيمة

  • b - قيمة

أمثلة

  • 5 <> 4 → TRUE

  • 4 <> 4 → FALSE

  • 5 <> NULL → NULL

  • NULL <> NULL → NULL

9.2.20.10. =

تقارن قيمتين وتُعطي 1 إذا كانتا متساويتين.

الصيغة

a = b

الوسائط

  • a - قيمة

  • b - قيمة

أمثلة

  • 5 = 4 → FALSE

  • 4 = 4 → TRUE

  • 5 = NULL → NULL

  • NULL = NULL → NULL

9.2.20.11. >

تقارن قيمتين وتُعطي 1 إذا كانت القيمة اليسرى أكبر من القيمة اليمنى.

الصيغة

a > b

الوسائط

  • a - قيمة

  • b - قيمة

أمثلة

  • 5 > 4 → TRUE

  • 5 > 5 → FALSE

  • 4 > 5 → FALSE

9.2.20.12. >=

تقارن قيمتين وتُعطي 1 إذا كانت القيمة اليسرى أكبر من القيمة اليمنى أو تساويها.

الصيغة

a >= b

الوسائط

  • a - قيمة

  • b - قيمة

أمثلة

  • 5 >= 4 → TRUE

  • 5 >= 5 → TRUE

  • 4 >= 5 → FALSE

9.2.20.13. AND

تُرجع TRUE عندما يكون الشرطان a و b صحيحين.

الصيغة

a AND b

الوسائط

  • a - شرط

  • b - شرط

أمثلة

  • TRUE AND TRUE → TRUE

  • TRUE AND FALSE → FALSE

  • 4 = 2+2 AND 1 = 1 → TRUE

  • 4 = 2+2 AND 1 = 2 → FALSE

9.2.20.14. BETWEEN

تُرجع TRUE إذا كانت القيمة ضمن النطاق المحدد. يُعدّ النطاق شاملًا لحدوده. لاختبار الاستبعاد يمكن استخدام NOT BETWEEN.

الصيغة

value BETWEEN lower_bound AND higher_bound

الوسائط

  • value - القيمة المراد مقارنتها بالنطاق. يمكن أن تكون سلسلة نصية أو عددًا أو تاريخًا.

  • lower_bound AND higher_bound - حدود النطاق

أمثلة

  • 'B' BETWEEN 'A' AND 'C' → TRUE

  • 2 BETWEEN 1 AND 3 → TRUE

  • 2 BETWEEN 2 AND 3 → TRUE

  • 'B' BETWEEN 'a' AND 'c' → FALSE

  • lower('B') BETWEEN 'a' AND 'b' → TRUE

ملاحظة

value BETWEEN lower_bound AND higher_bound تكافئ "value >= lower_bound AND value <= higher_bound".

لمزيد من القراءة: NOT BETWEEN

9.2.20.15. ILIKE

تُرجع TRUE إذا طابق المُعامل الأول النمط المُعطى دون مراعاة حالة الأحرف. يمكن استخدام LIKE بدلًا من ILIKE لجعل المطابقة حساسة لحالة الأحرف. تعمل مع الأعداد أيضًا.

الصيغة

string/number ILIKE pattern

الوسائط

  • string/number - السلسلة النصية المراد البحث فيها

  • pattern - النمط المراد العثور عليه، يمكنك استخدام '%' محرفًا بديلًا (wildcard)، و '_' لمحرف واحد، و '\\' لتهريب هذه المحارف الخاصة.

أمثلة

  • 'A' ILIKE 'A' → TRUE

  • 'A' ILIKE 'a' → TRUE

  • 'A' ILIKE 'B' → FALSE

  • 'ABC' ILIKE 'b' → FALSE

  • 'ABC' ILIKE 'B' → FALSE

  • 'ABC' ILIKE '_b_' → TRUE

  • 'ABC' ILIKE '_B_' → TRUE

  • 'ABCD' ILIKE '_b_' → FALSE

  • 'ABCD' ILIKE '_B_' → FALSE

  • 'ABCD' ILIKE '_b%' → TRUE

  • 'ABCD' ILIKE '_B%' → TRUE

  • 'ABCD' ILIKE '%b%' → TRUE

  • 'ABCD' ILIKE '%B%' → TRUE

  • 'ABCD%' ILIKE 'abcd\\%' → TRUE

  • 'ABCD' ILIKE '%B\\%' → FALSE

9.2.20.16. IN

تُرجع TRUE إذا وُجدت القيمة ضمن قائمة من القيم.

الصيغة

a IN b

الوسائط

  • a - قيمة

  • b - قائمة من القيم

أمثلة

  • 'A' IN ('A','B') → TRUE

  • 'A' IN ('C','B') → FALSE

9.2.20.17. IS

تُرجع TRUE إذا كانت a هي نفسها b.

الصيغة

a IS b

الوسائط

  • a - أي قيمة

  • b - أي قيمة

أمثلة

  • 'A' IS 'A' → TRUE

  • 'A' IS 'a' → FALSE

  • 4 IS 4 → TRUE

  • 4 IS 2+2 → TRUE

  • 4 IS 2 → FALSE

  • @geometry IS NULL → 0، إذا لم يكن الشكل الهندسي NULL

9.2.20.18. IS NOT

تُرجع TRUE إذا لم تكن a هي نفسها b.

الصيغة

a IS NOT b

الوسائط

  • a - قيمة

  • b - قيمة

أمثلة

  • 'a' IS NOT 'b' → TRUE

  • 'a' IS NOT 'a' → FALSE

  • 4 IS NOT 2+2 → FALSE

9.2.20.19. LIKE

تُرجع TRUE إذا طابق المُعامل الأول النمط المُعطى. تعمل مع الأعداد أيضًا.

الصيغة

string/number LIKE pattern

الوسائط

  • string/number - القيمة

  • pattern - النمط المراد مقارنة القيمة به، يمكنك استخدام '%' محرفًا بديلًا (wildcard)، و '_' لمحرف واحد، و '\\' لتهريب هذه المحارف الخاصة.

أمثلة

  • 'A' LIKE 'A' → TRUE

  • 'A' LIKE 'a' → FALSE

  • 'A' LIKE 'B' → FALSE

  • 'ABC' LIKE 'B' → FALSE

  • 'ABC' LIKE '_B_' → TRUE

  • 'ABCD' LIKE '_B_' → FALSE

  • 'ABCD' LIKE '_B%' → TRUE

  • 'ABCD' LIKE '%B%' → TRUE

  • '1%' LIKE '1\\%' → TRUE

  • '1_' LIKE '1\\%' → FALSE

9.2.20.20. NOT

ينفي شرطًا.

الصيغة

NOT a

الوسائط

  • a - شرط

أمثلة

  • NOT 1 → FALSE

  • NOT 0 → TRUE

9.2.20.21. NOT BETWEEN

تُرجع TRUE إذا لم تكن القيمة ضمن النطاق المحدد. يُعدّ النطاق شاملًا لحدوده.

الصيغة

value NOT BETWEEN lower_bound AND higher_bound

الوسائط

  • value - القيمة المراد مقارنتها بالنطاق. يمكن أن تكون سلسلة نصية أو عددًا أو تاريخًا.

  • lower_bound AND higher_bound - حدود النطاق

أمثلة

  • 'B' NOT BETWEEN 'A' AND 'C' → FALSE

  • 1.0 NOT BETWEEN 1.1 AND 1.2 → TRUE

  • 2 NOT BETWEEN 2 AND 3 → FALSE

  • 'B' NOT BETWEEN 'a' AND 'c' → TRUE

  • lower('B') NOT BETWEEN 'a' AND 'b' → FALSE

ملاحظة

value NOT BETWEEN lower_bound AND higher_bound تكافئ "value < lower_bound OR value > higher_bound".

لمزيد من القراءة: BETWEEN

9.2.20.22. OR

تُرجع TRUE عندما يكون الشرط a أو b صحيحًا.

الصيغة

a OR b

الوسائط

  • a - شرط

  • b - شرط

أمثلة

  • 4 = 2+2 OR 1 = 1 → TRUE

  • 4 = 2+2 OR 1 = 2 → TRUE

  • 4 = 2   OR 1 = 2 → FALSE

9.2.20.23. []

عامل الفهرسة. يُرجع عنصرًا من قيمة مصفوفة أو خريطة (map).

الصيغة

[index]

الوسائط

  • index - فهرس المصفوفة أو قيمة مفتاح الخريطة (map)

أمثلة

  • array(1,2,3)[0] → 1

  • array(1,2,3)[2] → 3

  • array(1,2,3)[-1] → 3

  • map('a',1,'b',2)['a'] → 1

  • map('a',1,'b',2)['b'] → 2

لمزيد من القراءة: array_get، map_get

9.2.20.24. ^

رفع قيمة إلى قوة قيمة أخرى.

الصيغة

a ^ b

الوسائط

  • a - قيمة

  • b - قيمة

أمثلة

  • 5 ^ 4 → 625

  • 5 ^ NULL → NULL

9.2.20.25. ||

يضمّ قيمتين معًا في سلسلة نصية واحدة.

إذا كانت إحدى القيمتين NULL فستكون النتيجة NULL. انظر الدالة CONCAT لسلوك مختلف.

الصيغة

a || b

الوسائط

  • a - قيمة

  • b - قيمة

أمثلة

  • 'Here' || ' and ' || 'there' → 'Here and there'

  • 'Nothing' || NULL → NULL

  • 'Dia: ' || "Diameter" → 'Dia: 25'

  • 1 || 2 → '12'

لمزيد من القراءة: concat، +

9.2.20.26. ~

يُجري مطابقة تعبير نمطي (regular expression) على قيمة نصية. يجب تهريب محارف الشرطة المائلة العكسية مرتين (مثل "\\s" لمطابقة محرف مسافة بيضاء).

الصيغة

string ~ regex

الوسائط

  • string - قيمة نصية

  • regex - تعبير نمطي. يجب تهريب الشرطات المائلة، مثل \\d.

أمثلة

  • 'hello' ~ 'll' → TRUE

  • 'hello' ~ '^ll' → FALSE

  • 'hello' ~ 'llo$' → TRUE

  • 'abc123' ~ '\\d+' → TRUE

لمزيد من القراءة: regexp_match

9.2.21. دوال المعالجة

تضم هذه المجموعة دوالًا تعمل على خوارزميات المعالجة.

9.2.21.1. parameter

تُرجع قيمة مُعامل إدخال لخوارزمية معالجة.

الصيغة

parameter(name)

الوسائط

  • name - اسم مُعامل الإدخال المقابل

أمثلة

  • parameter('BUFFER_SIZE') → 5.6

9.2.22. دوال البيانات الشبكية (Rasters)

تضم هذه المجموعة دوالًا تعمل على الطبقات الشبكية.

9.2.22.1. raster_attributes

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

الصيغة

raster_attributes(layer, band, value)

الوسائط

  • layer - اسم الطبقة الشبكية أو معرّفها

  • band - رقم النطاق المستخدم للبحث في جدول البيانات الوصفية المرتبط به.

  • value - قيمة البكسل

أمثلة

  • raster_attributes('vegetation', 1, raster_value('vegetation', 1, make_point(1,1))) → {'class': 'Vegetated', 'subclass': 'Trees'}

  • raster_attributes('vegetation', 1, raster_value('vegetation', 1, @layer_cursor_point)) → {'class': 'Vegetated', 'subclass': 'Trees'}

9.2.22.2. raster_statistic

تُرجع إحصاءات من طبقة شبكية.

الصيغة

raster_statistic(layer, band, property)

الوسائط

  • layer - سلسلة نصية تمثل اسم الطبقة الشبكية أو معرّفها

  • band - عدد صحيح يمثل رقم النطاق في الطبقة الشبكية، بدءًا من 1

  • property - سلسلة نصية تقابل الخاصية المراد إعادتها. الخيارات الصالحة هي:

    • min: القيمة الدنيا

    • max: القيمة العليا

    • avg: القيمة المتوسطة (المتوسط الحسابي)

    • stdev: الانحراف المعياري للقيم

    • range: مدى القيم (max - min)

    • sum: مجموع كل قيم الطبقة الشبكية

أمثلة

  • raster_statistic('lc',1,'avg') → القيمة المتوسطة للنطاق 1 من الطبقة الشبكية 'lc'

  • raster_statistic('ac2010',3,'min') → القيمة الدنيا للنطاق 3 من الطبقة الشبكية 'ac2010'

9.2.22.3. raster_value

تُرجع قيمة البكسل الموجودة عند النقطة المُعطاة.

الصيغة

raster_value(layer, band, point)

الوسائط

  • layer - اسم الطبقة الشبكية أو معرّفها

  • band - رقم النطاق الذي تُؤخذ منه القيمة.

  • point - شكل هندسي نقطي (بالنسبة للأشكال الهندسية متعددة الأجزاء التي لها أكثر من جزء، ستُرجع قيمة NULL)

أمثلة

  • raster_value('dem', 1, make_point(1,1)) → 25

  • raster_value('ndvi', 2, @layer_cursor_point) → 25

9.2.23. دوال السجلات والبيانات الوصفية

تضم هذه المجموعة دوالًا تعمل على معرّفات السجلات.

9.2.23.1. attribute

تُرجع سمة من معلم.

الصيغة 1

تُرجع قيمة سمة من المعلم الحالي.

الصيغة

attribute(attribute_name)

الوسائط

  • attribute_name - اسم السمة المراد إرجاعها

أمثلة

  • attribute( 'name' ) → القيمة المخزنة في السمة 'name' للمعلم الحالي

الصيغة 2

تتيح تحديد المعلم الهدف واسم السمة.

الصيغة

attribute(feature, attribute_name)

الوسائط

  • feature - معلم

  • attribute_name - اسم السمة المراد إرجاعها

أمثلة

  • attribute( @atlas_feature, 'name' ) → القيمة المخزنة في السمة 'name' لمعلم الأطلس الحالي

9.2.23.2. attributes

تُرجع خريطة (map) تحتوي على جميع سمات المعلم، وأسماء الحقول مفاتيح لها.

الصيغة 1

تُرجع خريطة (map) بجميع سمات المعلم الحالي.

الصيغة

attributes()

أمثلة

  • attributes()['name'] → القيمة المخزنة في السمة 'name' للمعلم الحالي

الصيغة 2

تتيح تحديد المعلم الهدف.

الصيغة

attributes(feature)

الوسائط

  • feature - معلم

أمثلة

  • attributes( @atlas_feature )['name'] → القيمة المخزنة في السمة 'name' لمعلم الأطلس الحالي

لمزيد من القراءة: دوال الخرائط (Maps)

9.2.23.3. $currentfeature

تُرجع المعلم الحالي قيد التقييم. يمكن استخدامها مع الدالة 'attribute' لتقييم قيم السمات من المعلم الحالي. تحذير: هذه الدالة مُهمَلة (deprecated). يُنصح باستخدام المتغير @feature البديل عنها.

الصيغة

$currentfeature

أمثلة

  • attribute( $currentfeature, 'name' ) → القيمة المخزنة في السمة 'name' للمعلم الحالي

9.2.23.4. display_expression

تُرجع تعبير العرض (display expression) لمعلم معين في طبقة. يُقيَّم التعبير افتراضيًا. يمكن استخدامها بلا وسيطات أو بوسيط واحد أو أكثر، انظر التفاصيل أدناه.

بلا مُعاملات

إذا استُدعيت بلا مُعاملات، فستقيّم الدالة تعبير العرض للمعلم الحالي في الطبقة الحالية.

الصيغة

display_expression()

أمثلة

  • display_expression() → تعبير العرض للمعلم الحالي في الطبقة الحالية.

مُعامل 'feature' واحد

إذا استُدعيت بالمُعامل 'feature' فقط، فستقيّم الدالة المعلم المحدد من الطبقة الحالية.

الصيغة

display_expression(feature)

الوسائط

  • feature - المعلم المراد تقييمه.

أمثلة

  • display_expression(@atlas_feature) → تعبير العرض لمعلم الأطلس الحالي.

مُعاملا الطبقة والمعلم

إذا استُدعيت الدالة بطبقة ومعلم معًا، فستقيّم المعلم المحدد من الطبقة المحددة.

الصيغة

display_expression(layer, feature, [evaluate:=true])

تشير [] إلى الوسائط الاختيارية

الوسائط

  • layer - الطبقة (أو معرّفها أو اسمها)

  • feature - المعلم المراد تقييمه.

  • evaluate - ما إذا كان يجب تقييم التعبير. إذا كانت false، فسيُرجع التعبير بوصفه سلسلة نصية حرفية فقط (يمكن تقييمها لاحقًا باستخدام الدالة 'eval').

أمثلة

  • display_expression( 'streets', get_feature_by_id('streets', 1)) → تعبير العرض للمعلم ذي المعرّف 1 في الطبقة 'streets'.

  • display_expression('a_layer_id', @feature, 'False') → تعبير العرض للمعلم المُعطى دون تقييم.

9.2.23.5. feature_id

تُرجع المعرّف الفريد للمعلم، أو NULL إذا كان المعلم غير صالح.

الصيغة

feature_id(feature)

الوسائط

  • feature - كائن معلم

أمثلة

  • feature_id( @feature ) → معرّف المعلم الحالي

لمزيد من القراءة: get_feature_by_id

9.2.23.6. get_feature

تُرجع أول معلم في طبقة يطابق قيمة سمة معينة.

صيغة القيمة الواحدة

يُحدَّد عمود واحد وقيمة واحدة إلى جانب معرّف الطبقة.

الصيغة

get_feature(layer, attribute, value)

الوسائط

  • layer - اسم الطبقة أو معرّفها

  • attribute - اسم السمة المستخدمة للمطابقة

  • value - قيمة السمة المراد مطابقتها

أمثلة

  • get_feature('streets','name','main st') → أول معلم يُعثر عليه في الطبقة "streets" قيمته "main st" في الحقل "name"

صيغة الخريطة (Map)

تُستخدم إلى جانب معرّف الطبقة خريطة (map) تحتوي على الأعمدة (المفاتيح) وقيمها المقابلة.

الصيغة

get_feature(layer, attribute)

الوسائط

  • layer - اسم الطبقة أو معرّفها

  • attribute - خريطة (map) تحتوي على أزواج العمود والقيمة المراد استخدامها

أمثلة

  • get_feature('streets',map('name','main st','lane_num','4')) → أول معلم يُعثر عليه في الطبقة "streets" قيمته "main st" في الحقل "name" وقيمته "4" في الحقل "lane_num"

9.2.23.7. get_feature_by_id

تُرجع المعلم ذا المعرّف المحدد في طبقة.

الصيغة

get_feature_by_id(layer, feature_id)

الوسائط

  • layer - الطبقة أو اسمها أو معرّفها

  • feature_id - معرّف المعلم المراد إرجاعه

أمثلة

  • get_feature_by_id('streets', 1) → المعلم ذو المعرّف 1 في الطبقة "streets"

لمزيد من القراءة: feature_id

9.2.23.8. $id

تُرجع معرّف المعلم للصف الحالي. تحذير: هذه الدالة مُهمَلة (deprecated). يُنصح باستخدام المتغير @id البديل عنها.

الصيغة

$id

أمثلة

  • $id → 42

لمزيد من القراءة: feature_id، get_feature_by_id

9.2.23.9. is_attribute_valid

تُرجع TRUE إذا استوفت سمة معينة لمعلم جميع القيود.

الصيغة

is_attribute_valid(attribute, [feature], [layer], [strength])

تشير [] إلى الوسائط الاختيارية

الوسائط

  • attribute - اسم سمة

  • feature - معلم. إذا لم يُحدَّد، فسيُستخدم المعلم الحالي.

  • layer - طبقة متجهية. إذا لم تُحدَّد، فستُستخدم الطبقة الحالية.

  • strength - اضبطه على 'hard' أو 'soft' لحصر التحقق في نوع قيد معين. إذا لم يُحدَّد، فستُرجع الدالة FALSE إذا فشل أي قيد صارم أو مرن.

أمثلة

  • is_attribute_valid('HECTARES') → TRUE إذا استوفت قيمة المعلم الحالي في الحقل "HECTARES" جميع القيود.

  • is_attribute_valid('HOUSES',get_feature('my_layer', 'FID', 10), 'my_layer') → FALSE إذا لم تستوفِ القيمة في الحقل "HOUSES" للمعلم ذي "FID"=10 في 'my_layer' جميع القيود.

لمزيد من القراءة: القيود

9.2.23.10. is_feature_valid

تُرجع TRUE إذا استوفى المعلم جميع قيود الحقول.

الصيغة

is_feature_valid([feature], [layer], [strength])

تشير [] إلى الوسائط الاختيارية

الوسائط

  • feature - معلم. إذا لم يُحدَّد، فسيُستخدم المعلم الحالي.

  • layer - طبقة متجهية. إذا لم تُحدَّد، فستُستخدم الطبقة الحالية.

  • strength - اضبطه على 'hard' أو 'soft' لحصر التحقق في نوع قيد معين. إذا لم يُحدَّد، فستُرجع الدالة FALSE إذا فشل أي قيد صارم أو مرن.

أمثلة

  • is_feature_valid(strength:='hard') → TRUE إذا استوفت جميع حقول المعلم الحالي قيودها الصارمة.

  • is_feature_valid(get_feature('my_layer', 'FID', 10), 'my_layer') → FALSE إذا لم تستوفِ جميع حقول المعلم ذي "FID"=10 في 'my_layer' جميع القيود.

لمزيد من القراءة: القيود

9.2.23.11. is_selected

تُرجع TRUE إذا كان المعلم محددًا. يمكن استخدامها بلا وسيطات أو بوسيط واحد أو وسيطين، انظر التفاصيل أدناه.

بلا مُعاملات

إذا استُدعيت بلا مُعاملات، فستُرجع الدالة TRUE إذا كان المعلم الحالي في الطبقة الحالية محددًا.

الصيغة

is_selected()

أمثلة

  • is_selected() → TRUE إذا كان المعلم الحالي في الطبقة الحالية محددًا.

مُعامل 'feature' واحد

إذا استُدعيت بالمُعامل 'feature' فقط، فستُرجع الدالة TRUE إذا كان المعلم المحدد من الطبقة الحالية محددًا.

الصيغة

is_selected(feature)

الوسائط

  • feature - المعلم المراد التحقق من تحديده.

أمثلة

  • is_selected(@atlas_feature) → TRUE إذا كان معلم الأطلس الحالي محددًا.

  • is_selected(get_feature('streets', 'name', 'Main St.')) → TRUE إذا كان المعلم الفريد المسمى "Main St." في الطبقة النشطة "streets" محددًا.

  • is_selected(get_feature_by_id('streets', 1)) → TRUE إذا كان المعلم ذو المعرّف 1 في الطبقة النشطة "streets" محددًا.

مُعاملان

إذا استُدعيت الدالة بطبقة ومعلم معًا، فستُرجع TRUE إذا كان المعلم المحدد من الطبقة المحددة محددًا.

الصيغة

is_selected(layer, feature)

الوسائط

  • layer - الطبقة (معرّفها أو اسمها) التي سيُتحقق من التحديد فيها.

  • feature - المعلم المراد التحقق من تحديده.

أمثلة

  • is_selected( 'streets', get_feature('streets', 'name', "street_name")) → TRUE إذا كان شارع المبنى الحالي محددًا (بافتراض أن طبقة المباني تحتوي على حقل باسم 'street_name' وأن الطبقة 'streets' تحتوي على حقل باسم 'name' بقيم فريدة).

  • is_selected( 'streets', get_feature_by_id('streets', 1)) → TRUE إذا كان المعلم ذو المعرّف 1 في الطبقة "streets" محددًا.

9.2.23.12. maptip

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

بلا مُعاملات

إذا استُدعيت بلا مُعاملات، فستقيّم الدالة تلميح الخريطة للمعلم الحالي في الطبقة الحالية.

الصيغة

maptip()

أمثلة

  • maptip() → تلميح الخريطة للمعلم الحالي في الطبقة الحالية.

مُعامل 'feature' واحد

إذا استُدعيت بالمُعامل 'feature' فقط، فستقيّم الدالة المعلم المحدد من الطبقة الحالية.

الصيغة

maptip(feature)

الوسائط

  • feature - المعلم المراد تقييمه.

أمثلة

  • maptip(@atlas_feature) → تلميح الخريطة لمعلم الأطلس الحالي.

مُعاملا الطبقة والمعلم

إذا استُدعيت الدالة بطبقة ومعلم معًا، فستقيّم المعلم المحدد من الطبقة المحددة.

الصيغة

maptip(layer, feature, [evaluate:=true])

تشير [] إلى الوسائط الاختيارية

الوسائط

  • layer - الطبقة (أو معرّفها أو اسمها)

  • feature - المعلم المراد تقييمه.

  • evaluate - ما إذا كان يجب تقييم التعبير. إذا كانت false، فسيُرجع التعبير بوصفه سلسلة نصية حرفية فقط (يمكن تقييمها لاحقًا باستخدام الدالة 'eval_template').

أمثلة

  • maptip('streets', get_feature_by_id('streets', 1)) → تلميح الخريطة للمعلم ذي المعرّف 1 في الطبقة 'streets'.

  • maptip('a_layer_id', @feature, 'False') → تلميح الخريطة للمعلم المُعطى دون تقييم.

9.2.23.13. num_selected

تُرجع عدد المعالم المحددة في طبقة معينة. تعمل افتراضيًا على الطبقة التي يُقيَّم عليها التعبير.

الصيغة

num_selected([layer:=current layer])

تشير [] إلى الوسائط الاختيارية

الوسائط

  • layer - الطبقة (أو معرّفها أو اسمها) التي سيُتحقق من التحديد فيها.

أمثلة

  • num_selected() → عدد المعالم المحددة في الطبقة الحالية.

  • num_selected('streets') → عدد المعالم المحددة في الطبقة streets

9.2.23.14. represent_attributes

تُرجع خريطة (map) مفاتيحها أسماء السمات وقيمها قيم التمثيل المُهيَّأة. تعتمد قيمة التمثيل لكل سمة على نوع عنصر الواجهة المُهيَّأ لها. يمكن استخدامها بلا وسيطات أو بوسيط واحد أو أكثر، انظر التفاصيل أدناه.

بلا مُعاملات

إذا استُدعيت بلا مُعاملات، فستُرجع الدالة تمثيل سمات المعلم الحالي في الطبقة الحالية.

الصيغة

represent_attributes()

أمثلة

  • represent_attributes() → تمثيل سمات المعلم الحالي.

مُعامل 'feature' واحد

إذا استُدعيت بالمُعامل 'feature' فقط، فستُرجع الدالة تمثيل سمات المعلم المحدد من الطبقة الحالية.

الصيغة

represent_attributes(feature)

الوسائط

  • feature - المعلم المراد تقييمه.

أمثلة

  • represent_attributes(@atlas_feature) → تمثيل سمات المعلم المحدد من الطبقة الحالية.

مُعاملا الطبقة والمعلم

إذا استُدعيت بالمُعاملين 'layer' و 'feature'، فستُرجع الدالة تمثيل سمات المعلم المحدد من الطبقة المحددة.

الصيغة

represent_attributes(layer, feature)

الوسائط

  • layer - الطبقة (أو معرّفها أو اسمها).

  • feature - المعلم المراد تقييمه.

أمثلة

  • represent_attributes('atlas_layer', @atlas_feature) → تمثيل سمات المعلم المحدد من الطبقة المحددة.

لمزيد من القراءة: represent_value

9.2.23.15. represent_value

تُرجع قيمة التمثيل المُهيَّأة لقيمة حقل. تعتمد على نوع عنصر الواجهة المُهيَّأ. تكون مفيدة غالبًا مع عناصر واجهة 'Value Map'.

الصيغة

represent_value(value, [fieldName])

تشير [] إلى الوسائط الاختيارية

الوسائط

  • value - القيمة المراد تحويلها إلى تمثيلها. غالبًا ما تكون حقلًا.

  • fieldName - اسم الحقل الذي يجب تحميل إعدادات عنصر الواجهة الخاصة به.

أمثلة

  • represent_value("field_with_value_map") → وصف القيمة

  • represent_value('static value', 'field_name') → وصف القيمة الثابتة

لمزيد من القراءة: أنواع عناصر الواجهة، represent_attributes

9.2.23.16. sqlite_fetch_and_increment

تدير القيم ذات الزيادة التلقائية في قواعد بيانات sqlite.

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

وهذا يجعل من المستحيل الحصول على مفتاح أساسي متزايد عبر AUTO_INCREMENT قبل إنشاء الصف في قاعدة البيانات. ملاحظة جانبية: في postgres يعمل ذلك عبر الخيار evaluate default values.

عند إضافة معالم جديدة ذات علاقات، من المفيد جدًا أن تتمكن من إضافة معالم فرعية للمعلم الأب بينما لا يزال نموذج الأب مفتوحًا، أي قبل اعتماد المعلم الأب.

للتغلب على هذا القيد، يمكن استخدام هذه الدالة لإدارة قيم التسلسل في جدول منفصل في الصيغ المبنية على sqlite مثل gpkg.

سيُرشَّح جدول التسلسلات بحسب معرّف التسلسل (filter_attribute و filter_value)، ثم تُزاد القيمة الحالية لـ id_field بمقدار 1 وتُرجع القيمة بعد الزيادة.

إذا تطلبت أعمدة إضافية تحديد قيم لها، فيمكن استخدام الخريطة default_values لهذا الغرض.

ملاحظة

تعدّل هذه الدالة جدول sqlite الهدف. وهي مخصصة للاستخدام مع إعدادات القيم الافتراضية للسمات.

عندما يكون مُعامل database طبقةً وتكون الطبقة في وضع المعاملات (transaction mode)، فلن تُجلب القيمة إلا مرة واحدة خلال عمر المعاملة، ثم تُخزَّن مؤقتًا وتُزاد. وهذا يجعل العمل على قاعدة البيانات نفسها من عدة عمليات بالتوازي غير آمن.

الصيغة

sqlite_fetch_and_increment(database, table, id_field, filter_attribute, filter_value, [default_values])

تشير [] إلى الوسائط الاختيارية

الوسائط

  • database - مسار ملف sqlite أو طبقة geopackage

  • table - اسم الجدول الذي يدير التسلسلات

  • id_field - اسم الحقل الذي يحتوي على القيمة الحالية

  • filter_attribute - اسم الحقل الذي يحتوي على معرّف فريد لهذا التسلسل. يجب أن يكون له فهرس UNIQUE.

  • filter_value - اسم التسلسل المراد استخدامه.

  • default_values - خريطة (map) بالقيم الافتراضية للأعمدة الإضافية في الجدول. يجب أن تكون القيم محاطة بعلامات الاقتباس بالكامل. يُسمح باستخدام الدوال.

أمثلة

  • sqlite_fetch_and_increment(@layer, 'sequence_table', 'last_unique_id', 'sequence_id', 'global', map('last_change', 'date(''now'')', 'user', '''' || @user_account_name || '''')) → 0

  • sqlite_fetch_and_increment(layer_property(@layer, 'path'), 'sequence_table', 'last_unique_id', 'sequence_id', 'global', map('last_change', 'date(''now'')', 'user', '''' || @user_account_name || '''')) → 0

لمزيد من القراءة: خصائص مصادر البيانات، إعداد العلاقات بين طبقات متعددة

9.2.23.17. uuid

تولّد معرّفًا فريدًا عالميًا (UUID) لكل صف باستخدام الدالة QUuid::createUuid في Qt.

الصيغة

uuid([format:='WithBraces'])

تشير [] إلى الوسائط الاختيارية

الوسائط

  • format - الصيغة التي سيُنسَّق بها المعرّف UUID: 'WithBraces' أو 'WithoutBraces' أو 'Id128'.

أمثلة

  • uuid() → '{0bd2f60f-f157-4a6d-96af-d4ba4cb366a1}'

  • uuid('WithoutBraces') → '0bd2f60f-f157-4a6d-96af-d4ba4cb366a1'

  • uuid('Id128') → '0bd2f60ff1574a6d96afd4ba4cb366a1'

9.2.24. العلاقات

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

9.2.25. دوال المستشعرات

تضم هذه المجموعة دوالًا للتفاعل مع المستشعرات.

9.2.25.1. sensor_data

تُرجع آخر قيمة التقطها مستشعر مُسجَّل (أو القيم في صورة خريطة map للمستشعرات التي تُبلغ عن قيم متعددة).

الصيغة

sensor_data(name, [expiration])

تشير [] إلى الوسائط الاختيارية

الوسائط

  • name - اسم المستشعر

  • expiration - أقصى عدد مسموح به من أجزاء الثانية (ميلي ثانية) منذ آخر قيمة ملتقطة

أمثلة

  • sensor_data('geiger_1') → '2000'

9.2.26. دوال السلاسل النصية

تضم هذه المجموعة دوالًا تعمل على السلاسل النصية (مثل الاستبدال والتحويل إلى أحرف كبيرة).

9.2.26.1. ascii

تُرجع رمز unicode المرتبط بالمحرف الأول من سلسلة نصية.

الصيغة

ascii(string)

الوسائط

  • string - السلسلة النصية المراد تحويلها إلى رمز unicode

أمثلة

  • ascii('Q') → 81

9.2.26.2. char

تُرجع المحرف المرتبط برمز unicode.

الصيغة

char(code)

الوسائط

  • code - رقم رمز unicode

أمثلة

  • char(81) → 'Q'

9.2.26.3. concat

تضمّ عدة سلاسل نصية في سلسلة واحدة. تُحوَّل قيم NULL إلى سلاسل نصية فارغة. وتُحوَّل القيم الأخرى (مثل الأعداد) إلى سلاسل نصية.

الصيغة

concat(string1, string2, ...)

الوسائط

  • string - قيمة نصية

أمثلة

  • concat('sun', 'set') → 'sunset'

  • concat('a','b','c','d','e') → 'abcde'

  • concat('Anno ', 1984) → 'Anno 1984'

  • concat('The Wall', NULL) → 'The Wall'

حول ضمّ الحقول

يمكنك أيضًا ضمّ السلاسل النصية أو قيم الحقول باستخدام العامل || أو العامل +، مع بعض الخصائص المميزة:

  • العامل + يعني أيضًا جمع التعبير، لذا إذا كان لديك مُعامل عددي صحيح (حقل أو قيمة عددية) فقد يؤدي ذلك إلى أخطاء، ومن الأفضل أن تستخدم الطرق الأخرى:

    'My feature id is: ' + "gid" => triggers an error as gid returns an integer
    
  • عندما يكون أي من الوسيطات قيمة NULL، فإن كلًّا من || و + سيُرجع قيمة NULL. لإرجاع الوسيطات الأخرى بغض النظر عن قيمة NULL، قد ترغب في استخدام الدالة concat أو array_to_string:

    'My feature id is: ' + NULL ==> NULL
    'My feature id is: ' || NULL => NULL
    concat('My feature id is: ', NULL) => 'My feature id is: '
    array_to_string( array('My feature id is: ', NULL) ) => 'My feature id is: '
    

لمزيد من القراءة: array_to_string، ||، +

9.2.26.4. format

تنسّق سلسلة نصية باستخدام الوسيطات المُعطاة.

الصيغة

format(string, arg1, arg2, ...)

الوسائط

  • string - سلسلة نصية تحتوي على عناصر نائبة %1 و %2 وغيرها للوسيطات. يمكن تكرار العناصر النائبة. يُستبدل العنصر النائب ذو الرقم الأصغر بـ arg1، والذي يليه بـ arg2، وهكذا.

  • arg - أي نوع. أي عدد من الوسيطات.

أمثلة

  • format('This %1 a %2','is', 'test') → 'This is a test'

  • format('This is %2','a bit unexpected but 2 is lowest number in string','normal') → 'This is a bit unexpected but 2 is lowest number in string'

9.2.26.5. format_date

تنسّق نوع تاريخ أو سلسلة نصية إلى تنسيق نصي مخصص. تستخدم سلاسل تنسيق التاريخ/الوقت في Qt. راجع QDateTime::toString.

الصيغة

format_date(datetime, format, [language])

تشير [] إلى الوسائط الاختيارية

الوسائط

  • datetime - قيمة تاريخ أو وقت أو تاريخ ووقت

  • format - قالب نصي يُستخدم لتنسيق السلسلة النصية.

    تعبير

    المُخرَج

    d

    اليوم كرقم دون صفر بادئ (1 إلى 31)

    dd

    اليوم كرقم مع صفر بادئ (01 إلى 31)

    ddd

    اسم اليوم المختصر حسب اللغة المحلية (مثلًا 'Mon' إلى 'Sun')

    dddd

    اسم اليوم الكامل حسب اللغة المحلية (مثلًا 'Monday' إلى 'Sunday')

    M

    الشهر كرقم دون صفر بادئ (1-12)

    MM

    الشهر كرقم مع صفر بادئ (01-12)

    MMM

    اسم الشهر المختصر حسب اللغة المحلية (مثلًا 'Jan' إلى 'Dec')

    MMMM

    اسم الشهر الكامل حسب اللغة المحلية (مثلًا 'January' إلى 'December')

    yy

    السنة كرقم من خانتين (00-99)

    yyyy

    السنة كرقم من أربع خانات

    يمكن استخدام هذه التعبيرات لجزء الوقت من سلسلة التنسيق:

    تعبير

    المُخرَج

    h

    الساعة دون صفر بادئ (0 إلى 23، أو 1 إلى 12 عند عرض AM/PM)

    hh

    الساعة مع صفر بادئ (00 إلى 23، أو 01 إلى 12 عند عرض AM/PM)

    H

    الساعة دون صفر بادئ (0 إلى 23، حتى مع عرض AM/PM)

    HH

    الساعة مع صفر بادئ (00 إلى 23، حتى مع عرض AM/PM)

    m

    الدقيقة دون صفر بادئ (0 إلى 59)

    mm

    الدقيقة مع صفر بادئ (00 إلى 59)

    s

    الثانية دون صفر بادئ (0 إلى 59)

    ss

    الثانية مع صفر بادئ (00 إلى 59)

    z

    الملّي ثانية دون أصفار لاحقة (0 إلى 999)

    zzz

    الملّي ثانية مع أصفار لاحقة (000 إلى 999)

    AP أو A

    يُفسَّر كوقت بنظام AM/PM. يجب أن تكون AP إما 'AM' أو 'PM'.

    ap أو a

    يُفسَّر كوقت بنظام AM/PM. يجب أن تكون ap إما 'am' أو 'pm'.

  • language - اللغة (بأحرف صغيرة، من حرفين أو ثلاثة، رمز لغة ISO 639) المستخدمة لتنسيق التاريخ إلى سلسلة نصية مخصصة. تُستخدم افتراضيًا الإعدادات المحلية الحالية لمستخدم QGIS.

أمثلة

  • format_date('2012-05-15','dd.MM.yyyy') → '15.05.2012'

  • format_date('2012-05-15','d MMMM yyyy','fr') → '15 mai 2012'

  • format_date('2012-05-15','dddd') → 'Tuesday'، إذا كانت الإعدادات المحلية الحالية أحد أشكال اللغة الإنجليزية

  • format_date('2012-05-15 13:54:20','dd.MM.yy') → '15.05.12'

  • format_date('13:54:20','hh:mm AP') → '01:54 PM'

9.2.26.6. format_number

تُرجع عددًا منسَّقًا بفاصل الآلاف الخاص بالإعدادات المحلية (locale). تُستخدم افتراضيًا الإعدادات المحلية الحالية لمستخدم QGIS. كما تقتطع المنازل العشرية إلى العدد المُعطى من المنازل.

الصيغة

format_number(number, [places:=0], [language], [omit_group_separators:=false], [trim_trailing_zeroes:=false])

تشير [] إلى الوسائط الاختيارية

الوسائط

  • number - العدد المراد تنسيقه

  • places - عدد صحيح يمثل عدد المنازل العشرية التي تُقتطع إليها السلسلة النصية.

  • language - اللغة (رمز اللغة وفق ISO 639 بأحرف صغيرة من حرفين أو ثلاثة) المستخدمة لتنسيق العدد في سلسلة نصية. تُستخدم افتراضيًا الإعدادات المحلية الحالية لمستخدم QGIS.

  • omit_group_separators - إذا ضُبط على true فلن تُضمَّن فواصل المجموعات في السلسلة النصية

  • trim_trailing_zeroes - إذا ضُبط على true فستُحذف الأصفار اللاحقة بعد الفاصلة العشرية من السلسلة النصية

أمثلة

  • format_number(10000000.332,2) → '10,000,000.33' إذا كانت الإعدادات المحلية الحالية مثلًا أحد أشكال الإنجليزية

  • format_number(10000000.332,2,'fr') → '10 000 000,33'

9.2.26.7. left

تُرجع سلسلة جزئية تحتوي على n محرفًا من أقصى يسار السلسلة النصية.

الصيغة

left(string, length)

الوسائط

  • string - سلسلة نصية

  • length - عدد صحيح. عدد المحارف المراد إرجاعها من يسار السلسلة النصية.

أمثلة

  • left('Hello World',5) → 'Hello'

لمزيد من القراءة: right

9.2.26.8. length

تُرجع عدد الأحرف في سلسلة نصية أو طول شكل هندسي خطي.

صيغة السلسلة النصية

تُرجع عدد الأحرف في سلسلة نصية.

الصيغة

length(string)

الوسائط

  • string - السلسلة النصية المراد حساب طولها

أمثلة

  • length('hello') → 5

صيغة الشكل الهندسي

تحسب طول كائن شكل هندسي خطي. تكون الحسابات دائمًا مستوية في النظام المرجعي المكاني (SRS) لهذا الشكل الهندسي، وتطابق وحدات الطول المُرجَع وحدات SRS. ويختلف ذلك عن الحسابات التي تُجريها الدالة $length، التي تُجري حسابات إهليلجية بناءً على إعدادات الإهليلج ووحدة المسافة في المشروع.

الصيغة

length(geometry)

الوسائط

  • geometry - كائن شكل هندسي خطي

أمثلة

  • length(geom_from_wkt('LINESTRING(0 0, 4 0)')) → 4.0

9.2.26.9. lower

تحوّل سلسلة نصية إلى أحرف صغيرة.

الصيغة

lower(string)

الوسائط

  • string - السلسلة النصية المراد تحويلها إلى أحرف صغيرة

أمثلة

  • lower('HELLO World') → 'hello world'

لمزيد من القراءة: upper، title

9.2.26.10. lpad

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

الصيغة

lpad(string, width, fill)

الوسائط

  • string - السلسلة النصية المراد تكميلها

  • width - طول السلسلة النصية الجديدة

  • fill - المحرف الذي تُملأ به المساحة المتبقية

أمثلة

  • lpad('Hello', 10, 'x') → 'xxxxxHello'

  • lpad('Hello', 3, 'x') → 'Hel'

لمزيد من القراءة: rpad

9.2.26.11. ltrim

تحذف من بداية السلسلة النصية أطول سلسلة لا تحتوي إلا على المحارف المحددة (المسافة افتراضيًا).

الصيغة

ltrim(string, [characters:=' '])

تشير [] إلى الوسائط الاختيارية

الوسائط

  • string - السلسلة النصية المراد تشذيبها

  • characters - المحارف المراد حذفها

أمثلة

  • ltrim('   hello world  ') → 'hello world '

  • ltrim('zzzytest', 'xyz') → 'test'

لمزيد من القراءة: rtrim، trim

9.2.26.12. regexp_match

تُرجع أول موضع مطابق لتعبير نمطي داخل سلسلة نصية unicode، أو 0 إذا لم تُعثر على السلسلة الجزئية.

الصيغة

regexp_match(input_string, regex)

الوسائط

  • input_string - السلسلة النصية المراد اختبارها مقابل التعبير النمطي

  • regex - التعبير النمطي المراد الاختبار مقابله. يجب تهريب أحرف الشرطة المائلة العكسية مرتين (مثلًا "\\s" لمطابقة حرف مسافة بيضاء أو "\\b" لمطابقة حد كلمة).

أمثلة

  • regexp_match('QGIS ROCKS','\\sROCKS') → 5

  • regexp_match('Budač','udač\\b') → 2

لمزيد من القراءة: strpos

9.2.26.13. regexp_replace

تُرجع سلسلة نصية بعد استبدال التعبير النمطي المُعطى.

الصيغة

regexp_replace(input_string, regex, replacement)

الوسائط

  • input_string - السلسلة النصية المراد استبدال المطابقات فيها

  • regex - التعبير النمطي المراد استبداله. يجب تهريب محارف الشرطة المائلة العكسية مرتين (مثل "\\s" لمطابقة محرف مسافة بيضاء).

  • replacement - السلسلة النصية التي ستحل محل أي مطابقات للتعبير النمطي المُعطى. يمكن إدراج المجموعات الملتقطة في سلسلة الاستبدال باستخدام \\1 و \\2 وهكذا.

أمثلة

  • regexp_replace('QGIS SHOULD ROCK','\\sSHOULD\\s',' DOES ') → 'QGIS DOES ROCK'

  • regexp_replace('ABC123','\\d+','') → 'ABC'

  • regexp_replace('my name is John','(.*) is (.*)','\\2 is \\1') → 'John is my name'

لمزيد من القراءة: replace، array_replace

9.2.26.14. regexp_substr

تُرجع الجزء من السلسلة النصية الذي يطابق التعبير النمطي المُعطى.

الصيغة

regexp_substr(input_string, regex)

الوسائط

  • input_string - السلسلة النصية المراد البحث عن المطابقات فيها

  • regex - التعبير النمطي المراد المطابقة معه. يجب تهريب محارف الشرطة المائلة العكسية مرتين (مثل "\\s" لمطابقة محرف مسافة بيضاء).

أمثلة

  • regexp_substr('abc123','(\\d+)') → '123'

لمزيد من القراءة: substr، regexp_matches

9.2.26.15. repeat

تكرر سلسلة نصية عددًا محددًا من المرات.

الصيغة

repeat(string, number)

الوسائط

  • string - السلسلة النصية المراد تكرارها

  • number - عدد مرات تكرار السلسلة النصية

أمثلة

  • repeat('Hello', 3) → 'HelloHelloHello'

9.2.26.16. replace

تُرجع سلسلة نصية بعد استبدال السلسلة أو المصفوفة أو الخريطة (map) النصية المُعطاة.

صيغة السلسلة النصية والمصفوفة

تُرجع سلسلة نصية بعد استبدال السلسلة أو مصفوفة السلاسل النصية المُعطاة بسلسلة نصية أو بمصفوفة من السلاسل النصية.

الصيغة

replace(string, before, after)

الوسائط

  • string - السلسلة النصية المُدخَلة

  • before - السلسلة أو مصفوفة السلاسل النصية المراد استبدالها

  • after - السلسلة أو مصفوفة السلاسل النصية المستخدمة بديلًا

أمثلة

  • replace('QGIS SHOULD ROCK','SHOULD','DOES') → 'QGIS DOES ROCK'

  • replace('QGIS ABC',array('A','B','C'),array('X','Y','Z')) → 'QGIS XYZ'

  • replace('QGIS',array('Q','S'),'') → 'GI'

صيغة الخريطة (Map)

تُرجع سلسلة نصية بعد استبدال مفاتيح الخريطة (map) المُعطاة بالقيم المقترنة بها. تُقيَّم مفاتيح الخريطة الأطول أولًا.

الصيغة

replace(string, map)

الوسائط

  • string - السلسلة النصية المُدخَلة

  • map - الخريطة التي تحتوي على المفاتيح والقيم

أمثلة

  • replace('APP SHOULD ROCK',map('APP','QGIS','SHOULD','DOES')) → 'QGIS DOES ROCK'

  • replace('forty two',map('for','4','two','2','forty two','42')) → '42'

لمزيد من القراءة: regexp_replace، array_replace

9.2.26.17. reverse

تعكس اتجاه خط أو تعكس سلسلة نصية.

صيغة السلسلة النصية

تعكس ترتيب الأحرف في سلسلة نصية.

الصيغة

reverse(string)

الوسائط

  • string - السلسلة النصية المراد عكسها

أمثلة

  • reverse('hello') → 'olleh'

صيغة الشكل الهندسي

تعكس اتجاه الخط بعكس ترتيب رؤوسه.

الصيغة

reverse(geometry)

الوسائط

  • geometry - شكل هندسي

أمثلة

  • geom_to_wkt(reverse(geom_from_wkt('LINESTRING(0 0, 1 1, 2 2)'))) → 'LINESTRING(2 2, 1 1, 0 0)'

9.2.26.19. rpad

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

الصيغة

rpad(string, width, fill)

الوسائط

  • string - السلسلة النصية المراد تكميلها

  • width - طول السلسلة النصية الجديدة

  • fill - المحرف الذي تُملأ به المساحة المتبقية

أمثلة

  • rpad('Hello', 10, 'x') → 'Helloxxxxx'

  • rpad('Hello', 3, 'x') → 'Hel'

لمزيد من القراءة: lpad

9.2.26.20. rtrim

تحذف من نهاية السلسلة النصية أطول سلسلة لا تحتوي إلا على المحارف المحددة (المسافة افتراضيًا).

الصيغة

rtrim(string, [characters:=' '])

تشير [] إلى الوسائط الاختيارية

الوسائط

  • string - السلسلة النصية المراد تشذيبها

  • characters - المحارف المراد حذفها

أمثلة

  • rtrim('   hello world  ') → ' hello world'

  • rtrim('testxxzx', 'xyz') → 'test'

لمزيد من القراءة: ltrim، trim

9.2.26.21. strpos

تُرجع موضع أول تطابق لسلسلة جزئية داخل سلسلة نصية أخرى، أو 0 إذا لم يُعثر على السلسلة الجزئية.

الصيغة

strpos(haystack, needle)

الوسائط

  • haystack - السلسلة النصية المراد البحث فيها

  • needle - السلسلة النصية المراد البحث عنها

أمثلة

  • strpos('HELLO WORLD','WORLD') → 7

  • strpos('HELLO WORLD','GOODBYE') → 0

لمزيد من القراءة: regexp_match

9.2.26.22. substr

تُرجع جزءًا من سلسلة نصية.

الصيغة

substr(string, start, [length])

تشير [] إلى الوسائط الاختيارية

الوسائط

  • string - السلسلة النصية الكاملة المُدخلة

  • start - عدد صحيح يمثل موضع بدء الاستخراج بدءًا من 1؛ إذا كانت قيمة start سالبة، فستبدأ السلسلة المُرجعة من نهاية السلسلة ناقص قيمة start

  • length - عدد صحيح يمثل طول السلسلة المراد استخراجها؛ إذا كانت قيمة length سالبة، فستحذف السلسلة المُرجعة العدد المُعطى من المحارف من نهاية السلسلة

أمثلة

  • substr('HELLO WORLD',3,5) → 'LLO W'

  • substr('HELLO WORLD',6) → ' WORLD'

  • substr('HELLO WORLD',-5) → 'WORLD'

  • substr('HELLO',3,-1) → 'LL'

  • substr('HELLO WORLD',-5,2) → 'WO'

  • substr('HELLO WORLD',-5,-1) → 'WORL'

لمزيد من القراءة: regexp_substr، regexp_matches

9.2.26.23. title

تحوّل جميع كلمات السلسلة النصية إلى صيغة العنوان (كل الكلمات بأحرف صغيرة مع حرف أول كبير).

الصيغة

title(string)

الوسائط

  • string - السلسلة النصية المراد تحويلها إلى صيغة العنوان

أمثلة

  • title('hello WOrld') → 'Hello World'

لمزيد من القراءة: lower، upper

9.2.26.24. to_string

تحوّل رقمًا إلى سلسلة نصية. لا يراعي التحويل الإعدادات المحلية، راجع 'format_number' للحصول على بديل يراعي الإعدادات المحلية.

الصيغة

to_string(number)

الوسائط

  • number - قيمة صحيحة أو حقيقية. الرقم المراد تحويله إلى سلسلة نصية.

أمثلة

  • to_string(1.23) → '1.23'

للمزيد: format_number

9.2.26.25. trim

تحذف جميع المسافات البيضاء البادئة واللاحقة (المسافات ومحارف الجدولة وغيرها) من سلسلة نصية.

الصيغة

trim(string)

الوسائط

  • string - السلسلة النصية المراد تشذيبها

أمثلة

  • trim('   hello world  ') → 'hello world'

لمزيد من القراءة: ltrim، rtrim

9.2.26.26. upper

تحوّل سلسلة نصية إلى أحرف كبيرة.

الصيغة

upper(string)

الوسائط

  • string - السلسلة النصية المراد تحويلها إلى أحرف كبيرة

أمثلة

  • upper('hello WOrld') → 'HELLO WORLD'

لمزيد من القراءة: lower، title

9.2.26.27. wordwrap

تُرجع سلسلة نصية ملتفّة على عدد أقصى/أدنى من المحارف.

الصيغة

wordwrap(string, wrap_length, [delimiter_string])

تشير [] إلى الوسائط الاختيارية

الوسائط

  • string - السلسلة النصية المراد لفّها

  • wrap_length - عدد صحيح. إذا كانت قيمة wrap_length موجبة فإن العدد يمثل الحد الأقصى المثالي لعدد المحارف قبل الالتفاف؛ وإذا كانت سالبة، فإن العدد يمثل الحد الأدنى لعدد المحارف قبل الالتفاف.

  • delimiter_string - سلسلة فاصلة اختيارية يُلتفّ عندها إلى سطر جديد.

أمثلة

  • wordwrap('UNIVERSITY OF QGIS',13) → 'UNIVERSITY OF<br>QGIS'

  • wordwrap('UNIVERSITY OF QGIS',-3) → 'UNIVERSITY<br>OF QGIS'

9.2.27. تعبيرات المستخدم

تضم هذه المجموعة التعبيرات المحفوظة بوصفها تعبيرات المستخدم.

9.2.28. المتغيرات

تضم هذه المجموعة متغيرات ديناميكية متعلقة بالتطبيق وملف المشروع وإعدادات أخرى. يعتمد توفر المتغيرات على السياق:

  • من نافذة الحوار expressionSelect Select by expression

  • من نافذة الحوار calculateField Field calculator

  • من نافذة خصائص الطبقة

  • من تخطيط الطباعة

لاستخدام هذه المتغيرات في تعبير، يجب أن يسبقها المحرف @ (مثل @row_number).

Variable

وصف

algorithm_id

المعرّف الفريد لخوارزمية

animation_end_time

نهاية النطاق الزمني الكلي للرسوم المتحركة (بوصفها قيمة تاريخ ووقت)

animation_interval

مدة النطاق الزمني الكلي للرسوم المتحركة (بوصفها قيمة فترة زمنية)

animation_start_time

بداية النطاق الزمني الكلي للرسوم المتحركة (بوصفها قيمة تاريخ ووقت)

atlas_feature

معلم الأطلس الحالي (بوصفه كائن معلم)

atlas_featureid

معرّف معلم الأطلس الحالي

atlas_featurenumber

رقم معلم الأطلس الحالي في التخطيط

atlas_filename

اسم ملف الأطلس الحالي

atlas_geometry

الشكل الهندسي لمعلم الأطلس الحالي

atlas_layerid

معرّف طبقة التغطية الحالية للأطلس

atlas_layername

اسم طبقة التغطية الحالية للأطلس

atlas_pagename

اسم صفحة الأطلس الحالية

atlas_totalfeatures

العدد الكلي للمعالم في الأطلس

band

رقم النطاق في الطبقة الشبكية

band_description

وصف النطاق في الطبقة الشبكية

band_name

اسم النطاق في الطبقة الشبكية

canvas_cursor_point

آخر موضع للمؤشر على لوحة الخريطة بالإحداثيات الجغرافية للمشروع

cluster_color

لون الرموز داخل العنقود (cluster)، أو NULL إذا كانت الرموز بألوان مختلطة

cluster_size

عدد الرموز الموجودة داخل العنقود (cluster)

current_feature

المعلم الجاري تحريره حاليًا في نموذج البيانات الوصفية أو صف الجدول

current_geometry

الشكل الهندسي للمعلم الجاري تحريره حاليًا في النموذج أو صف الجدول

current_parent_feature

يمثل المعلم الجاري تحريره حاليًا في النموذج الأب. لا يُستخدم إلا في سياق نموذج مُضمَّن.

current_parent_geometry

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

form_mode

الغرض الذي يُستخدم النموذج من أجله، مثل AddFeatureMode أو SingleEditMode أو MultiEditMode أو SearchMode أو AggregateSearchMode أو IdentifyMode، بوصفه سلسلة نصية.

feature

المعلم الحالي قيد التقييم. يمكن استخدامه مع الدالة 'attribute' لتقييم قيم السمات من المعلم الحالي.

frame_duration

المدة الزمنية لكل إطار في الرسوم المتحركة (بوصفها قيمة فترة زمنية)

frame_number

رقم الإطار الحالي أثناء تشغيل الرسوم المتحركة

frame_rate

عدد الإطارات في الثانية أثناء تشغيل الرسوم المتحركة

fullextent_maxx

القيمة العليا لـ x من الامتداد الكامل للوحة الخريطة (بما في ذلك جميع الطبقات)

fullextent_maxy

القيمة العليا لـ y من الامتداد الكامل للوحة الخريطة (بما في ذلك جميع الطبقات)

fullextent_minx

القيمة الدنيا لـ x من الامتداد الكامل للوحة الخريطة (بما في ذلك جميع الطبقات)

fullextent_miny

القيمة الدنيا لـ y من الامتداد الكامل للوحة الخريطة (بما في ذلك جميع الطبقات)

geometry

الشكل الهندسي للمعلم الحالي قيد التقييم

geometry_part_count

عدد الأجزاء في الشكل الهندسي للمعلم المرسوم

geometry_part_num

رقم جزء الشكل الهندسي الحالي للمعلم الجاري رسمه

geometry_point_count

عدد النقاط في جزء الشكل الهندسي المرسوم

geometry_point_num

رقم النقطة الحالية في جزء الشكل الهندسي المرسوم

geometry_ring_num

رقم الحلقة الحالية في الشكل الهندسي للمعلم الجاري رسمه (لمعالم المضلعات فقط). قيمة الحلقة الخارجية هي 0.

grid_axis

محور تعليق الشبكة الإحداثية الحالي (مثل 'x' لخط الطول و 'y' لدائرة العرض)

grid_number

قيمة تعليق الشبكة الإحداثية الحالية

id

معرّف المعلم الحالي قيد التقييم

item_id

معرّف المستخدم لعنصر التخطيط (ليس بالضرورة فريدًا)

item_uuid

المعرّف الفريد لعنصر التخطيط

layer

الطبقة الحالية

layer_crs

معرّف الجهة المرجعية (Authority ID) لنظام الإحداثيات المرجعي للطبقة الحالية

layer_crs_ellipsoid

معرّف الجهة المرجعية (Authority ID) للإهليلج في نظام الإحداثيات المرجعي للطبقة الحالية

layer_cursor_point

شكل هندسي نقطي يقع تحت موضع الفأرة في لوحة الخريطة (أو موضع GetFeatureInfo في سياق QGIS Server)، بنظام الإحداثيات المرجعي للطبقة النشطة

layer_id

معرّف الطبقة الحالية

layer_ids

معرّفات جميع طبقات الخريطة في المشروع الحالي في صورة قائمة

layer_name

اسم الطبقة الحالية

layer_vertical_crs

معرّف نظام الإحداثيات المرجعي الرأسي للطبقة (مثل 'EPSG:5703')

layer_vertical_crs_definition

التعريف الكامل لنظام الإحداثيات المرجعي الرأسي للطبقة

layer_vertical_crs_description

اسم نظام الإحداثيات المرجعي الرأسي للطبقة

layer_vertical_crs_wkt

تعريف WKT لنظام الإحداثيات المرجعي الرأسي للطبقة الحالية

layers

جميع طبقات الخريطة في المشروع الحالي في صورة قائمة

layout_dpi

دقة التكوين (DPI)

layout_name

اسم التخطيط

layout_numpages

عدد الصفحات في التخطيط

layout_page

رقم صفحة العنصر الحالي في التخطيط

layout_pageheight

ارتفاع الصفحة النشطة في التخطيط (بالمليمتر لأحجام الورق القياسية، أو بالوحدة المستخدمة لحجم الورق المخصص)

layout_pageoffsets

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

layout_pagewidth

عرض الصفحة النشطة في التخطيط (بالمليمتر لأحجام الورق القياسية، أو بالوحدة المستخدمة لحجم الورق المخصص)

legend_column_count

عدد الأعمدة في مفتاح الخريطة

legend_filter_by_map

يشير إلى ما إذا كان محتوى مفتاح الخريطة مُرشَّحًا بحسب الخريطة

legend_filter_out_atlas

يشير إلى ما إذا كان الأطلس مُستبعدًا من مفتاح الخريطة

legend_split_layers

يشير إلى ما إذا كان يمكن تقسيم الطبقات في مفتاح الخريطة

legend_title

عنوان مفتاح الخريطة

legend_wrap_string

المحرف (أو المحارف) المستخدم لالتفاف نص مفتاح الخريطة

map_crs

نظام الإحداثيات المرجعي للخريطة الحالية

map_crs_acronym

الاختصار الخاص بنظام الإحداثيات المرجعي للخريطة الحالية

map_crs_definition

التعريف الكامل لنظام الإحداثيات المرجعي للخريطة الحالية

map_crs_description

اسم نظام الإحداثيات المرجعي للخريطة الحالية

map_crs_ellipsoid

الاختصار الخاص بإهليلج نظام الإحداثيات المرجعي للخريطة الحالية

map_crs_proj4

تعريف Proj4 لنظام الإحداثيات المرجعي للخريطة الحالية

map_crs_projection

الاسم الوصفي لطريقة الإسقاط التي يستخدمها نظام الإحداثيات المرجعي للخريطة (مثل 'Albers Equal Area')

map_crs_wkt

تعريف WKT لنظام الإحداثيات المرجعي للخريطة الحالية

map_end_time

نهاية النطاق الزمني للخريطة (بوصفها قيمة تاريخ ووقت)

map_extent

الشكل الهندسي الذي يمثل الامتداد الحالي للخريطة

map_extent_center

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

map_extent_height

الارتفاع الحالي للخريطة

map_extent_width

العرض الحالي للخريطة

map_id

معرّف وجهة الخريطة الحالية. ستكون قيمته 'canvas' عند الرسم على لوحة الخريطة، ومعرّف العنصر عند رسم خرائط التخطيط

map_interval

مدة النطاق الزمني للخريطة (بوصفها قيمة فترة زمنية)

map_layer_ids

قائمة معرّفات طبقات الخريطة المرئية في الخريطة

map_layers

قائمة طبقات الخريطة المرئية في الخريطة

map_rotation

الدوران الحالي للخريطة

map_scale

مقياس الرسم الحالي للخريطة

map_start_time

بداية النطاق الزمني للخريطة (بوصفها قيمة تاريخ ووقت)

map_units

وحدات قياسات الخريطة

map_z_range_lower

الارتفاع الأدنى في نطاق الارتفاعات للخريطة

map_z_range_upper

الارتفاع الأعلى في نطاق الارتفاعات للخريطة

model_path

المسار الكامل (بما في ذلك اسم الملف) للنموذج الحالي (أو مسار المشروع إذا كان النموذج مُضمَّنًا في مشروع).

model_folder

المجلد الذي يحتوي على النموذج الحالي (أو مجلد المشروع إذا كان النموذج مُضمَّنًا في مشروع).

model_name

اسم النموذج الحالي

model_group

مجموعة النموذج الحالي

notification_message

محتوى رسالة الإشعار المُرسلة من مزوّد البيانات (متاح فقط للإجراءات التي تُطلقها إشعارات المزوّد).

parent

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

plot_axis

محور الرسم البياني المرتبط، مثل 'x' أو 'y'.

plot_axis_value

القيمة الحالية لمحور الرسم البياني.

project_abstract

ملخص المشروع، مأخوذ من البيانات الوصفية (metadata) للمشروع

project_area_units

وحدة المساحة في المشروع الحالي، المستخدمة عند حساب مساحات الأشكال الهندسية

project_author

مؤلف المشروع، مأخوذ من البيانات الوصفية (metadata) للمشروع

project_basename

الاسم الأساسي لملف المشروع الحالي (دون المسار والامتداد)

project_creation_date

تاريخ إنشاء المشروع، مأخوذ من البيانات الوصفية (metadata) للمشروع

project_crs

معرّف نظام الإحداثيات المرجعي للمشروع (مثل 'EPSG:4326')

project_crs_arconym

الاختصار الخاص بنظام الإحداثيات المرجعي للمشروع

project_crs_definition

التعريف الكامل لنظام الإحداثيات المرجعي للمشروع

project_crs_description

وصف نظام الإحداثيات المرجعي للمشروع

project_crs_ellipsoid

إهليلج نظام الإحداثيات المرجعي للمشروع

project_crs_proj4

تمثيل Proj4 لنظام الإحداثيات المرجعي للمشروع

project_crs_wkt

تمثيل WKT (النص المعروف well known text) لنظام الإحداثيات المرجعي للمشروع

project_distance_units

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

project_ellipsoid

اسم إهليلج المشروع الحالي، المستخدم عند حساب المساحات أو الأطوال الجيوديسية للأشكال الهندسية

project_filename

اسم ملف المشروع الحالي

project_folder

مجلد المشروع الحالي

project_home

المسار الرئيسي (home path) للمشروع الحالي

project_identifier

معرّف المشروع، مأخوذ من البيانات الوصفية (metadata) للمشروع

project_keywords

الكلمات المفتاحية للمشروع، مأخوذة من البيانات الوصفية (metadata) للمشروع

project_last_saved

تاريخ ووقت آخر حفظ للمشروع.

project_path

المسار الكامل (بما في ذلك اسم الملف) للمشروع الحالي

project_title

عنوان المشروع الحالي

project_units

وحدات نظام الإحداثيات المرجعي للمشروع

project_vertical_crs

معرّف نظام الإحداثيات المرجعي الرأسي للمشروع (مثل 'EPSG:5703')

project_vertical_crs_definition

التعريف الكامل لنظام الإحداثيات المرجعي الرأسي للمشروع

project_vertical_crs_description

وصف نظام الإحداثيات المرجعي الرأسي للمشروع

project_vertical_crs_wkt

تمثيل WKT (النص المعروف well known text) لنظام الإحداثيات المرجعي الرأسي للمشروع

qgis_locale

اللغة الحالية لـ QGIS

qgis_os_name

اسم نظام التشغيل الحالي، مثل 'windows' أو 'linux' أو 'osx'

qgis_platform

منصة QGIS، مثل 'desktop' أو 'server'

qgis_release_name

اسم إصدار QGIS الحالي

qgis_short_version

سلسلة الإصدار المختصرة لـ QGIS الحالي

qgis_version

سلسلة إصدار QGIS الحالي

qgis_version_no

رقم إصدار QGIS الحالي

row_number

يخزّن رقم الصف الحالي

snapping_results

يتيح الوصول إلى نتائج الالتقاط أثناء رقمنة معلم (متاح فقط عند إضافة معلم)

scale_value

قيمة المسافة الحالية لشريط مقياس الرسم

selected_file_path

مسار الملف المحدد من عنصر واجهة اختيار الملفات عند رفع ملف إلى نظام تخزين خارجي

symbol_angle

زاوية الرمز المستخدم لرسم المعلم (صالحة لرموز العلامات فقط)

symbol_color

لون الرمز المستخدم لرسم المعلم

symbol_count

عدد المعالم التي يمثلها الرمز (في مفتاح الخريطة في التخطيط)

symbol_frame

رقم الإطار (للرموز المتحركة فقط)

symbol_id

المعرّف الداخلي للرمز (في مفتاح الخريطة في التخطيط)

symbol_label

تسمية الرمز (إما تسمية يحددها المستخدم أو التسمية الافتراضية المولّدة تلقائيًا - في مفتاح الخريطة في التخطيط)

symbol_layer_count

العدد الكلي لطبقات الرمز في الرمز

symbol_layer_index

فهرس طبقة الرمز الحالية

symbol_marker_column

رقم العمود للعلامة (صالح لتعبئات نمط النقاط فقط).

symbol_marker_row

رقم الصف للعلامة (صالح لتعبئات نمط النقاط فقط).

user_account_name

اسم حساب نظام التشغيل للمستخدم الحالي

user_full_name

اسم المستخدم في نظام التشغيل للمستخدم الحالي

value

القيمة الحالية

vector_tile_zoom

مستوى التكبير الدقيق للبلاطات المتجهية للخريطة الجاري رسمها (مشتق من مقياس الرسم الحالي للخريطة). يقع عادةً في المجال [0, 20]. وخلافًا لـ @zoom_level، فإن هذا المتغير قيمة عشرية يمكن استخدامها لاستيفاء القيم بين مستويي تكبير صحيحين.

with_variable

يتيح تعيين متغير لاستخدامه داخل تعبير وتجنّب إعادة حساب القيمة نفسها مرارًا

zoom_level

مستوى التكبير للبلاطات المتجهية للخريطة الجاري رسمها (مشتق من مقياس الرسم الحالي للخريطة). يقع عادةً في المجال [0, 20].

بعض الأمثلة:

  • إرجاع الإحداثي X لمركز عنصر خريطة في التخطيط:

    x( map_get( item_variables( 'map1'), 'map_extent_center' ) )
    
  • إرجاع عدد معالم المطارات المتداخلة مع كل معلم في الطبقة الحالية:

    aggregate( layer:='airport', aggregate:='count', expression:="code",
                   filter:=intersects( $geometry, geometry( @parent ) ) )
    
  • الحصول على object_id لأول نقطة مُلتقطة في خط:

    with_variable(
      'first_snapped_point',
      array_first( @snapping_results ),
      attribute(
        get_feature_by_id(
          map_get( @first_snapped_point, 'layer' ),
          map_get( @first_snapped_point, 'feature_id' )
        ),
        'object_id'
      )
    )
    

9.2.29. الدوال المستخدمة مؤخرًا

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