توجد أدوات متعددة في مربع أدوات GeoAnalytics Tools تتيح لك تطبيق التعبير.
- تعبيرات النطاق في إنشاء نطاقات.
- تعبيرات النطاق في إعادة إنشاء المسارات.
- شروط الضم في ضم المعالم.
- شروط الحوادث كشف الحوادث.
- حساب قيم الحقل في حساب الحقل.
يوجد لدى GeoAnalytics Tools التي تستخدم التعبيرات استخدامات مختلفة، بالإضافة إلى قيود على التعبيرات التي يمكن تطبيقها. في 10.9.1، جميع التعبيرات المستخدمة في ArcGIS GeoAnalytics Server تدعم Arcade.
تعرف على المزيد عن دوال Arcade.
التعبيرات في اكتشاف الحوادث
تستخدم التعبيرات في أداة اكتشاف الحوادث لتحديد شروط بداية ونهاية الحوادث. يجب أن يؤدي شرط اكتشاف الحوادث إلى true أو false. استخدم أحد الشروط للتحقق مما إذا ينبغي تضمين المعلم في حادثة أم لا. يتم اختبار الشروط مقابل كل معلم لتحديد المعالم التي تمثل حوادث. يتم إجراء الحسابات عند تشغيل التحليل على ArcGIS GeoAnalytics Server. تم تضمين أمثلة على التعبيرات التي يمكنك استخدامها في الأقسام أدناه.
أمثلة على العامل والدالة الرياضية
يمكن للتعبيرات معالجة الأرقام رياضيًا. يوضح الجدول التالي نموذجًا من العمليات المتاحة.
تعرف على المزيد عن المعاملات والدوال الرياضية المتاحة في Arcade
مُشغل | التفسير | مثال | النتيجة |
---|---|---|---|
a + b | a زائد b. | fieldname يحتوي على قيمة 1.5. $feature["fieldname"] + 2.5 | 4.0 |
a - b | a ناقص b. | fieldname يحتوي على قيمة 3.3. $feature["fieldname"]- 2.2 | 1.1 |
a * b | a مضروبًا في b. | fieldname يحتوي على قيمة 2.0. $feature["fieldname"] * 2.2 | 4.4 |
a / b | a مقسومًا على b. | fieldname يحتوي على قيمة 4.0. $feature["fieldname"] / 1.25 | 3.2 |
abs( a ) | يُرجع القيمة المطلقة (الموجبة) a. | fieldname يحتوي على قيمة -1.5. abs($feature["fieldname"]) | 1.5 |
لوغاريتم ( a ) | إرجاع اللوغاريتم الطبيعي (قاعدة E) من a. | fieldname يحتوي على قيمة 1. log($feature["fieldname"]) | 0 |
جيب ( a ) | يقوم بإرجاع جيب زاوية المثلثات لـ a. يُفتَرَض أن يكون المدخل زاوية بالتقدير الدائري. | fieldname يحتوي على قيمة 1.5707. sin($feature["fieldname"]) | 1 |
جتا( a ) | يقوم بإرجاع جيب تمام المثلثات لـ a. يُفتَرَض أن يكون المدخل زاوية بالتقدير الدائري. | fieldname يحتوي على قيمة 0. cos($feature["fieldname"]) | 1 |
ظل الزاوية( a ) | يُرجِع ظل زاوية لـ a. يُفتَرَض أن يكون المدخل زاوية بالتقدير الدائري. | fieldname يحتوي على قيمة 0. tan($feature["fieldname"]) | 0 |
الجذر التربيعي( a ) | يُرجع جذر تربيعي a. | fieldname يحتوي على قيمة 9. sqrt($feature["fieldname"]) | 3 |
الحد الأدنى( a, b ) | إرجاع الرقم الذي يتميز بأقل قيمة بين a وb. | fieldname يحتوي على قيمة 1.5 وقيمة -3. min($feature["fieldname"], -3) | -3 |
الحد الأقصى( a, b ) | إرجاع الرقم الذي يتميز بأعلى قيمة بين a و b. | fieldname1 يحتوي على قيمة 1.5، ويحتوي fieldname2 على قيمة -3. max($feature["fieldname1"], $feature["fieldname2"]) | 1.5 |
constrain(<value>,<low>,<high>) | إرجاع القيمة المدخلة إذا كانت ضمن حدود القيد. إذا كانت القيمة المدخلة أقل من القيمة المنخفضة، فإنها تُرجِع القيمة المنخفضة. إذا كانت القيمة المدخلة أكبر من القيمة المرتفعة، فإنها تُرجِع القيمة المرتفعة. | constrain($feature["distance"], 0, 10) constrain($feature['Store dist'], 6, distance) | إرجاع 0 إذا كانت distance أقل من 0 وإرجاع 10 إذا كانت distance أكبر من 10، وكذلك distance بخلاف ذلك. إرجاع 6 إذا كانت Store dist أقل من 6 وdistance إذا كانت Store dist أكبر من distance، و Store dist بخلاف ذلك. |
مثال على ضرب شرط اكتشاف الحادثة.
$feature["Distance"] * 2 > 50
أمثلة على الدالة النصية
يمكن لتعبيرات اكتشاف الحوادث معالجة النص. يوضح الجدول التالي نموذجًا من العمليات المتاحة.
تعرف على المزيد عن الدوال النصية المتاحة في Arcade.
مُشغل | التفسير | مثال | النتيجة |
---|---|---|---|
تسلسل( <values>, <separator>) | تسلسل القيمة معًا وإرجاع سلسلة.
| fieldname يحتوي على قيمة GeoAnalytics. التسلسل ([$features["fieldname"], "is", "great!"], ' ') | GeoAnalytics يكون كبير! |
عثور(<searchText>, <text>, <startPos>) | العثور على سلسلة ضمن السلسلة. أحرف البدل غير مدعومة.
| fieldname1 يحتوي على قيمة 14NorthStreet، ويحتوي fieldname2 على قيمة North. عثور($feature["fieldname2"], $feature["fieldname1"]) | 2 |
أدنى(<value>) | تُنشيء سلسلة بأحرف صغيرة.
| fieldname يحتوي على قيمة GEOANALYTICS. أدنى($feature["fieldname"]) | التحليلات الجغرافية |
مثال نصي يستخدم find وlower.
find(("north"), lower("146NorthStreet")) == 2
أمثلة على دالة التاريخ
يمكنك استخدام اكتشاف الحوادث من التعبيرات التي تستخدم تواريخ. يوضح الجدول التالي نموذجًا من العمليات المتاحة.
تعرف على المزيد عن دوال التاريخ المتاحة في Arcade
في Arcade، تتراوح قيم الشهر من 0 (يناير) إلى 11 (ديسمبر)، وتتراوح الأيام من 1 إلى 31، وتتراوح الساعات من 0 (12:00 صباحًا) إلى 23 (11:00 مساءً)، وتتراوح الدقائق والثواني من 0 إلى 59، كما تتراوح الملي ثانية من 0 إلى 999. تعود تواريخ Arcade بقيم الوقت في موقع GeoAnalytics Server.
مُشغل | التفسير | مثال | النتيجة |
---|---|---|---|
التاريخ( <value>, <month>, <day>, <hour>, <minute>) | توزيع قيمة أو مجموعة من القيم في سلسلة التاريخ.
| fieldname يحتوي على قيمة 1476987783555. مثال 1: التاريخ($features["fieldname"]) مثال 2: التاريخ(2017,0,14,0) مثال 3: التاريخ() | مثال 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 |
السنة(<dateValue>) | يعود بسنة التاريخ المتوفر.
| مثال 1: يُعد fieldname حقل من نوع Date بقيمة 09 Oct 2017 04:30:43 pm. السنة($feature["fieldname"]) مثال 2: يُعد fieldname حقل سلسلة بتنسيق سلسلة ISO 8601 بقيمة 2012-09-27. | مثال 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
وظيفة | التفسير | مثال | النتيجة |
---|---|---|---|
iif(<condition>,<true value>,<false value>) | إرجاع قيمة إذا كان الشرط مقيمًا بـ true وقيمة أخرى إذا كان ذلك الشرط مقيمًا بـ false. <true value> و <false value> يمكن أن يكونا ما يلي:
| iif($feature["field1"] > $feature["field2"], $feature["field1"], 0) iif($feature["field1"] > $feature["field2"], iif($feature["field2"] = 0, $feature["field3"], $feature["field4"]), 0) | إرجاع field1 إذا كانت field1 أكبر من field2، و0 بخلاف ذلك. إرجاع نتيجة دالة iif الثانية إذا كانت field1 أكبر من field2، و 0 بخلاف ذلك. |
when(<expression1> , <result1> , <expression2> , <result2> , ... , <expressionN> , <resultN>, <default>) | تقييم سلسلة تعبيرات تباعًا، حتى يتم تقييم أحدها بـ true.
| when(($feature["field1"] + 10) > 1, 1,($feature["field2"] + 10) > 2 , 2, $feature["field3"]) | إذا كانت field1 + 10 أكبر من 1، فإنها تُرجع 1. وإذا لم تكن أكبر من 1، تأكد مما إذا كانت field2 + 10 أكبر من 2. وإذا كانت كذلك، فإنها تُرجع 2. وإذا لم تكن أكبر من 2، فإنها ترجع field3. |
decode(<conditional val> , <case1> , <result1>, <case2>, <result2>, ... <caseN>, <resultN>, <defaultValue> ) | تُقيّم دالة decode تعبيرًا، وتقارن قيمتها مع معلماتها التابعة. إذا تطابق التعبير، فإنه يُرجع قيمة المعلمة التالية. إذا لم يتطابق أي منها، يوجد خيار للمعلمة الأخيرة لتكون قيمة إرجاع افتراضية.
| decode($feature["field1"] + 3 , $feature["field1"], 1, $feature["field2"], 2, 0) | مقارنة التساوي بين conditional val field1 + 3 وcase1 field1. إذا كانت true، فإنها ترجع 1. إذا كانت false، فإنها تقارن المساواة بين field1 + 3 و field2. إذا كانت true، فإنها ترجع 2، وبخلاف ذلك، تُرجع 0. |
أمثلة متعلقة بالمسارات
بالإضافة إلى ذلك، يمكن لبعض GeoAnalytics Tools، مثل اكتشاف الحوادث واحتساب الحقل، استخدام أسئلة متوافقة مع المسار في Arcade.
وظيفة | التفسير | مثال | النتيجة | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
TrackStartTime() | حساب وقت بدء المسار بالملي ثانية من التاريخ. | استخدام مسار يبدأ في 2 يناير 2017. TrackStartTime() | 1483315200000 | ||||||||||||
TrackDuration() | احتساب مدة المسار بالميللي ثانية من البداية حتى الدرجة الزمنية الحالية. | استخدام مسار يبدأ في 2 يناير 2017 والوقت الحالي في 4 يناير 2017. TrackDuration() | 172800000 | ||||||||||||
TrackCurrentTime() | احتساب الدرجة الزمنية في مسار. | استخدام معلم يحدث في 3 يناير 2017 الساعة 09:00 ص. TrackCurrentTime() | 1483434000000 | ||||||||||||
TrackIndex | إرجاع فهرس الوقت من المعلم الذي يتم احتسابه. | احتساب هذه القيمة على المعلم الأول في مسار. TrackIndex | 0 | ||||||||||||
TrackFieldWindow(<fieldName>, <startIndex>, <endIndex>) | إرجاع مصفوفة من القيم في الحقل المتوفر لفهرس الوقت المحدد. تتيح لك وظيفة النافذة التقديم والتأخير في الوقت. يتم تقييم التعبير في كل معلم في المسار.
| MyField قام بطلب قيم [10, 20, 30, 40, 50] بشكل متسلسل. يتم تقييم التعبير في كل معلم في المسار. يتم إرجاع النتائج لتشمل معلم البداية، وتستثني معلم النهاية. مثال 1: TrackFieldWindow("MyField,-1,2) مثال 2: TrackFieldWindow("MyField,-2,0)[0] مثال 3: TrackFieldWindow("MyField,0,3)[2] | مثال 1: عند التقييم عند كل معلم، يعرض الجدول النتائج التالية:
مثال 2: عند التقييم عند فهرس 2 (القيمة هي 30)، يتم إرجاع 10. مثال 3: عند التقييم عند فهرس 2 (القيمة هي 30)، يتم إرجاع 50. | ||||||||||||
TrackGeometryWindow(<startIndex>, <endIndex>) | إرجاع صفيف قيم تمثل الشكل الهندسي لفهرس الوقت المحدد. تتيح لك وظيفة النافذة التقديم والتأخير في الوقت. يتم تقييم التعبير في كل معلم في المسار.
| MyField قام بطلب قيم [10, 20, 30, 40, 50] بشكل متسلسل. الشكل الهندسي للمعالم هو [{x: 1, y: 1},{x: 2, y: 2} ,{x: null, y: null},{x: 4, y: 4}, {x: 5, y: 5}]. يتم تقييم التعبير في كل معلم في المسار. يتم إرجاع النتائج لتشمل معلم البداية، وتستثني معلم النهاية. مثال 1: TrackGeometryWindow(-1,2) مثال 2: TrackGeometryWindow(0,1)[0] على مجموعة بيانات لخطوط متصلة مثال 3: TrackGeometryWindow(0,1)[0] على مجموعة بيانات لخطوط متصلة مثال 4: ابحث عن قيمة X للنقطة السابقة TrackGeometryWindow(-1,0)[0]["x"] | مثال 1: عند التقييم عند كل معلم، يعرض الجدول النتائج التالية:
مثال 2: يتم إرجاع خطوط متصلة بالتنسيق التالي: [{"paths":[[[-180,-22.88],[-177.6,-23.6]],[[180,-18.099999999999994],[179.7,-18.4],[179.4,-18.7],[178.9,-18.9],[178.5,-19.3],[178.2,-19.7],[178.4,-20],[178.8,-20.2],[178.9,-21.8],[179,-22.2],[179.4,-22.7],[180,-22.88]],[[-178,-17],[-178.8,-17.3],[-179.2,-17.5],[-179.6,-17.8],[-179.9,-18],[-180,-18.099999999999994]]]}] مثال 3: يتم إرجاع مضلعات متصلة بالتنسيق التالي: [{"rings":[[[-7882559.1197999995,6376090.883500002],[-7893142.474300001,6042715.216800004],[-8544018.775999999,6045361.0554000065],[-8544018.775999999,6376090.883500002],[-7882559.1197999995,6376090.883500002]]]}] مثال 4: تم التقييم عند فهرس 2 (القيمة هي 30): 2 | ||||||||||||
TrackWindow(<value1>, <value2>) | إرجاع صفيف قيم تمثل الشكل الهندسي وكل البيانات الجدولية لفهرس الوقت المحدد. تتيح لك وظيفة النافذة التقديم والتأخير في الوقت.
| MyField قام بترتيب قيم [10, 20, 30, 40, 50] بالتعاقب، إضافة إلى حقول objectID وglobalID وinstant_datetime. الشكل الهندسي للمعالم هو [{x: 1, y: 1},{x: 2, y: 2} ,{x: null, y: null},{x: 4, y: 4}, {x: 5, y: 5}]. يتم تقييم التعبير في كل معلم في المسار. يتم إرجاع النتائج لتشمل معلم البداية، وتستثني معلم النهاية. مثال 1: TrackWindow(-1,0)[0] مثال 2: geometry(TrackWindow(-1,0)[0]["x"] | مثال 1: عند التقييم عند كل معلم، يعرض الجدول النتائج التالية:
مثال 2: تم التقييم عند فهرس 2 (القيمة هي 30): 2 |
استخدم تعبيرات المسار التالية لحساب المسافة والسرعة والتسارع على المسارات.
تُحسب جميع حسابات المسافة بالأمتار، والسرعة بالمتر في الثانية، والتسارع بالمتر في الثانية المربعة. يتم قياس المسافات باستخدام المسافات الجيوديسية.
وظيفة | التفسير |
---|---|
TrackCurrentDistance() | إجمالي المسافات المقطوعة بين الملاحظات من الملاحظة الأولى إلى الملاحظة الحالية. |
TrackDistanceAt(القيمة) | إجمالي المسافات المقطوعة بين الملاحظات من الملاحظة الأولى إلى الملاحظة الحالية بالإضافة إلى القيمة المعطاة. |
TrackDistanceWindow(value1, value2) | تبلغ المسافات بين القيمة الأولى (شاملة) والقيمة الأخيرة (استثنائية) في نافذة حول الملاحظة الحالية (0). |
TrackCurrentSpeed() | السرعة بين الملاحظة السابقة والملاحظة الحالية. |
TrackSpeedAt(value1) | سرعة الملاحظة بالنسبة إلى الملاحظة الحالية. على سبيل المثال، تمثل القيمة 2 سرعة ملاحظة ملاحظتين بعد الملاحظة الحالية. |
TrackSpeedWindow(value1, value2) | تبلغ قيم السرعة بين القيمة الأولى (شاملة) والقيمة الأخيرة (استثنائية) في نافذة حول الملاحظة الحالية (0). |
TrackCurrentAcceleration() | التسارع بين الملاحظة السابقة والملاحظة الحالية. |
TrackAccelerationAt(value1) | تسارع الملاحظة بالنسبة إلى الملاحظة الحالية. |
TrackAccelerationWindow(value1, value2) | تبلغ قيم التسارع بين القيمة الأولى (شاملة) والقيمة الأخيرة (استثنائية) في نافذة حول الملاحظة الحالية (0). |
سوف تستخدم الأمثلة الحسابية للمسافة والسرعة والتسارع أمثلة من الصورة التالية:
وظيفة | نتيجة المثال | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
TrackCurrentDistance() |
| ||||||||||||||
TrackDistanceAt(2) |
| ||||||||||||||
TrackDistanceWindow(-1, 2) |
| ||||||||||||||
TrackCurrentSpeed() |
| ||||||||||||||
TrackSpeedAt(2) |
| ||||||||||||||
TrackSpeedWindow(-1, 2) |
| ||||||||||||||
TrackCurrentAcceleration() |
| ||||||||||||||
TrackAccelerationAt(2) |
| ||||||||||||||
TrackAccelerationWindow(-1, 2) |
|