Skip To Content

استخدم تعبيرات Arcade في ضم المعالم

توجد أدوات متعددة في مربع أدوات GeoAnalytics Tools تتيح لك تطبيق التعبير.

يوجد لدى GeoAnalytics Tools التي تستخدم التعبيرات استخدامات مختلفة وكذلك قيود على التعبيرات التي يمكن تطبيقها. جميع التعبيرات المستخدمة في ArcGIS GeoAnalytics Server تدعم Arcade.

تعرف على المزيد عن دوال Arcade.

التعبيرات في ضم المعالم

يتم استخدام التعبيرات في أداة ضم المعالم لتحديد شروط الضم.

وقد تريد في بعض الحالات تحديد شرط لتحديد المعالم التي يجب تضمينها في الضم. يمكنك تنفيذ شروط ضم بسيطة (مثل حقل a > حقل c)، وكذلك شروط متقدمة. ويتم اختبار الشروط مُقابل كل معلم لتحديد ما يتم تحليله. يتم تنفيذ الحسابات عند تشغيل التحليل على ArcGIS GeoAnalytics Server.

ملاحظة:‏
تتطلب ضم المعالممُدخَلَين: طبقة هدف وطبقة ضم. ووفقًا لذلك، يجب على أي تعبيرات Arcade في ضم المعالم تحديد مجموعة البيانات التي يتم استخدامها الآن. على سبيل المثال، يتم التعبير عن عملية حساب ما إذا كان الحقل في الطبقة الهدف التي تُسمى field1 أكبر من حقل في طبقة الضم التي تُسمى field2 في شكل $target["field1"] > $join["field2"]. يختلف ذلك عن التعبيرات في GeoAnalytics Tools الأخرى، التي تستخدم التنسيق $feature["fieldname"].

يجب دائمًا أن يؤدي شرط الضم إلى true أو false. تتضمن الأجزاء أدناه أمثلة على التعبير.

أمثلة على العامل والدالة الرياضية

تتمكن التعبيرات من معالجة الأرقام رياضيًا. يوضح الجدول التالي نموذجًا من العمليات المتاحة.

تعرف على المزيد عن المعاملات والدوال الرياضية المتاحة في Arcade

مُشغلالتفسيرمثالالنتيجة

a + b

a زائد b.

fieldname يحتوي على قيمة 1.5.

$target["fieldname"] + 2.5

4.0

a - b

a ناقص b.

fieldname يحتوي على قيمة 3.3.

$target["fieldname"]- 2.2

1.1

a * b

a مضروبًا في b.

fieldname يحتوي على قيمة 2.0.

$join["fieldname"] * 2.2

4.4

a / b

a مقسومًا على b.

fieldname يحتوي على قيمة 4.0.

$join["fieldname"] / 1.25

3.2

abs( a )

يُرجع القيمة المطلقة (الموجبة) a.

fieldname يحتوي على قيمة -1.5.

abs($target["fieldname"])

1.5

لوغاريتم ( a )

إرجاع اللوغاريتم الطبيعي (قاعدة E) من a.

fieldname يحتوي على قيمة 1.

log($join["fieldname"])

0

جيب ( a )

يقوم بإرجاع جيب زاوية المثلثات لـ a. يُفتَرَض أن يكون المدخل زاوية بالتقدير الدائري.

fieldname يحتوي على قيمة 1.5707.

sin($target["fieldname"])

1

جتا( a )

يقوم بإرجاع جيب تمام المثلثات لـ a. يُفتَرَض أن يكون المدخل زاوية بالتقدير الدائري.

fieldname يحتوي على قيمة 0.

cos($join["fieldname"])

1

ظل الزاوية( a )

يُرجِع ظل زاوية لـ a. يُفتَرَض أن يكون المدخل زاوية بالتقدير الدائري.

fieldname يحتوي على قيمة 0.

tan($target["fieldname"])

0

الجذر التربيعي( a )

يُرجع جذر تربيعي a.

fieldname يحتوي على قيمة 9.

sqrt($join["fieldname"])

3

الحد الأدنى( a, b )

إرجاع الرقم الذي يتميز بأقل قيمة بين a وb.

fieldname يحتوي على قيمة 1.5 وقيمة -3.

min($join["fieldname"], -3)

-3

الحد الأقصى( a, b )

إرجاع الرقم الذي يتميز بأعلى قيمة بين a و b.

fieldname1 يحتوي على قيمة 1.5، ويحتوي fieldname2 على قيمة -3.

max($target["fieldname1"], $join["fieldname2"])

1.5

constrain(<value>,<low>,<high>)

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

constrain($target["distance"], 0, 10)

constrain($join['Store dist'], 6, distance)

إرجاع 0 إذا كانت distance أقل من 0 وإرجاع 10 إذا كانت distance أكبر من 10، وكذلك distance بخلاف ذلك.

إرجاع 6 إذا كانت Store dist أقل من 6 وdistance إذا كانت Store dist أكبر من distance، و Store dist بخلاف ذلك.

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

$target["Distance"] * 2 > $join["DistField"]

أمثلة على الدالة النصية

تتمكن تعبيرات شرط الضم من معالجة النص. يوضح الجدول التالي نموذجًا من العمليات المتاحة.

تعرف على المزيد عن الدوال النصية المتاحة في Arcade.

مُشغلالتفسيرمثالالنتيجة

تسلسل( <values>, <separator>)

تسلسل القيمة معًا وإرجاع سلسلة.

  • values- مصفوفة قيم السلسلة المطلوب تسلسلها.
  • separator (اختياري) - فاصل لاستخدامه للتسلسل إذا كانت معلمة values عبارة عن مصفوفة أو سلسلة لتسلسلها إذا تم توفير قيمة واحدة للمعلمة الأولى. وإذا لم تتوفر، ستكون فارغة.

fieldname يحتوي على قيمة GeoAnalytics

تسلسل ([$target["fieldname"], "is", "great!"], ' ')

GeoAnalytics يكون كبير!

عثور(<searchText>, <text>, <startPos>)

العثور على سلسلة ضمن السلسلة. أحرف البدل غير مدعومة.

  • searchText- السلسلة الفرعية المطلوب البحث عنها.
  • text- النص المطلوب البحث عنه.
  • startPos (اختياري)- فهرس على أساس صفري للموقع في السلسلة والذي سيتم البحث منه.

fieldname1 يحتوي على قيمة 14NorthStreet، ويحتوي fieldname2 على قيمة North.

find($target["fieldname2"], $join["fieldname1"])

2

أدنى(<value>)

تُنشيء سلسلة بأحرف صغيرة.

  • value- السلسلة المطلوب جعلها أحرف صغيرة.

fieldname يحتوي على قيمة GEOANALYTICS.

lower($join["fieldname"])

التحليلات الجغرافية

مثال نصي يستخدم find وlower.

find(("north"), lower("146NorthStreet")) == False

أمثلة على دالة التاريخ

تتمكن تعبيرات الضم من معالجة التواريخ. يوضح الجدول التالي نموذجًا من العمليات المتاحة.

تعرف على المزيد عن دوال التاريخ المتاحة في Arcade

في Arcade، تتراوح قيم الشهر من 0 (يناير) إلى 11 (ديسمبر)، وتتراوح الأيام من 1 إلى 31، وتتراوح الساعات من 0 (12:00 صباحًا) إلى 23 (11:00 مساءً)، وتتراوح الدقائق والثواني من 0 إلى 59، كما تتراوح الملي ثانية من 0 إلى 999. تقوم تواريخ Arcade بإرجاع قيم الوقت في موقع GeoAnalytics Server.

مُشغلالتفسيرمثالالنتيجة

التاريخ( <value>, <month>, <day>, <hour>, <minute>)

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

  • value (اختياري) - إما عدد وحدات الملي ثانية منذ 1 يناير 1970 بالتوقيت العالمي المنسق أو عددًا يمثل عامًا. إذا تم تحديد عام، يجب أيضًا توفير اليوم والشهر في معلمات متتابعة. قد تكون أيضًا هذه القيمة سلسلة تاريخ أو سلسلة ISO 8601 لتحويلها إلى تاريخ.
  • month (اختياري) - الشهر (0-11) حيث يكون 0 هو يناير و11 هو ديسمبر.
  • day (اختياري) - أيام الشهر (1-31).
  • hour (اختياري) - ساعات اليوم (0-23).
  • minute (اختياري) - دقائق الساعة (0-59).
  • second (اختياري) - ثوان الدقيقة (0-59).
  • millisecond (اختياري) - وحدات الملي ثانية في الثانية (0-999).

fieldname يحتوي على قيمة 1476987783555.

مثال 1: Date($target["fieldname"])

مثال 2: التاريخ(2017,0,14,0)

مثال 3: التاريخ()

مثال 1: 20 أكتوبر 2016 11:23:03 ص

مثال 2: 14 يناير 2017 12:00:00 ص

مثال 3: إرجاع الوقت الحالي

DateDiff(<date1>, <date2>, <units>)

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

  • date1- قيمة التاريخ التي يتم استنتاج تاريخ ثاني منها.
  • date2- قيمة التاريخ التي يتم استنتاج قيمة التاريخ المحدد الأول منها.
  • startpos (اختياري) - وحدات إرجاع الاختلاف بين تاريخين محددين اثنين. تشمل أنواع الوحدة المدعومة milliseconds وseconds وminutes وhours وdays وmonths وyears. القيمة الافتراضية هي الميللي ثانية.

مثال 1: DateDiff(Date(2017,1,14,0), Date())

مثال 2: DateDiff(Date(2017,1,14,0), Date(), "Years")

سوف تختلف النتيجة بناءً على وقت تشغيل هذا الأمر.

مثال 1: -20532129137

مثال 2: -0.6546783768647119

السنة(<dateValue>)

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

  • value- قيمة التاريخ التي يتم الحصول على العام منها.

مثال 1: يُعد fieldname حقل من نوع Date بقيمة 09 Oct 2017 04:30:43 pm.

Year($join["fieldname"])

مثال 2: يُعد fieldname حقل سلسلة بتنسيق سلسلة ISO 8601 بقيمة 2012-09-27.

مثال 2: يُعد fieldname حقل سلسلة بتنسيق سلسلة ISO 8601 بقيمة Year(Date($target["fieldname"])).

مثال 1: 2017

مثال 2: 2012

العوامل المشروطة

يمكن للعبارات الشرطية استخدام عوامل تشغيل التالية:

مُشغلالتفسيرمثالالنتائج

a > b

a < b

a أكبر من b

a أقل من b

10 > 2

خطأ

a >= b

a <= b

a أكبر من أو يساوي b

a أقل من أو يساوي b

abs(-10) >= 10

صواب

a != b

a لا يساوي b

abs(-3) != -3

صواب

a == b

a يساوي b

abs(-5) == 5

صواب

<condition1> || <condition2>

يتم استيفاء الشرط الأول (1) أو الشرط الثاني (2).

(abs(-5) == 5) || (10 < 2)

صواب

<condition1> && <condition2>

يتم استيفاء الشرط الأول (1) والشرط الثاني (2).

(abs(-5) == 5) && (10 < 2)

خطأ

أمثلة على العامل المنطقي

وإضافةً إلى المعامِلات الشرطي، يمكن استخدام معاملات منطقية أكثر تقدُّمًا لضم المعالم.

تعرف على المزيد عن الدوال المنطقية المتاحة في Arcade

وظيفةالتفسيرمثالالنتيجة

constrain(<value>,<low>,<high>)

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

constrain( $target["distance"], 0, 10)

constrain($join['Store dist'], 6, distance)

إرجاع 0 إذا كانت distance أقل من 0 وإرجاع 10 إذا كانت distance أكبر من 10، وكذلك distance بخلاف ذلك.

إرجاع 6 إذا كانت Store dist أقل من 6 وdistance إذا كانت Store dist أكبر من distance، و Store dist بخلاف ذلك.

iif(<condition>,<true value>,<false value>)

إرجاع قيمة واحدة إذا كان الشرط مقيمًا بـ true وقيمة أخرى إذا كان الشرط مقيمًا بـ false.

<true value> و <false value> يمكن أن يكونا ما يلي:

  • حقل رقمي. إذا وجدت مسافة في اسم الحقل، استخدم الأقواس المربعة.
  • رقم.
  • دالة.

iif($target["field1"] > $join["field2"], $join["field1"], 0)

iif($target["field1"] > $join["field2"], iif($target["field2"] = 0, $join["field3"], $target["field4"]), 0)

إرجاع field1 إذا كانت field1 أكبر من field2، و0 بخلاف ذلك.

إرجاع نتيجة دالة iif الثانية إذا كانت field1 أكبر من field2، و 0 بخلاف ذلك.

when(<expression1> , <result1> , <expression2> , <result2> , ... , <expressionN> , <resultN>, <default>)

تقييم سلسلة تعبيرات تباعًا، حتى يتم تقييم أحدها بـ true.

  • expression- تعبير.
  • result- يمكن أن يكون رقمًا أو حقلاً.
  • default- قيمة اختيارية في حالة عدم مطابقة أيّ من التعبيرات.

when(($target["field1"] + 10) > 1, 1,($join["field2"] + 10) > 2 , 2, $target["field3"])

إذا كانت field1 + 10 أكبر من 1، فإنها تُرجع 1. وإذا لم تكن أكبر من 1، تأكد مما إذا كانت field2 + 10 أكبر من 2. وإذا كانت كذلك، فإنها تُرجع 2. وإذا لم تكن أكبر من 2، فإنها ترجع field3.

decode(<conditional val> , <case1> , <result1>, <case2>, <result2>, ... <caseN>, <resultN>, <defaultValue> )

تُقيّم دالة decode تعبيرًا، وتقارن قيمتها مع معلماتها التابعة. إذا تطابق التعبير، فإنه يُرجع قيمة المعلمة التالية. إذا لم يتطابق أي منها، يوجد خيار للمعلمة الأخيرة لتكون قيمة إرجاع افتراضية.

  • conditional val- يمكن أن يكون رقمًا أو تعبيرًا.
  • case- قيمة لمقارنتها بـ conditional val.
  • result- النتيجة إذا تطابقت الحالة المتوافقة مع conditional val.
  • defaultValue- قيمة افتراضية إذا لم تكن القيم الأخرى true.

decode($target["field1"] + 3 , $join["field1"], 1, $target["field2"], 2, 0)

مقارنة المساواة بين القيمة الشرطية field1 + 3 وcase1 field1. إذا كانت true، فإنها ترجع 1. إذا كانت false، فإنها تقارن المساواة بين field1 + 3 و field2. إذا كانت true، فإنها ترجع 2، وبخلاف ذلك، تُرجع 0.