توجد أدوات متعددة في مربع أدوات أدوات GeoAnalytics تتيح لك تطبيق التعبير.
- تعبيرات النطاق في إنشاء نطاقات وإعادة إنشاء المسارات
- شروط الضم في ضم المعالم.
- شروط الحوادث كشف الحوادث.
- حساب قيم الحقل في حساب الحقل.
يوجد لدى أدوات GeoAnalytics التي تستخدم التعبيرات استخدامات مختلفة وكذلك قيود على التعبيرات التي يمكن تطبيقها. جميع التعبيرات المستخدمة في ArcGIS GeoAnalytics Server تدعم Arcade.
تعرف على المزيد عن دوال Arcade.
التعبيرات في ضم المعالم
يتم استخدام التعبيرات في أداة ضم المعالم لتحديد شروط الضم.
وقد تريد في بعض الحالات تحديد شرط لتحديد المعالم التي يجب تضمينها في الضم. يمكنك تنفيذ شروط ضم بسيطة (مثل حقل a > حقل c)، وكذلك شروط متقدمة. ويتم اختبار الشروط مُقابل كل معلم لتحديد ما يتم تحليله. يتم تنفيذ الحسابات عند تشغيل التحليل على ArcGIS GeoAnalytics Server.
ملاحظة:
تتطلب ضم المعالممُدخَلَين: طبقة هدف وطبقة ضم. ووفقًا لذلك، يجب على أي تعبيرات Arcade في ضم المعالم تحديد مجموعة البيانات التي يتم استخدامها الآن. على سبيل المثال، يتم التعبير عن عملية حساب ما إذا كان الحقل في الطبقة الهدف التي تُسمى field1 أكبر من حقل في طبقة الضم التي تُسمى field2 في شكل $target["field1"] > $join["field2"]. يختلف ذلك عن التعبيرات في أدوات GeoAnalytics الأخرى، التي تستخدم التنسيق $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 |
tan( a ) | يُرجع ظل زاوية a، ويُفتَرَض أن يكون المدخل زاوية بالتقدير الدائري. | يحتوي fieldname على قيمة 0 tan($target["fieldname"]) | 0 |
sqrt( 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.
عامل التشغيل | التفسير | مثال | النتيجة |
---|---|---|---|
concatenate( <values>, <separator>) | تسلسل القيمة معًا وإرجاع سلسلة.
| يحتوي fieldname على قيمة GeoAnalytics تسلسل ([$target["fieldname"], "is", "great!"], ' ') | إن GeoAnalytics رائع! |
find(<searchText>, <text>, <startPos>) | بحث عن سلسلة ضمن سلسلة. أحرف البدل غير مدعومة.
| يحتوي fieldname1 على قيمة 14NorthStreet فيما يحتوي fieldname2 على قيمة North find($target["fieldname2"], $join["fieldname1"]) | 2 |
lower(<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.
عامل التشغيل | التفسير | مثال | النتيجة |
---|---|---|---|
date( <value>, <month>, <day>, <hour>, <minute>) | تحليل قيمة أو مجموعة قيم في سلسلة تاريخ.
| يحتوي fieldname على قيمة 1476987783555 مثال 1: Date($target["fieldname"]) مثال 2: Date(2017,0,14,0) مثال 3: Date() | مثال 1: 20 أكتوبر 2016 الساعة 11:23:03 صباحًا مثال 2: 14 يناير 2017 الساعة 12:00:00 صباحًا مثال 3: إرجاع الوقت الحالي |
DateDiff(<date1>, <date2>, <units>) | يقوم باستنتاج التاريخين ويعود بالفرق في الوحدات المحددة.
| مثال 1: DateDiff(Date(2017,1,14,0), Date()) مثال 2: DateDiff(Date(2017,1,14,0), Date(), "Years") | تتنوع النتيجة بحسب موعد تشغيل هذا الأمر. مثال 1: -20532129137 مثال 2: -0.6546783768647119 |
Year(<dateValue>) | إرجاع عام التاريخ المحدد
| مثال 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> | تم تلبية الشرط الأول أو الشرط الثاني. | (abs(-5) == 5) || (10 < 2) | صواب |
<condition1> && <condition2> | تم تلبية الشرط الأول أو الشرط الثاني. | (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.
| 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 تعبيرًا، وتقارن قيمتها مع معلماتها التابعة. إذا تطابق التعبير، فإنه يُرجع قيمة المعلمة التالية. إذا لم يتطابق أي منها، يوجد خيار للمعلمة الأخيرة لتكون قيمة إرجاع افتراضية.
| decode($target["field1"] + 3 , $join["field1"], 1, $target["field2"], 2, 0) | مقارنة المساواة بين القيمة الشرطية field1 + 3 وcase1 field1. إذا كانت true، فإنها ترجع 1. إذا كانت false، فإنها تقارن المساواة بين field1 + 3 وfield2. إذا كانت true، فإنها ترجع 2، وبخلاف ذلك، تُرجع 0. |