أكثر

ArcObjects .NET - كيفية إغلاق / إصدار FeatureClass ، Workspace ، Factory


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

على فترات زمنية أثناء العملية أريد أن أفعل هذا:

  1. احصل على مصنع مساحة عمل ArcSDE (Oracle)
  2. افتح مساحة عمل من المصنع (عند هذه النقطة أحصل على اتصال قاعدة بيانات مفتوح)
  3. الحصول على فئة أو جدول ميزة موجود في مساحة العمل ،
  4. الاستعلام عن فئة الميزة أو الجدول ، حلقة فوق المؤشر تؤدي أعمالي
  5. ثم حرر / أغلق كل شيء من هذا القبيل:

    • تم إغلاق / تحرير اتصال قاعدة البيانات وقفل الجدول من منظور ArcSDE / Oracle (كما يتضح من شيء مثل "sdemon -o info -I users" أو استعلام جدول sde.table_locks).
    • العملية مرنة لإعادة تشغيل ArcSDE / Oracle (أي أنني لا أترك شيئًا معلقًا لن يعمل لاحقًا بعد إعادة التشغيل ليلا)
    • يتم تحرير أي RCW ومراجع COM والذاكرة.

في الأساس ، نظرًا لطبيعة العملية طويلة الأمد ، أريد أن أتأكد حقًا من عدم وجود تسريبات في الموارد أو اتصالات خادعة ، ويمكن أن تنجو عمليتي من إعادة تشغيل ArcSDE / Oracle.

لقد رأيت مناقشات مثل:

وهذا الذي أقتبس منه

يحتفظ كل مصنع لمساحة العمل بمجموعة من مساحات العمل النشطة المتصلة حاليًا والتي يشير إليها التطبيق. عندما يتم استدعاء أي من طرق Open * المدرجة سابقًا ، يتحقق مصنع مساحة العمل من فتح مساحة عمل مسبقًا بمجموعة متطابقة من الخصائص. إذا كان الأمر كذلك ، يتم إرجاع مرجع إلى المثيل الحالي.

كل ذلك يوحي لي بأنني ينبغي إطلاق (مثل فئة ComReleaser أو حلقة Marshal.ReleaseComObject () المكافئة) ، على الأرجح بهذا الترتيب:

  • المؤشر
  • الصف / الجدول
  • مساحة العمل
  • مصنع مساحة العمل

ثم هناك مناقشات مثل هذه حيث يفعل الناس كل ذلك ، وربما يرشون في System.GC.Collect () ولا يزال اتصال قاعدة البيانات الخاصة بهم قائمًا.

يا معلمو ، ما هو آخر مخدر على التوالي في هذا؟


لقد قمت بالفعل بتغطية العديد من الجوانب في رسالتك. ومع ذلك ، للتوسع في سؤالك ، اتبع دائمًا هذا النمط:

إذا (obj! = فارغة) ESRI.ArcGIS.ADF.ComReleaser.ReleaseCOMObject (obj) ؛ obj = خالية ؛

ثم اتصلSystem.GC.Collect ()لإجبار جامع البيانات المهملة على إزالة أي إشارات إلى نظام إدارة قواعد البيانات.

يجب أن يكون ترتيب الإصدار عبارة عن مؤشرات وميزات (IFeature) وفئات FeatureClasses ومساحات عمل وكائنات ArcObjects الأخرى التي تم إنشاء مثيل لها.

تطبيق ArcGIS Desktop و ArcEngine عبارة عن STA (تطبيق مترابط فردي). ليس من الآمن ولا ينصح باستخدام ArcObjects عبر مؤشرات الترابط (العمال) ؛ يمكن للمرء استخدام التسلسل وإلغاء تسلسل الكائنات لتحقيق ذلك. لمزيد من التفاصيل ، الق نظرة هنا.


استرداد مصنع فئة COM للمكون باستخدام CLSID فشل بسبب الخطأ التالي: 80040154

لقد قمت بتطوير خدمة Windows باستخدام C # .NET لإنشاء تقرير بتنسيق PDF. لإنشاء ملف PDF أنا أستخدم dll لجهة خارجية. التطبيق يعمل في نظام التشغيل Windows XP الخاص بي. عندما قمت بنشر الخدمة في إصدار 64 بت من Windows Server 2008 ، تلقيت هذا الخطأ:

فشل استرداد مصنع فئة COM للمكون مع CLSID <46521B1F-0A5B-4871-A4C2-FD5C9276F4C6> بسبب الخطأ التالي: 80040154.

لقد سجلت DLL باستخدام الأمر regsvr32. تمكنت من رؤية CLSID هذا في التسجيل. لكن المشكلة استمرت.

ماذا ممكن ان تكون المشكلة؟


ArcObjects .NET - كيفية إغلاق / إصدار FeatureClass ، مساحة العمل ، المصنع - أنظمة المعلومات الجغرافية

ArcObject .Net مع VS 2013

يرجى أخذ هذا المستودع كمذكرة لإرشادك خلال إعداد AO وتصحيح الأخطاء والتطوير.

الدرس 1: بيئة الإعداد والتصحيح

حسنًا ، لنبدأ مشروع AO الأول في VS2013! في شريط القائمة: FILE - & gt New Project ، ثم افتح هيكل الشجرة داخل الجزء الأيمن في مربع حوار الفتح ، وابحث عن Visual C # - & gt ArcGIS - & gt Desktop Add-ins - & gt ArcMap Add-in.

في معالج ArGIS Add-Ins ، تأكد من تحديد خيار "Button" ضمن أنواع الوظائف الإضافية. سيؤدي ذلك إلى إنشاء قالب لعنصر تحكم زر لـ ArcMap. يجب أن تكون قادرًا على العثور على ملف cs باسم "Button1.cs". يرجى استبدال هذا الملف بـ on هنا. قبل أن نبني زر التحكم ، افتح Soultion Explorer الخاص بك VS 2013 ، وانقر بزر الماوس الأيمن على اسم المشروع واختر الخصائص. فحص مزدوج مكانين:

  1. يجب أن يكون إطار العمل المستهدف ضمن قسم التطبيق هو ".NET Framework 4"
  2. ضمن قسم التصحيح ، تأكد من تعيين "بدء البرنامج الخارجي" كبرنامج ArcMap

لا يزال أسفل مستكشف الحلول ، انقر بزر الماوس الأيمن على المراجع واختر "إضافة مراجع ArcGIS.". نحتاج إلى المراجعين التاليين من أجل بناء هذا الحل. لم يتم تضمينها في هذا القالب الافتراضي:

أنت الآن جاهز لبناء الحل! قبل القيام بذلك ، لا يزال هناك بعض التدبير المنزلي الذي يتعين علينا القيام به في نهاية ArcMap. انتقل إلى مجلد تثبيت ArcMap ، وعادة ما يكون موجودًا في: C: Program Files (x86) ArcGIS Desktop10.3 bin ، وابحث عن ملف باسم "ArcMap.exe.config". افتحه بامتياز المسؤول. إنه ملف XML وابحث في القسم التالي الموجود أعلى الملف:

بشكل افتراضي ، يتم تكوين ArcMap للتشغيل مقابل .Net Framework Runtime 2.0 ، والذي يتعارض مع عنصر تحكم الزر الذي سنقوم ببنائه في VS 2013. قم بالتعليق على هذا السطر وقم بإلغاء التعليق على السطر أعلاه لتمكين .Net Framework Runtime 4.0 for ArcMap . حسنًا ، الآن يجب أن تكون قادرًا على بنائه دون أي مشكلة. من أجل التأكد من أننا على نفس الصفحة للقسم التالي ، يرجى التحقق من ملف "config.esriaddinx" الخاص بك. يمكنك العثور على هذا الملف ضمن مستكشف الحلول. هذا ما لدي (قمت بإزالة الأقسام غير ذات الصلة)

يعطينا ملخصًا جيدًا للأداة التي أنشأناها للتو. اسمها هو "ArcMapAddin1" وهدفها ضد ArcMap 10.3 الذي يعمل ضد .Net Framework Common Lauguage Runtime 4.0. تم إعطاء عنصر التحكم في الزر هذا التسمية التوضيحية على أنه "الزر الخاص بي" وتم تصنيفه ضمن "عناصر التحكم في الوظائف الإضافية". ضع هذه الأمور في اعتبارك ، فستحتاج إليها لاحقًا.

إذا نقرنا على الزر "ابدأ" مع السهم الأخضر في VS2013 ، فيجب أن تكون قادرًا على رؤية بدء ArcMap. سيقوم VS2013 بتنفيذ جميع المهام القذرة بالنسبة لنا: استدعاء ArcMap 10.3 وإرفاق مصحح الأخطاء في عمليته ، وتحميل جميع الرموز الضرورية من التجميعات المختلفة لتسهيل التصحيح. ثم نكون جاهزين للتصحيح!

يمكنك وضع نقطة توقف على أي سطر من المصدر في Button1.cs ، ولكن لم يحدث شيء ، أليس كذلك؟ ذلك لأن عنصر التحكم هذا هو أحد مكونات واجهة المستخدم ويتطلب من المستخدم النقر فوقه لاستدعاء أي إجراء. إذن ، أين زرنا؟ انها ليست على واجهة المستخدم! حسنًا ، إنه أمر غير مريح حقًا ويمكن لـ ESRI القيام بعمل أفضل عن طريق إضافة الزر تلقائيًا إلى شريط الأدوات أثناء التصحيح.

على أي حال ، سيتعين علينا القيام بذلك يدويًا. ستحتاج إلى الانتقال إلى Customize - & gt Add-In Manager ، يجب أن تكون قادرًا على رؤية الزر الخاص بنا ضمن "My Add-Ins" ، وذلك بفضل ESRI! يجب أن يتطابق الاسم مع الاسم الموجود في config.esriaddinx ، ملف XML الذي أطلب منك الانتباه إليه.

بعد ذلك ، انقر فوق الزر "تخصيص" ، في علامة التبويب "أشرطة الأدوات" ، يمكنك إنشاء شريط أدوات جديد لاستمرار عملنا. لقد قمت بإنشاء واحد يسمى "Monkeybar" ، يمكنك تسميته أيا كان ، فقط تأكد من أنه لن يكرر الموجود في ArcMap. قم بالتبديل إلى علامة التبويب الأوامر ، يسرد الجزء الأيمن جميع الفئات المتاحة ، هل تذكر ما أخبرتك أن تتذكره؟ اسم الفئة هو "عناصر تحكم الوظيفة الإضافية"! إذا قمت بالنقر فوقه ، على الجانب الأيمن ، يجب أن تكون قادرًا على رؤية "الزر الخاص بي" كأمر.

يمكنك الآن سحب "الزر الخاص بي" إلى شريط الأدوات الجديد! ستكون الخطوة التالية هي إضافة بعض الطبقات على الخريطة. أسرع طريقة للقيام بذلك هي إضافة خريطة أساس والتي ستجلب نظام الإحداثيات أيضًا. اخترت ESRI World Topo. لديها نوع من الإسقاط مركاتور الويب. يمكنك العثور على ملف mxd الخاص بي هنا

الآن إذا قمت بالنقر فوق الزر (بشكل افتراضي ، يكون هذا الزر برمز دائري أزرق) ، يجب أن تكون قادرًا على رؤية أربع نقاط دائرية حمراء تظهر على الزوايا الأربع للخريطة. قد تحتاج إلى التكبير إلى أقصى حد لرؤيتها. إذا وضعت نقطة فاصل في السطر 59 من Button1.cs وانقر فوق الزر الخاص بنا في ArcMap ، فسيتم تعليق التنفيذ ويمكنك إجراء تصحيح الأخطاء خطوة بخطوة على مصدر Button1.cs داخل VS2013.

قد تلاحظ أن معظم منطق Button1.cs خارج وظيفة OnClick. ماذا لو كنت تريد تصحيح الكود ، على سبيل المثال ، في السطر 33؟ حسنًا ، تسمى هذه الوظيفة "المُنشئ الافتراضي للفئة" ويتم استدعاؤها مرة واحدة فقط عند النقر فوق هذا الزر في كل مرة. من أجل تصحيح الرموز الموجودة هناك ، سيتعين علينا إنهاء جلسة تصحيح الأخطاء الحالية بالنقر فوق زر المربع الأحمر في VS 2013 ، ثم وضع نقطة توقف جديدة في السطر 33 والبدء من جديد.

راجع للشغل ، هل يمكن لأي شخص أن يخبرني ماذا يعني السطر 36؟ ما هو القسم الموجود على الجانب الأيمن من علامة + =؟ إذا كنت لا تعرف ، فقد حان الوقت لتجاوز C # قبل الانتقال إلى الدروس المستقبلية.

الدرس 2: إنجاز العمل الشاق خارج ArcMap

عندما تم إصدار Arcpy ، كان أحد الأشياء المثيرة هو السماح لـ GISers بإنجاز أعمال معالجة البيانات دون فتح ArcMap. يسمح لك AO بالقيام بذلك من اليوم الأول ، ما عليك سوى بذل المزيد من الجهد في البرمجة :)

في هذه الجلسة ، سنقوم بتطوير تطبيق Windows Command Line قادر على التشغيل بدون تضمين ArcMap (هذا ليس صحيحًا تمامًا: إذا لم يكن لديك ترخيص ArcEngine ، فلا يزال يتعين عليك تثبيت ArcMap على النظام بالترتيب للحصول على ترخيص الوصول). على أي حال ، دعنا نغمض أعيننا وستجد أن ArcMap الظاهر خارج الرادار هنا.

من أجل تقديم حالة ممتعة ، قررت أن ألعب ببعض البيانات الحقيقية من قاعدة بيانات Great Lakes Restoration Database. من خلال واجهة الخريطة الخاصة به ، يمكنك تنزيل جميع مشاريع GLRD بتنسيق csv. سوف نأخذ هذا التفريغ على أنه مصدر البيانات. يحتوي كل صف من هذا الملف على سجل مشروع باستخدام خطوط الطول / العرض ، والتي يمكننا تحويلها إلى فئة معلم نقطي. إذا كنت من مستخدمي GISer ، فمن المحتمل أنك فعلت ذلك مئات المرات ، فقد تسأل: ما هو الجزء الممتع من ذلك؟ حسنًا ، دعنا نضيف بعض المرح: ماذا لو أردت فقط استخراج المشروع لولاية ميشيغان؟ حسنًا ، إذا كنت لا تزال تواجه مشكلة في العثور على مكان لتنزيل ملف CSV هذا ، فالرجاء النقر هنا.

دعنا نعود إلى VS2013. FILE - & gt Project ، في الجزء الأيمن داخل نافذة مشروع جديد: قوالب مثبتة - & gt - & gt Visual C # - & gt ArcGIS ، إذا نقرت على "تمديد ArcObjects" ، سيعرض الجزء المركزي كل القوالب المتاحة ، الرجاء اختيار "تطبيق وحدة التحكم ( سطح المكتب)". يجب أن ترى "معالج مشروع ArcGIS" يظهر ، في الصفحة الأولى ، سنحتفظ بكل شيء افتراضيًا وننقر على "التالي". بعد ذلك ، ستحتاج إلى اختيار نوع الترخيص لمنتجات ESRI الخاصة بك حتى يعرف البرنامج المكونات التي يمكن تضمينها في برنامجك. اخترت "متقدم" ثم انقر فوق "إنهاء" لتحميل النموذج.

إذا فتحت "مستكشف الحلول" ، يجب أن ترى ملفي cs تم إنشاؤهما بواسطة ESRI. الرجاء استبدال "Program.cs" بهذا. مرة أخرى ، قبل إنشاء البرنامج ، سيكون عليك إضافة بعض الإحالات الإضافية. Remebmer الخطوة الأولى من "معالج مشروع ArcGIS"؟ أقنعتك بتخطيها ، يمكنك في الواقع تحميل مراجع إضافية هناك.

1.ESRI.ArcGIS.Version 2.ESRI.ArcGIS.Geodatabase 3.ESRI.ArcGIS.Geometry

الآن ، يجب أن تكون قادرًا على بناء البرنامج. من المفترض أن تعمل هذه الأداة تحت سطر الأوامر مع وسيطتين:

C: DesktopConsoleApplication1.exe glrd.csv ميشيغان

الوسيطة الأولى هي المسار إلى ملف csv الذي قمت بتنزيله للتو ، والثاني هو اسم الحالة. إذا فشلت في تغذية هاتين الوسيطتين ، فسينتهي البرنامج على الفور. بعد ذلك ، قد تسأل: كيف يمكنني إعداد ملف insdie VS2013 هذا؟ في مستكشف الحلول ، انقر بزر الماوس الأيمن فوق المشروع ، ثم انتقل إلى "الخصائص" ، ضمن تصحيح الأخطاء ، ضع الوسائط داخل "وسيطات سطر الأوامر". من خلال القيام بذلك ، في كل مرة تقوم فيها بتصحيح أخطاء البرنامج ، سيتم تغذية الأشياء التي تضعها هناك.

هذا تطبيق "مستقل" وسنضع تركيزنا على الكود. توجد مهمتان تم القيام بهما في الكود:

  1. تحليل ملف Excel csv باستخدام استعلام SQL
  2. قم بإنشاء ملف قاعدة بيانات جغرافية وقم بتعبئتها بهندسة النقاط والسمات

المهمة الأولى ضرورية إذا كان علينا تصفية المحتوى أولاً. بالنسبة للحالة التي أعددتها ، نود أن نعرف فقط المشاريع في ولاية واحدة من ولاية البحيرات العظمى. لقد حققنا ذلك في السطر 33 باستخدام OleDbCommand مقابل Excel. تقدم Microsoft نهجًا أنيقًا للغاية للتعامل مع بيانات Excel باستخدام عبارة SQL. أنا أوصي به بشدة لعمل البرمجة الخاص بك.

إذا وجدنا عددًا موجبًا من المشاريع لدولة ما ، فيمكننا المضي قدمًا لوضعها داخل قاعدة بيانات جغرافية. يرجى الانتباه إلى تدفق هذه العملية:

  1. احصل على المصنع القادر على إنشاء قاعدة بيانات جغرافية قائمة على الملفات ، انظر السطر 135.
  2. قم بإنشاء فئة ميزة جديدة في السطر 147.
  3. قم بتكرار سجلات المشروع ، وأنشئ ميزة جديدة ثم أدخلها في فئة الميزة من خلال FeatureBuffer و FeatureCursor ، والتي يوصى بإدراجها بشكل مجمّع. انظر السطر 156. بمجرد الانتهاء من الحلقة ، قم بمسح الكورس لكتابة جميع السجلات مرة أخرى إلى القرص.

أثناء إنشاء فئة الميزة ، سيتعين عليك تحديد:

هذا إجراء معياري جدًا. أنا مندهش من أن ESRI ليس لديه مقتطف أو عينة رمز لهذا الغرض. أجد هذا فقط في حساب ESRI جيثب. انتبه إلى أن النموذج يستخدم "esriDataSourcesFile.TextFileWorkspaceFactory" ، والذي حرر المبرمج من التعامل مع ملف csv مباشرة. ومع ذلك ، تأتي الحرية دائمًا من فهم النظام. مع النهج الذي قدمته ، لديك الآن المزيد من المرونة للتعامل مع ملف Excel.

قبل أن نختتم ، دعنا نعود إلى النموذج الافتراضي الذي يقدمه لنا ESRI:

هذه هي الإجراءات الروتينية لتهيئة مكونات ESRI بما في ذلك المرخصة ، ثم إغلاق كل شيء في النهاية. يجب كتابة الكود الخاص بك الذي يتضمن عناصر ESRI بينهما.

قبل رفضنا ، هل يمكنك إلقاء نظرة على توقيع الوظيفة ParseCSV ، ماذا تعني List & ltdynamic & gt؟ إذا قرأت الكود بعناية ، فما نوع الأشياء التي نضعها في القائمة في السطر 38؟ مرة أخرى ، إذا لم تكن لديك أي فكرة ، فيجب تحديث معلومات C #!

حسنًا ، لقد انتهينا جميعًا. حتى في المرة القادمة ، قد تكون القوة معك!

الدرس 3: ArcObjects أو ArcPy ، أكون أو لا أكون

بادئ ذي بدء ، لا أنوي خلق حرب مقدسة هنا. كلاهما رائع! أريد فقط توضيح الفرق بين AO و AP في حالة معينة. نأمل ، بغض النظر عن كونك من مؤيدي AO أو AP ، فقد يكون هذا مفيدًا لك لاختيار الأداة المناسبة للمهمة الصحيحة.

دعنا نصف المهمة أولاً: إذا كنت معتادًا على الرسم البياني باعتباره بنية بيانات في سياق علوم الكمبيوتر ، فقد تعلم أنه هيكل أساسي لإجراء أي نوع من العمليات ، مثل تتبع الشبكة ، أقصر مسار ، أقصى تدفق ، إلخ. بالنظر إلى مجموعة بيانات NHD Plus المُجهزة مسبقًا للبحيرات العظمى بتنسيق قاعدة بيانات جغرافية للملف ، نود إنشاء الرسم البياني في نموذج القائمة المقابل. من خلال فحص قاعدة البيانات الجغرافية بعناية ، وجدنا أن هناك صنفين من الميزات مفيدان بشكل خاص لهذه المهمة: NHD_Flowline و Hydro_Net_Junctions. كما تعلم ، فإن NHD Plus عبارة عن مجموعة بيانات تمت معالجتها وبنائها باستخدام شبكة دفق باستخدام تقنية ESRI. ومع ذلك ، فإن قاعدة البيانات الجغرافية ESRI هي ملكية خاصة لذلك لا يمكننا الاستفادة من البيانات الحالية لبناء قائمة الجوار (أنا في الواقع أبالغ قليلاً هنا لأن ESRI توفر مكتبة C ++ مفتوحة المصدر لمعالجة قاعدة البيانات الجغرافية القائمة على الملفات).

باستخدام هاتين الفئتين من الميزات ، يمكننا إنجاز عملنا باستخدام ArcPy بطريقة مباشرة ومباشرة. ها هو الكود. قد تلاحظ أن البرنامج النصي يستخدم ملف shp بدلاً من قاعدة البيانات الجغرافية. لم أكذب ، لدي نسخة تستخدم قاعدة البيانات الجغرافية هنا. إذا كنت تعمل لدى صاحب العمل ، فيجب أن تكون قادرًا على مشاهدته. إذا قمت بإعداد هذا البرنامج النصي على سطح المكتب مع تثبيت ArcMap 10.3 وجاهز NHD Plus for Great Lakes (أخبرني إذا كنت بحاجة إلى هذا 'NHDPlusV21_GL_04.gdb' المستخدم في الاختبار) ، فقد تجد أنه قد يستغرق ما يصل إلى 6 إلى 12 ساعة لإكمال. أراهن أنك ستلاحظ أيضًا عنق الزجاجة هنا وهنا.

هل يمكننا إجراء بعض التحسين هناك؟ للأسف ، ليس هناك الكثير مما يمكننا فعله نظرًا لأن ESRI كشف فقط عن وظائف محدودة لـ ArcPy ، بشكل أساسي المعالجة الجغرافية باستخدام أي شيء داخل صندوق أدوات ArcMap. بمعنى آخر ، كل نصوص ArcPy النصية الخاصة بك تفعل شيئًا واحدًا: مجموعة من أي عدد من الأدوات التي يقدمها ESRI في ArcMap. لديك سعة 64 بت ولكنك لا تساعد كثيرًا في هذه الحالة ، والتي من المرجح أن تكون مرتبطة بوحدة المعالجة المركزية.

دعنا نقلب العملة ونتحقق من الجانب الآخر: ArcObjects .Net ، هذا الوريث الشرير لـ ArcObject for Visual Basic يوفر غلاف طبقة رقيقة أعلى ArcObjects COMs ومن المفترض أن يكون قادرًا على الوصول إلى كل جانب من جوانب تقنيات ESRI ، حسنًا ، إذا كان لديك تم شراء الترخيص المناسب. من أجل الحصول على اللعب النظيف ، سوف نلتزم بنفس المنهجية التي يتبعها ArcPy. نعتقد أنه يمكن أن يكون لدينا برنامج نصي C # يعمل بشكل أفضل باستخدام AO استنادًا إلى حقيقة أن AO تقدم دقة أكثر دقة من AP فيما يتعلق بالبرمجة. من خلال كسر هذين الاختناقين والذهاب إلى طبقة أعمق داخل AO ، قد نحدث فرقًا.

أول شيء أولاً ، دعنا نوضح الجزء الممل أولاً: في ما يلي نوعان من POCOs لتمثيل العقدة وعناصرها:

يتم استخدام Vertex كعقدة لتتبع معرف العقدة وعدد التدفقات الواردة والأكثر أهمية: العقد النهائية المخزنة في قائمة. تحتوي فئة DownstreamNode على معرف العقدة ومعرف الدفق الوارد والأهم: بيانات السرعة في قائمة (فكرنا الأصلي هو استخدام هذه السرعة لحساب وقت السفر على طول التدفقات).

في البرنامج النصي C # ، نحتاج إلى فتح قاعدة البيانات الجغرافية المستندة إلى الملفات والحصول على المراجع لفئات الميزات التي نرغب في فحصها:

نظرًا لأن لدينا الآن فئات ميزات في متناول اليد ، فنحن على استعداد للتعامل مع الاستعلامات المكانية ، والتي تتم عادةً في ArcPy من خلال ثلاثة أسطر من التعليمات البرمجية:

السطر الثالث "arcpy.SelectLayerByLocation_management" هو المفتاح. نظرًا لأننا سنضطر إلى المرور عبر كل نقطة تقاطع ضد طبقة NHD_Flowline (نقطة واحدة مقابل جميع الخطوط المتعددة) ، نشك في أن "SelectLayerByLocation_management" قد يكون غير فعال بسبب التصميم. ربما تمت برمجة "SelectLayerByLocation_management" بهذه الطريقة:

  1. بناء فهرس مكاني على NHD_Flowline
  2. ابحث في الفهرس باستخدام نقطة معينة وابحث عن جميع المرشحين المقيمين في شجرة فرعية من الخطوط المتعددة الخطوط
  3. المسح الخطي لجميع المرشحين مقابل نقطة معينة باستخدام عوامل هندسية لاستبعاد النتائج الإيجابية الزائفة
  4. إرجاع resultset

من المحتمل أن الخطوة الأولى ، الفهرس ، يمكن إعادة بنائها في كل مرة نستدعي فيها "arcpy.SelectLayerByLocation_management" ، وهي مضيعة. ماذا لو أنشأناها مرة واحدة واستخدمنا نفس المؤشر لجميع النقاط؟ قيل لي أن الاستعلام المكاني AO يجب أن يتم باستخدام:

لست متأكدًا من كيفية تنفيذه ، لكنه يبدو قريبًا من "Arcpy.SelectLayerByLocation_management". لذلك ، قررت أن أسلك مسارًا مختلفًا: "IFeatureIndex" و "IIndexQuery2" ، والذي يبدو واعدًا من خلال منحنا تحكمًا أكثر دقة في الميزان. هذا هو الكود الخاص بي:

نقوم بإنشاء FeatureIndex coclass ونطلب منه إنشاء فهرس مكاني مقابل فئة الميزة المحددة (يبدو أن FeatureIndex ينشئ بالفعل فهرسًا على نظام الملفات ، وأعتقد أنه يمكن أن يستفيد من الفهرس الموجود داخل قاعدة البيانات الجغرافية.) ثم قمنا بنقله إلى IIndexQuery2 ، والتي لها طريقة تسمى: IntersectedFeatures. إذا كنا على حق ، فسيؤدي ذلك إلى تنفيذ الخطوات المذكورة أعلاه من 2 إلى 4.

يمكننا بسهولة وضع الرموز معًا كتطبيق وحدة تحكم ESRI باستخدام C # ، حسنًا إذا اتبعت دروسي السابقة. الشيء الوحيد الجدير بالذكر هو حساب الطول الجيوديسي لخطوط متعددة بإحداثيات خط / خطوط عرض. في ArcPy ، مرة أخرى ، يحتاج فقط سطر واحد من التعليمات البرمجية:

قد تعتقد أنه من المفترض أن يكون بهذه البساطة. حسنًا ، تمسك بفكرتك ، وانظر كيف تم ذلك في AO ، نظرًا لأن polyLine عبارة عن IPolyline:

عذرًا ، لا تسألني عن كيفية عمل مثيل LinearUnitClass افتراضي هنا. إنه فوضوي بدرجة كافية. لقد حملت تفكيري لوضع كود Haversine الخاص بي هناك لأنني على ثقة من أن ESRI لديها حل أفضل بالقرب من القطب الشمالي / الجنوبي. عليك أن تصدق ذلك! :) مرة أخرى ، أخبرني أحد خبراء AO أن هذا الطول الجيوديسي على شيء متعدد الخطوط يجب أن يتم على مستوى القطع باستخدام طريقة مختلفة. لم أحفر كثيرًا: لقد جعلت رمز C # الخاص بي فوضويًا عن قصد ، حتى أنني حاولت استخدام Linq لكن Linq الخاص بـ C # شاحب مقارنة بفهم قائمة Python. لأنني أعلم أن C # على CLR مقابل COM على نظام Windows سيكون بالتأكيد أسرع من Python ، ناهيك عن أن ArcPy أعلى غلاف الغلاف.

إذا تمكنت من تجميع الكود بنجاح ، فلا تتعجل في تشغيله ، وصنع فنجانًا من القهوة ، واحتفظ بكتابك المفضل في يديك ، فقد استغرق آخر نص لبرنامج ArcPy ساعات! حسنًا ، على الكمبيوتر المحمول الخاص بي ، كان لدي وقت لتناول فنجان من القهوة وقراءة بعض الأخبار عبر الإنترنت ، ومع ذلك ، من المدهش أن إصدار AO هذا اكتمل في 15 دقيقة! الرياضيات الخاصة بي سيئة ، هل يمكن لأحد أن يخبرني كم مرة يكون فيها هذا أسرع من إصدار AP؟

مرة أخرى ، لا أقصد إثبات أن AO أفضل من AP أو أقنعك بالتبديل إلى AO. أود أن أمنح الجميع فرصة لتحديث قاعدة معارفك والتفكير خارج الصندوق! من المحتمل أن تفقد مسار الإحساس بالأداء بينما تستمتع بعدد أقل من سطور رمز ArcPy. أنا أحب ArcPy ، فأنا أحب ذلك حقًا ، ولكن في الكثير من السيناريوهات ، أشعر أنني كنت أرتدي T-shrit لمراهق. لذا ، نصيحتي هي: إذا كنت تهتم بالأداء أو شعرت أن ArcPy كان بطيئًا للغاية بالنسبة لك ، فيمكنك التفكير في استخدام ArcObject ، والذي لن يخيب ظنك عادةً ، على الأقل ليس هذه المرة في حالة الاختبار الخاصة بنا. :)

أعلم ، أعلم ، أنه من المفترض أن نناقش ArcObject ، وليس ArcPy. ومع ذلك ، سابقًا ، على "ArcObject .Net with VS 2013". (حسنًا ، نحن لسنا مسلسلًا تلفزيونيًا :) ، لقد صدمت من زيادة الأداء من خلال التبديل من ArcPy إلى ArcObject. اعتقدت أنه قد يكون من المفيد إجراء بعض التحقيقات حول ArcPy وتنفيذه وقدرته. إذا كنت لا تخطط لتعلم ArcPy ، يرجى تجاهل هذا الفصل.

تم تقديم ArcPy لأول مرة في عام 2010 مع حقيقة ArcGIS 10 (حسنًا ، إنه حقًا jsut 9.4 ، ولكن تسميته 10 جعله يبدو أحدث.). في الواقع ، كان هناك "Arcgisscripting" يعود إلى ArcGIS 9.2 ، فقد دعم ليس فقط Python ، ولكن لغات البرمجة النصية الأخرى ، مثل VBScript و Perl أيضًا. ومع ذلك ، بعد فترة وجيزة من توقف Microsoft عن دعم VB و VBScript و Jscript ، اتخذ ESRI قرارًا بإسقاط جميع البرامج النصية باستثناء Python. كان من المفترض أن يوفر القدرة على البرمجة النصية في مهام المعالجة الجغرافية فقط. ظهر مربع أدوات المعالجة الجغرافية لأول مرة في ArcMap 9.2. تم تصميمه لتبسيط بعض أعمال معالجة البيانات:

  1. مربع أدوات التحليل
  2. مربع أدوات رسم الخرائط
  3. مربع أدوات التحويل
  4. مربع أدوات إدارة البيانات
  5. مربع أدوات التحرير
  6. مربع أدوات التكويد الجغرافي
  7. مربع أدوات المراجع الخطية
  8. صندوق أدوات الأبعاد المتعددة
  9. مربع أدوات الإحصاء المكاني

في ArcPy ، يتم تعريف كل وظيفة معالجة جغرافية في ArcMap كوظيفة داخل وحدات ArcPy النمطية. يمكنك إنشاء هيكل contex لفئة ميزة النقطة بواسطة سطري التعليمات البرمجية التاليين:

وظيفة "MinimumBoundingGeometry_management" مكافئة لأداة "Minimum Bounding Geometry" ، والتي يمكن العثور عليها ArcMap- & gt Toolbox - & gt Data Management. يقوم ArcPy ببساطة بأتمتة هذه الأداة عن طريق السماح للمستخدم بإرسال معلمات هذه الأداة بطريقة برمجية. بعد نظرة ثانية ، قد تلاحظ أن جميع الوظائف تتبع اصطلاح تسمية samae:

اسم الأداة + '_' + الاسم المستعار لمربع الأدوات

إذا لم تكن متأكدًا من الاسم المستعار الخاص بصندوق أدوات معين ، فانقر بزر الماوس الأيمن فوق مربع الأدوات ثم الخاصية.

وفقًا لمدونة ESRI ، إليك الغرض من ArcPy:

"ArcPy عبارة عن حزمة موقع تعتمد على (وهي لاحقة لـ) وحدة Arcgisscripting النمطية. هدفها هو إنشاء حجر الزاوية لطريقة مفيدة ومثمرة لإجراء تحليل البيانات الجغرافية وتحويل البيانات وإدارة البيانات وأتمتة الخرائط مع بايثون ".

في الإصدار الأول من ArcPy ، بخلاف المعالجة الجغرافية ، يوفر أيضًا زوجًا من النماذج الأخرى: رسم الخرائط (arcpy.mapping) والتحليل المكاني (arcpy.sa) والمحلل الجغرافي الإحصائي (arcpy.ga). في الإصدار 10.1 ، تم تقديم الوصول إلى البيانات (arcpy.da) والوقت (arcpy.time). يتضمن أيضًا بعض المكتبات / الأدوات الأخرى.

كما نعلم جميعًا ، يمكن إجراء جميع تخصيصات إنتاج ESRI من خلال ArcObject وقد تم تطوير ArcObject بناءً على Microsoft COM ضد نظام Windows. على سبيل المثال ، وسيلة استبعاد أدوات المعالجة الجغرافية هي من خلال GPDispatch coclass (تعريف coclass). يسمح فقط للمستخدم بإرسال التقارير حسب السلسلة واستهلاك أي نتيجة تعود الواجهة. لذلك ، يسميها ESRI "كائن خشن الحبيبات" ، انظر هنا. ومع ذلك ، يقوم ArcPy بتنفيذ وظائف المعالجة الجغرافية الخاصة به أعلى هذه الواجهة. كما تشير بعض وثائق ESRI ، فإن ArcPy هو نموذج ذو حبيبات خشنة أيضًا.

"تم إنشاء Arcpy.mapping لمحلل نظم المعلومات الجغرافية المحترف (وكذلك للمطورين). تقليديًا ، كان يجب تنفيذ السيناريوهات المذكورة أعلاه باستخدام ArcObjects وغالبًا ما ثبت أنها بيئة برمجة صعبة للغاية للتعلم لمتوسط ​​نظم المعلومات الجغرافية. Arcpy.mapping هو نموذج كائن محبب ، مما يعني أن الوظائف مصممة بطريقة يمكن لوظيفة arcpy.mapping واحدة أن تحل محل العديد من أسطر تعليمات ArcObjects البرمجية. "

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

ستعرض الرموز أعلاه جميع الميزات في mxd ، باستخدام التكوين المحدد في mxd ، إلى ملف pdf.

قد ترغب في أن تسأل: هل يجب أن نعتبر ArcPy بديلاً لـ ArcObject؟ ومع ذلك ، وفقًا لـ ESRI:

"لا يعد Arcpy.mapping بديلاً لـ ArcObjects ولكنه بدلاً من ذلك بديل للسيناريوهات المختلفة التي يدعمها. لا يزال ArcObjects ضروريًا لتطوير حبيبات دقيقة وتخصيص التطبيق ، في حين أن arcpy.mapping مخصص لأتمتة محتويات مستندات الخريطة الحالية والطبقة ملف."

قد ترغب أيضًا في معرفة: ما إذا كان ArcPy قادرًا على الاتصال بـ ArcObject مباشرةً؟ الجواب لا. لكنني متأكد من أن ArcPy لا يزال يتواصل بطريقة ما مع ArcObject بشكل غير مباشر وضمني. كالعادة ، "قتل الفضول القطة". سأقوم بفتح غطاء ArcPy قليلاً وأرى ما يوجد هناك. على سطح المكتب ، تم تثبيت ArcPy على:

C: Program Files (x86) ArcGIS Desktop10.2 arcpy arcpy

هناك ، ستجد بنية حزمة وحدة Python كلاسيكية. يوجد مجلد فرعي هناك يسمى "arcobjects" ، هل أنت مقتنع؟ أنا متأكد من أنك لست كذلك. لذلك ، دعونا نفتح بعض ملفات py. تم تعريف فئة "MapDocument" في _mapping.py. إعلان الطبقة مثل:

إذا كنت معتادًا على C # أو Java ، فيمكنك اعتبار "mixins" كواجهة. لا يوجد مُنشئ صريح محدد في MapDocument ، لذلك ، وفقًا لترتيب حل أسلوب Python (MRO ، العمق أولاً قبل خوارزمية 2.3 و C3 بعد ذلك ، يمكنك فحص سلوك MRO بواسطة class.mro ()) ، مُنشئي الفئات الأساسية سيتم الاحتجاج به:

يظهر MapDocumentMethods الذي يستدعي فئته الأساسية فيه مباشرة إذا كانت super () ترجع بالفعل صنفها الأساسي. ومع ذلك ، نظرًا لأننا نتعامل مع الميراث المتعدد هنا ، فائق (MapDocumentMethods ، الذات).فيه(mxd) يستدعي في الواقع مُنشئ الفئة الأساسية الثانية لـ MapDocument: "_BaseArcObject". إذا كنت ترغب في معرفة المزيد عن السلوكيات الخيالية للفائقين ، فيرجى النقر هنا. دعنا نلقي نظرة على _BaseArcObject:

يحتوي على مُنشئ قادر على أخذ وسيطات إدخال متغيرة الطول. كما أنها تحدد متغير عضو ثابت ، "_arc_object". تم تعريف وظيفة "gp._gp.CreateObject" في مساحة الاسم "المعالجة الجغرافية" ، تذكر أننا ذكرنا أن المعالجة الجغرافية هي أول وحدة نمطية تم تقديمها لـ ArcPy؟ بالنسبة لـ gp ، إنه مثيل لفئة Geoprocessor:

الآن ، وصلنا إلى الأصل: يتواصل ArcPy مع ArcObject من خلال "Arcgisscripting" ، الذي هو سلف ArcPy. لن تجد arcgisscripting داخل مجلد ArcPy ، فهو موجود بالفعل في "C: Program Files (x86) ArcGIS Desktop10.2 bin" ، باسم "arcgisscripting.pyd" ، وهو في الواقع ملف DLL.

كما ناقشنا في الفصل السابق وفي هذا الفصل ، نظرًا لإمكانية التشغيل البيني مع COM ، يجب أن تتوقع بعض فقدان الأداء إذا كنت تستخدم ArcPy وليس ArcObject. يعتمد مقدار الخسارة التي قد تتعرض لها حقًا على المهام. فيما يلي معيار معياري أؤمن به على الإنترنت مقابل ArcGIS 9.3. ذكرنيdbGLC أن هذا الرسم مأخوذ من اختبار مسبق يناقش إمكانية استدعاء AO COM مباشرة باستخدام Python باستخدام بعض حزم Python COM ، مثل comtypes. موضوع المناقشة الأصلي هنا. قد تجد الكثير من الأفكار الرائعة هناك.

مرة أخرى ، يهدف هذا الفصل إلى مساعدتك على فهم مكونات ArcPy. يعد كل من ArcObject و ArcPy أدوات رائعة لسيناريوهات مختلفة. إذا كنت ترغب في معرفة المزيد عن ArcPy ، فإنني أوصي بإعادة شراء ESRI على جيثب هنا. اسمحوا لي أن أعرف ما إذا كان يمكنك العثور على أي وظيفة معالجة جغرافية باهظة الثمن تسمى داخل حلقة ضخمة. :)

الدرس الخامس: مخطط نموذج كائن ArcObjects (OMD)

إذا كنت من مطوري AO المتمرسين ، بغض النظر عن رغبتك في VBA أو VB أو VB.Net أو C # أو Java أو C ++ (مرتبة حسب الشعبية :) ، فقد أخذت هذه المخططات في بعض الأحيان للبحث عن الغرض على الأقل. حسنًا ، إذا كنت مبتدئًا في AO ، مثلي تمامًا ، فقد تشعر أنني كنت مبالغة. لن ألومك لأنني اعتقدت ذلك أيضًا. ومع ذلك ، بمجرد أن تبدأ في تنفيذ وظيفة من خلال AO على محمل الجد ، ستكون هذه المخططات هي سلاحك الفائق ، خاصة بعد إضاعة الوقت في عمليات البحث على Google. لا أمزح ، لطالما كنت أمزح مع زملائي: مطور كبير هو شخص يمكنه حل لغز تقني لا تجيب عليه محركات البحث. لسوء الحظ ، يقع ArcObjects في هذه الفئة أكثر من التقنيات الأخرى! سببان: 1. لدى AO مجموعة مستخدمين صغيرة نسبيًا 2. قام ESRI بعمل سيئ للغاية للحفاظ على وثائق API الخاصة بالمطور. أدفع 1500 دولار سنويًا مقابل اشتراك EDN ، لكنني ما زلت أشعر بالعجز أكثر مما توقعت.

يتعلم الناس دائمًا من دروسهم (حسنًا ، شخص ما يسقط في نفس النهر أكثر من مرة). بعد تجربة محبطة مع زوجين مع مستندات Google و EDN ، تذكرت فجأة الوقت الذي كنت فيه صغيراً: رأيت معلمو AO يقفون ويتأملون أمام لوح أبيض ضخم مع رسم تخطيطي بطول قدمين مسمر عليه. تذكرت الرسم التخطيطي الذي يحدقون فيه ويسمى مخطط نموذج كائن AO ، ويعرف أيضًا باسم OMD (يا حبيبي)! انتظر لحظة ، أين أعزائي؟ على سطح المكتب الخاص بي ، هم موجودون في:

C: Program Files (x86) ArcGIS DeveloperKit10.4 Diagrams

يوجد 68 ملف pdf في هذا المجلد ، حسنًا ، كان هناك عدد أقل بكثير لإصدار AO السابق. إذا كنت من الهواة مثلي ، أود أن أوصي بقراءة GeoDatabaseObjectModel.pdf أولاً. يحتوي على معظم الأشياء التي قد تحتاجها لبدء برمجة AO. دعونا نلقي نظرة معا!

بادئ ذي بدء ، عليك أن تفهم أن ESRI تابع مخلص لـ UML. جميع الرموز الرمزية الغريبة التي قد تراها مشتقة في الواقع من الرسوم البيانية لفئة UML مع بعض اختراعات ESRI. هنا مرجع جيد لمخطط صنف UML. إذا كنت لا ترغب في قضاء 3 دقائق لاستعراض هذه المفاهيم و sybmols المرتبطة ، فإن ESRI لديها UML 101 في كل رسم تخطيطي.

ESRI صنعوا اختراعهم. ما هي الواجهة الواردة والواجهة الصادرة؟ حتى بعد أن أخذت فصل UML في فصل دراسي كامل ، لا يوجد دليل لما قد يكونون عليه! لا داعي للقلق ، تقدم ESRI شرحًا في سلسلة "Learning ArcObjects" المتوفرة على الإنترنت وغير المتصلة بالإنترنت لكل إصدار. هنا هو الميثاق: قراءة OMDs. الآن قد تعرف أن الواجهة الواردة هي الواجهة التي تنفذها الفئة المحددة بالفعل ، والواجهة الصادرة هي في الواقع تسجيل الأحداث ، ويطلق عليها ESRI اسم مصدر الحدث. إنها خدعة مدرسية قديمة لتسجيل معالج الحدث الخاص بك. إذا كنت ساذجًا مثلي ، فيمكنك ببساطة اعتباره حدثًا في سياق .Net.

تذكر أنني ذكرت من قبل أن هؤلاء المعلمون طبعوا ORM بحجم خريطة صغيرة باستخدام الراسمة؟ لماذا ا؟ إذا فتحت GeoDatabaseObjectModel.pdf ، فهذا ما قد تراه جيدًا إلا إذا كان لديك تلفزيون LED كبير للغاية على شكل شاشة:

الآن ، أنت تعرف سبب أهمية الراسمة ، هل أنت :)

إذا كنت تعرف الواجهة التي تهتم بها ، فمن الملائم دائمًا البحث عن OMD المقابل مباشرةً. خلاف ذلك ، تشعر أنك تلعب لعبة الغميضة.

حسنًا ، لنلعب لعبة الغميضة. ها هي الصفقة: أود فتح قاعدة بيانات GeoDatabase القائمة على ملف والحصول على معلومات حول فئات الميزات الموجودة فيه. إذا كنت مبرمجًا ، فقد تعلم أن فتح ملف من القرص عادةً ما يستخدم بعض الوظائف مثل "open" أو "openfile" وما إلى ذلك نظرًا لأننا OOP ، فهناك فئة يمكننا تطبيق هذه الوظيفة. قبل أن تغوص في محيط أعزائي ، أمسك بذراعيك وأقول: انتظر دقيقة ، هناك شيء آخر أحتاج إلى ذكره: ثلاث قواعد مؤكدة للعب مع My Darlings (OMD):

أنا. أثناء تتبع الواجهة ، في كل مرة يتم فيها الوصول إلى واجهة تقوم بتنفيذ IUnknown ، تعلم أن هذه هي النهاية. لاحظ أنني أستخدم "واجهة" workd وليس فئة؟ تم إنشاء AO على مستوى Microsoft COM القياسي. إنه يقول بشكل أساسي أن كل استدعاء دالة يجب أن يتم مقابل مثيل لنوع من الواجهة. حسب البروتوكول ، يجب أن تقوم كل واجهة معرفة ضمن مجال COM بتنفيذ واجهة IUnknown. لا تقلق بشأن ما يوجد في IUnknown ، فتبقيه غير معروف ليس بالفكرة السيئة. كل ما تحتاج إلى معرفته هو أنه طريق مسدود بمجرد أن نرى واجهة في OMD تنفذ IUnknown مباشرة. لقد وصلنا إلى أعلى مستوى من التسلسل الهرمي OMD.

WorkspaceFactory هي فئة تنفذ IWorkspaceFactory ، وهي واجهة واردة وتنفذ IUnknown. يخبرنا هذا أن IWorkspaceFactory هو واجهة من المستوى الأعلى.

II. يتم دائمًا الوصول إلى الوظائف المحددة في الواجهة من خلال مثيلات من نوع معين من الفئات. نوع الفئة هذا هو إما فئة Coclass أو فئة "قابلة للحساب" ، وهي نوع من الفئات لا يمكن استرجاع مثيلها إلا من خلال الفئات الأخرى. قد يعني هذا الاسترداد إما من المصنع أو الفردي أو المنبه. دعونا لا نزال نستخدم WorkspaceFactory كمثال.

في .Net ، يتم تنفيذ WorkspaceFactory على OMD كوحدتين: واجهة "WorkspaceFactory" وفئة "WorkspaceFactoryClass" ، والتي تنفذ واجهة "WorkspaceFactory" جنبًا إلى جنب مع الواجهات الأخرى التي يجب على WorkspaeFactory القيام بها وفقًا لـ OMD. "WorkspaceFactory" هي واجهة فارغة ربما تعمل كعنصر نائب. لماذا ا؟ لا أعلم. إذا كنت تعرف، واسمحوا لي أن أعرف:)

من إلغاء التحويل البرمجي ، يمكننا إخبار مُنشئ WorkspaceFactoryClass بمُعدِّل الوصول "داخليًا" ، مما يعني أنه لا يمكن الوصول إليه إلا داخل التجميع. تعني كلمة "خارجي" أن المُنشئ هذا تم تنفيذه في مكان آخر. يتم تعيين السمة MethodImpl المرتبطة بالباني مع MethodImplOptions.InternalCall ، والتي تشير إلى أن "الاستدعاء داخلي ، أي أنه يستدعي طريقة يتم تنفيذها خلال وقت تشغيل اللغة العامة.". كل هذا يتأكد من أنه لا يمكننا إنشاء مثيل لـ WorkspaceFactoryClass في التعليمات البرمجية الخاصة بنا. لذلك ، فإن WorkspaceFactoryClass مؤهل ليكون ملف فئة "لحظية".

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

ثالثا. لأن هذه الفئات عادة ما تنفذ عدة واجهات. من المعتاد جدًا أن ترى في كود AO ، من أجل الوصول إلى طريقة معلنة في الواجهة D ، والتي يتم تضمينها في الفئة C ، يجب عليك الحصول على مثيل من الفئة A أولاً ، ثم إرساله إلى واجهة B باستخدام "as". نظرًا لأن الفئة C تنفذ كلاً من الواجهة B والواجهة D ، يمكنك الآن إرسال كل ما لديك من B إلى D.

الآن يمكنك الغوص! الدليل الوحيد الذي لدينا هو أنه يبدو أنه يتم الوصول إلى جميع مجموعات البيانات من خلال نمط تصميم Abstract Factory. نظرًا لأننا نرغب في فتح ملف يستند إلى GDB ، أجد FileGDBWorkspaceFactory في DataSourcesGDBObjectModel.pdf

يحتوي على مستطيل ثلاثي الأبعاد مظلل ، لذلك يمكننا تهيئة مثيل FileGDBWorkspaceFactory مباشرة أو إنشاء شيء من هذا القبيل من خلال العاكس. لها واجهة واردة: IWorkspaceFactory وهذه الواجهة موصوفة في GeoDatabaseObjectModel.pdf. انظر إلى الصورة السابقة ، لديها وظيفة تسمى "OpenFromFile ()" ، وهي الطريقة التي نتوقعها. تقوم هذه الطريقة بإرجاع واجهة IWorkspace ، انظر الرسم التخطيطي أدناه:

لاحظ أنه يستخدم IFeatureWorkspace ، نظرًا لأننا نبحث عن وسائل للوصول إلى معلومات فئة الميزة ، يبدو هذا مثيرًا للاهتمام. حسنًا ، له طريقتان: OpenFeatureClass و OpenFeatureDataset ، الطريقة الأولى للوصول إلى فئة مميزة إذا كان الاسم المستعار لفئة الميزة معروفًا مقدمًا ، والطريقة الأخيرة ، من ناحية أخرى ، مخصصة لفئات الميزات الحلقية داخل فئة مميزة مجموعة البيانات إذا كانت أسماء فئات المعالم غير معروفة ، ولكن اسم مجموعة بيانات فئة المعلم معطى.

من خلال فحص حذف FeatureDataset ، تحدد واجهة IFeatureClassContainer طريقة الوصول إلى IFeatureClass من خلال الفهرس ، وهي بالضبط الوظائف التي نأمل في تكرارها عبر جميع فئات الميزات داخل ملف GDB. يوجد أدناه رمز لإثبات هذه العملية. هذه نسخة مباشرة من مشروعي الذي يتطلب تطوير شركة مملوكة للدولة.

حسنًا ، آمل أن يكون هذا المثال بسيطًا بما يكفي لإعطائك فكرة عن كيفية استخدام OMD. لأكون صادقًا ، لست متأكدًا مما إذا كنت قد قمت بعمل جيد هنا. لذا ، إذا لم أفعل ، فيرجى إبلاغي بذلك. :)

الدرس 6: ملحق كائن ArcGIS Server (SOE) وأداة المعالجة الجغرافية ##

لم تحصل على chacne لتحديث هذه السلسلة لفترة من الوقت. لقد قمت بنسخ / لصق بعض الملاحظات التي كتبتها لمشروعنا حتى هنا. من خلال تجربتي الشخصية ، فإن هذين النهجين لتطوير جانب الخادم مفيدان على حد سواء ، على الرغم من أن SOE تبدو أكثر شيوعًا وقدرة ، فإن أداة المعالجة الجغرافية توفر إمكانية للمطورين الذين يهاجرون من Arcpy. إلى جانب ذلك ، تتمتع أداة المعالجة الجغرافية بسير عمل طبيعي تم إنشاؤه بالفعل للتعامل مع مهام المعالجة الجيولوجية التي قد تستغرق وقتًا طويلاً لإكمالها. إذا سألت عن رأيي ، يجب أن أقول "لوقا ، استخدم القوة!".

### امتداد كائن الخادم (SOE) ###

####مقدمة تطوير ملحقات كائنات الخادم (SOE) هي الطريقة القياسية التي يقدمها ESRI لتخصيص سلوك ArcGIS Server. بالطبع ، SOE هي شركة COM أيضًا.

أفضل مرجع لهذه الميزة ، حسنًا ، إذا كان لديك SDK مثبتًا ، في ملف التعليمات:

ArcObjects SDK for ArcGIS 10.4 - & gt تعليمات ArcObjects لمطوري .NET - & gt التطوير باستخدام ArcGIS - & gt توسيع ArcGIS for Server - & gt تطوير ملحقات كائنات الخادم

لن ترشدك المذكرة هنا إلى تطوير شركة مملوكة للدولة. بدلاً من ذلك ، نقوم بتتبع الإجراء الخاص بالتصحيح الصحيح للأخطاء وبناء ونشر SOE على سطح المكتب وخادم ArcGIS.

حسنًا ، لا تشعر بخيبة أمل إذا أتيت إلى هنا وتوقعت أن تتعلم كيفية برمجة الشركات المملوكة للدولة. بعد المستند المدرج في SDK helper ، يجب أن تكون قادرًا على القيام بذلك. أو ، إذا كنت بحاجة إلى اختصار مع عينة كاملة ، فقد ترغب في تجربة ESRI github.

#### التصحيح بدون ArcGIS Server ، يجب إجراء تصحيح أخطاء SOE على مستوى اختبار الوحدة. إذا كنت لا تريد فصل منطق SOE عن ملف كود قالب SOE الافتراضي ، فجرّب إطار عمل نموذجي ، مثل moq. ومع ذلك ، لم يجعل مطور ESRI فصولهم "صديقة للنماذج الطبيعية" ، على سبيل المثال ، يتم تعريف فئة ServerLogger على أنها فئة مختومة ، مما يمنع معظم إطار عمل نموذج بالحجم الطبيعي من وراثة واستبدالها بـ mock.

إذا كانت لديك سعة تصحيح أخطاء عبر ArcGIS Server ، فإليك بعض النصائح:

  1. تأكد من فتح مشروع SOE باستخدام حساب المسؤول
  2. عند إرفاق عمليات ArcGIS Server ، تأكد من تحديد كل ArcSOC.exe بنوع (مُدار)

لم أتمكن من تصحيح الكود داخل Init و Shutdown و Construct. يعمل SOE داخل حاوية ArcSOC. نظرًا لاستدعاء هذه الوظائف الثلاث أثناء إنشاء وإغلاق شركة SOE ، فمن الصعب تحديد العملية التي يمكنني الارتباط بها.

#### يتبع نشر SOE إجراء من خطوتين بافتراض أن نوع SOE هو MapServer والخدمة هي REST.

  1. إذا تم بناء مشروع SOE في VS ، فسيتم إنشاء ملف "soe" كأرشيف. في ArcGIS Server Manager ، انتقل إلى Site - & gt Extensions - & gt Add Extension ، وقم بتحميل ملف "soe" هذا وسيهتم ArcGIS Server بكل شيء نيابةً عنك ، مثل تسجيل COM.
  2. قم بإعداد بيانات الخريطة في ArcMap وانشرها كخدمات خرائط مع خيار "التدريج" ، والذي يعني "عدم التحميل ، فقط جهز البيانات". سيؤدي هذا إلى إنشاء ملف sd في "C: Users hellocomrade AppData Local ESRI Desktop10.4 Staging". في ArcGIS Server Manager، Services - & gt Publish Service ، قم بتغذية المعالج بملف sd وضمن القدرات ، تأكد من التحقق من SOE الذي تقوم بتحميله في الخطوة 1. إذا سارت الأمور على ما يرام ، فسيتم بدء خدمة الخريطة مع SOE الخاص بك.
  3. انتقل إلى "http: // localhost: 6080 / arcgis / rest / services /" وحدد خدمة الخريطة المحددة في الخطوة 2 ، قم بالتمرير لأسفل إلى أسفل الصفحة ، يجب أن ترى "الإضافات المدعومة" تظهر.

####مقدمة تطوير وظيفة المعالجة الجغرافية المخصصة هي ميزة "جديدة" تم إصدار ESRI من خلال ArcPy؟ في الواقع ، بالعودة إلى 9.3 ، تم توفير هذه الميزة لـ ArcObject .Net. ومع ذلك ، كانت الوثائق "مخفية" في الكتاب وبدا ESRI خجولًا لتقديم هذه الميزة لمطور AO. لا يمكنك حتى العثور على قالب في تكامل Visual Studio لهذه الميزة من خلال AO .Net SDK. سيكون عليك أن تعمل كل شيء من الصفر

أفضل مرجع لهذه الميزة ، حسنًا ، إذا كان لديك SDK مثبتًا ، في ملف التعليمات:

ArcObjects SDK for ArcGIS 10.4 - & gt تعليمات ArcObjects لمطوري .NET - & gt التطوير باستخدام ArcGIS - & gt Learning ArcObjects - & gt توسيع ArcObjects - & gt أدوات وظيفة المعالجة الجغرافية المخصصة

أتمنى أن تفهم الآن لماذا قلت أن ESRI كانت خجولة في هذا الأمر. رؤية هيكل الشجرة؟

لن ترشدك المذكرة هنا إلى إنشاء مثل هذه الأداة. بدلاً من ذلك ، نقوم بتتبع الإجراء الخاص ببناء ونشر هذه الأداة بشكل صحيح في ArcMap وعلى خادم ArcGIS.

حسنًا ، لا تشعر بخيبة أمل إذا أتيت إلى هنا وتوقعت أن تتعلم كيفية برمجة مثل هذه الأداة. بعد المستند المدرج في SDK helper ، يجب أن تكون قادرًا على القيام بذلك. أو ، إذا كنت بحاجة إلى اختصار يحتوي على عينة كاملة ، وهو مفقود في مستند مساعد SDK ، فقد ترغب في تجربة ESRI github.

ملاحظة جانبية: عند تنفيذ IGPFunction2 ، يمكن لـ IsLicensed ببساطة إرجاع صحيح بدون شرط إذا كنت متأكدًا من أن هذه الأداة لن يتم توزيعها على طرف ثالث قد لا يعرف نوع الترخيص ، وخاصة الامتدادات المطلوبة. لماذا ا؟ إذا كنت تخطط لاستخدام هذه الأداة على سطح المكتب والمحرك والخادم ، فسيتعين عليك التحقق من كل منهم في ملف if. وإلا إذا. وإلا ، إذا نسيت ووجدت مرخصة خطأ ، فلن تعمل أداتك. لماذا مجرد إرجاع صحيح من isLicensed دون التحقق والسماح لبرنامج الاستضافة (أداتنا مجرد ملف dll) لإخبار المستخدم ما إذا كان يمكن تنفيذ الأداة عن طريق طرح استثناء أثناء وقت التشغيل؟ :) إنها ليست أنيقة رغم ذلك.

#### التسجيل بالنظر إلى قاعدة التعليمات البرمجية المصدر الجاهزة للترجمة باعتبارها COM مُدار في VS 2013 ، فإن أول شيء سأفعله هو النقر بزر الماوس الأيمن على اسم المشروع - خصائص & gt - & gt Build ، حدد "Register for COM interop". سيؤدي هذا إلى جعل النوع داخل التجميع مرئيًا لعميل COM من خلال الأداة المساعدة: RegAsm.exe. من خلال التحقق من هذا ، سيقوم مترجم C # بإنشاء ملف tlb واستخدام ملف tlb لإكمال التسجيل. هذه الخطوة في الواقع ليس يبدو أنه ضروري بعد الآن لسلسلة ArcGIS 10. قررت ESRI تسجيل كل من COM الأصلي وإدارة COM دون استخدام تسجيل النظام من خلال أداتها الخاصة "ESRIRegAsm.exeما هذا بحق الجحيم؟ حتى ESRI لا يثق في سجل نظام MS بعد الآن ، حزين.

"يجب تقديم معلومات إضافية عن المنتج عند التسجيل باستخدام أداة Esri المساعدة تسمى ESRIRegAsm.exe. يستبدل ESRIRegAsm.exe الأداة المساعدة Microsoft RegAsm.exe القياسية."

إذا كان لديك مشروع مكتبة فئة ArcGIS تم إنشاؤه من خلال قالب ArcGIS ، فسيتم إجراء التسجيل تلقائيًا كحدث ما بعد البناء. لهذا السبب يمكن أن تظهر الوظيفة الإضافية ArcMap تلقائيًا في ArcMap. ومع ذلك ، هذا ليس صحيحًا بالنسبة لحالتنا ، نظرًا لأننا نقوم بتطوير وظيفة GP التي لا تدعمها ESRI جيدًا من حيث تكامل VS.

ولكن كل شيء على مايرام. ESRI ليس هذا يعني. ببساطة تصفح مجلد dll المترجم الخاص بك ، انقر بزر الماوس الأيمن فوقه ، في قائمة السياق ، راجع "تسجيل"؟ هذا سيفعل ذلك! هل العالم مثالي؟ لا! عندما يظهر مربع حوار التسجيل هذا ، يمكنك مشاهدة المنتج مثل "سطح المكتب" أو "المحرك" أو كليهما معروضين. ثم سيكون عليك اختيار واحدة للتسجيل.

لكن الغرض الكامل من أداة GP هو أنها يمكن أن تعمل كخدمة GP على خادم ArcGIS. أين يتم تسجيل ArcGIS Server الخاص بي؟ تبين أن هناك نوعان من ESRIRegAsm.exe! أحدهما لخط ESRI 32 بت ، والآخر لخط خادم 64 بت.

32 بت: C: Program Files (x86) Common Files ArcGIS bin

64 بت: C: Program Files Common Files ArcGIS bin

إذا كنت تريد تسجيل أداتك للخادم ، فاستخدم الثنائي الثاني في سطر الأوامر. (تأكد من فتح cmd باستخدام امتياز المسؤول لن يطلب سطر أوامر coz تأكيد إذن المسؤول كما قد تفعل البرامج الأخرى ، لذلك ستحصل على خطأ "لا يمكن الكتابة إلى القرص"). وهذا هو ما فعلته:

"C: Program Files Common Files ArcGIS bin esriregasm.exe" c: temp GPNetTrace.dll

لقد تجاهلت عن قصد خيار / p: ، لذا سيطلب مني مربع الحوار المنبثق اختيار المنتج الذي أرغب في التسجيل به. شيء واحد قد ترغب في معرفته هو: بمجرد الانتهاء من التسجيل وتشغيل المنتج ، على سبيل المثال ArcGIS Server ، سيتم قفل ملف dll هذا في المكان المسجل ، في حالتنا تحت C: Temp ، سيتم قفله من خلال العملية. لن تتمكن من تحديثه. القيام بذلك ليس سجل dll ضمن مجلد bin أو obj لمشروع VS ، لن يتمكن VS linker من إنشاء dll لك بعد الآن.

أولاً ، تحتاج إلى إضافة هذه الأداة إلى ArcMap كصندوق أدوات. في نافذة الفهرس. إنشاء مربع أدوات جديد ضمن "My Toolbox" ثم انقر بزر الماوس الأيمن فوق مربع الأدوات الذي تم إنشاؤه حديثًا ، Add- & gtTool ، سيؤدي ذلك إلى ظهور قائمة منبثقة بجميع مربعات الأدوات المسجلة ، بما في ذلك المربع الذي سجلناه للتو. كيف تجد أداتنا؟ حسنًا ، هذا يعتمد على الأداة نفسها.

الوظيفة الثانية "GetFunctionNames" هي طريقة محددة في الواجهة "IGPFunctionFactory" ، وهذا مطلوب حتى يتمكن برنامج ESRI من استخراج اسم الأداة من تنفيذ هذه الواجهة. سيكون الاسم الذي يظهر في قائمة مربع الأدوات كجذر هو "name.Category" ، وهو "NetworkNavigation" ، وسيكون اسم الأداة الإضافي name.DisplayName ، وهو "Network Trace" ، داخليًا ، يتم تعقب هذه الأداة بالاسم . الاسم ، وهو "TraceNetwork". الآن ، يجب أن تكون قادرًا على العثور على الأداة وإضافتها إلى ArcMap.

حسنًا ، تمت المداعبة. دعونا تصحيح! منذ أن تم تجميع أداتنا كملف dll ، يتعين علينا إرفاق مصحح الأخطاء بأي برنامج ثنائي يقوم بالفعل بتنفيذ التعليمات البرمجية في مكتبتنا. ضمن VS ، Debug- & gtAttach to Process. للقيام بذلك ، تريد التأكد من فتح VS باستخدام حساب مسؤول.

بافتراض أنك تمكنت من الحصول على معالجة خلفية 64 بت مع التعليمات البرمجية الخاصة بك ، فهذا يعني أن لديك

في التعليمات البرمجية الخاصة بك. إذا فشلت في التنفيذ مباشرة ، فإن الإشاعة هي أن dll الخاص بك لم يتم تسجيله مع 64 بت ESRIRegAsm.exe بشكل صحيح. لا يمكنني تشغيل هذا الجزء على سطح المكتب الخاص بي ، لكن قد تكون محظوظًا. إذا كان الأمر كذلك ، فستحتاج إلى إرفاق مصحح الأخطاء بالعملية المسماة "RuntimeLocalSerer.exe". هناك عمليتان في الواقع بنفس الاسم. أحدهما يعمل من أجل CLR المُدار ، والآخر مخصص لـ COM الأصلي. أعتقد أنه يجب عليك إرفاقها بـ Managed one (تحقق من عمود النوع في جدول "العمليات المتاحة". وقد قيل ذلك ، يمكنك إرفاقهما بالضغط على Ctrl على لوحة المفاتيح أثناء النقر على اسم العملية.

لنفترض أن معالجة الخلفية 64 بت لا تعمل بشكل جيد معك. بعد ذلك ، سيتعين عليك تعطيله في ArcMap. المعالجة الجغرافية - & gt خيارات المعالجة الجغرافية - & gt معالجة الخلفية - & gt تمكين ، قم بإلغاء تحديد مربع "تمكين" لتعطيل المعالجة في الخلفية. الآن ، يمكنك ببساطة إرفاق مصحح الأخطاء بعملية ArcMap.


مساحات عمل متعددة الجذور

مساحات العمل متعددة الجذور هي قدرة متقدمة لـ VS Code تسمح لك بتكوين عدة مجلدات مميزة لتكون جزءًا من مساحة العمل. بدلاً من فتح مجلد كمساحة عمل ، ستفتح ملف JSON & ltname & gt.code-workspace الذي يسرد مجلدات مساحة العمل. على سبيل المثال:

تم فتح مساحة عمل متعددة الجذور في VS Code

ملحوظة: يمكن أن يكون الاختلاف المرئي بين فتح مجلد مقابل فتح ملف .code-workspace دقيقًا. لإعطائك تلميحًا بأنه تم فتح ملف .code-workspace ، تعرض بعض مناطق واجهة المستخدم (على سبيل المثال ، جذر مستكشف الملفات) عنصرًا إضافيًا (مساحة العمل) لاحقة بجانب الاسم.

مساحات عمل متعددة الجذور بدون عنوان

من السهل إضافة أو إزالة المجلدات في مساحة العمل الخاصة بك. يمكنك البدء بفتح مجلد في VS Code ثم إضافة المزيد من المجلدات لاحقًا على النحو الذي تراه مناسبًا. ما لم تكن قد فتحت بالفعل ملفًا .code-workspace ، في المرة الأولى التي تضيف فيها مجلدًا ثانيًا إلى مساحة عمل ، سيقوم VS Code تلقائيًا بإنشاء & quot ؛ مساحة عمل & quot. في الخلفية ، يحتفظ VS Code تلقائيًا بملف مساحة عمل بدون عنوان يحتوي على جميع المجلدات وإعدادات مساحة العمل من جلستك الحالية. ستبقى مساحة العمل & quotuntitled & quot حتى تقرر حفظها على القرص.

تم فتح مساحة عمل متعددة الجذور بدون عنوان في VS Code

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


4.12 ريسيفر ويندوز

ملحوظة: توصي Citrix بتنزيل أحدث إصدار من تطبيق Citrix Workspace. يحتوي الإصدار 1904 أو ما بعده على إصلاحات أمنية مهمة. لمزيد من المعلومات ، راجع مقالة مركز المعرفة CTX251986

متوافق مع
Windows 10 و 8.1 و 7 و 2008R2 و Thin PC بالإضافة إلى Windows Server 2016 و 2012 و 2012R2.

المجاميع الاختبارية ADB1AFF0625F6EE0C9745F6F8C523398CF3F4732EB3D2CA5966E97AE6D57536F

إصلاح لتمكين التحديث التلقائي لجهاز الاستقبال

مطلوب اتخاذ إجراء لمتابعة التحديثات التلقائية على جهاز الاستقبال.
تم إصدار شهادة أمان جديدة مؤخرًا لزيادة تعزيز أمان Citrix Receiver. ومع ذلك ، تعمل هذه الشهادة على تعطيل وظيفة التحديث التلقائي لجهاز الاستقبال. من المهم أن أنت قم بتنزيل وتثبيت أداة التحديث التلقائي لجهاز الاستقبال التي تم إصدارها مؤخرًا لاستعادة وظيفة تحديث جهاز الاستقبال.

الرجاء مراجعة وثائق المنتج للحصول على قائمة كاملة من الميزات.

وصول عالي الأداء إلى تطبيقات Windows الافتراضية وأجهزة سطح المكتب ، والوصول من أي مكان من سطح المكتب أو قائمة البدء أو واجهة مستخدم جهاز الاستقبال أو الوصول إلى الويب باستخدام Chrome أو Internet Explorer أو Firefox.

يمكن استخدام Citrix Receiver على أجهزة الكمبيوتر والأجهزة اللوحية والعملاء الرقيقين المنضمة إلى المجال وغير المجال. يوفر استخدامًا عالي الأداء لـ Skype for Business الافتراضية ، ومجال الأعمال ، والتطبيقات الهندسية HDX 3D Pro ، والوسائط المتعددة ، والوصول إلى التطبيقات المحلية.

اللغات المتوفرة
الإنجليزية والفرنسية والألمانية واليابانية والكورية والروسية والصينية المبسطة والإسبانية والصينية التقليدية.

البرامج النصية لنشر Citrix Receiver لنظام التشغيل Windows

يحتوي ملف ZIP هذا على نماذج البرامج النصية لنشر Citrix Receiver وتكوينه. إنه تنزيل اختياري ، يتم توفيره على أساس "كما هو" بواسطة Citrix ليكون بمثابة مثال. قبل الاستخدام ، يجب على مسؤولي تكنولوجيا المعلومات تخصيص البرامج النصية لتناسب بيئتهم. يمكن استخدام البرامج النصية لإلغاء التثبيت والتثبيت كما هو مذكور في دليل ترقية Citrix Receiver لنظام التشغيل Windows (CTX135933).

قوالب Citrix ADMX / ADML لمحرر نهج المجموعة

يحتوي ملف ZIP هذا على ملفات ADMX و ADML لنشر وتكوين Citrix Receiver باستخدام محرر كائن نهج المجموعة. إنه تنزيل اختياري ، ليستخدمه مسؤولو تكنولوجيا المعلومات ، وليس مخصصًا للاستخدام من قبل المستخدمين النهائيين. يمكن استخدام القوالب الإدارية (ملفات ADMX و ADML) كما هو مذكور في دليل ترقية Citrix Receiver لنظام التشغيل Windows (CTX135933).


8 طرق جديدة لتمكين موظفي خدمة العملاء وتحويل طريقة عملهم مع Microsoft 365

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

مع Microsoft 365 ، سحابة الإنتاجية العالمية ، نحن في وضع فريد لمساعدة الشركات من جميع الأحجام وعبر جميع الصناعات على تزويد موظفيها بالأدوات والخبرات التي يحتاجون إليها لأداء أفضل أعمالهم ، دون التضحية بأمان مؤسستهم أو عملائهم ' البيانات. يتطلب تزويد عمال الخط الأول بالأدوات التي يحتاجونها من الشركات معالجة تجربة المستخدم الفريدة والأمان والامتثال وإدارة تكنولوجيا المعلومات.

Microsoft 365 للعاملين في خدمة العملاء المباشر

يجمع Microsoft 365 بين تطبيقات الإنتاجية البديهية الأفضل في فئتها والخدمات السحابية الذكية لتمكين فريق العمل الأول لديك.

من الملهم أن نرى كيف يقود قادة الصناعة ، مثل IKEA و Mattress Firm ، مستويات أعلى من مشاركة الموظفين وتعزيز تجربة العملاء من خلال وضع أدوات مثل Microsoft Teams في أيدي فريق Firstline Workforce. تعمل ايكيا على توصيل الجميع في المؤسسة بميزات مألوفة مثل الدردشة ومكالمات الفيديو ورقمنة عمليات الخط الأول مثل إدارة التحول لتوفير الوقت والتكلفة.

تم إنشاء هذا الفيديو بواسطة Microsoft ، بموافقة Ingka Group.

تقوم Mattress Firm بتمكين عمال الخط الأول من الوصول في الوقت الفعلي إلى المعلومات والموارد والخبرات التي يحتاجون إليها لإسعاد العملاء وتقديم تجربة تسوق أفضل.

قبل المعرض التجاري للاتحاد الوطني للبيع بالتجزئة (NRF) الأسبوع المقبل ، يسعدنا تقديم إمكانات جديدة للعاملين في خدمة العملاء الذين يأتون إلى Microsoft 365. وإليك نظرة على ما سيأتي قريبًا:

أدوات جديدة تسهل على موظفي خدمة العملاء التواصل وإدارة المهام

  1. اسلكية تخاطب في الفرق—تتيح تجربة الضغط والتحدث الجديدة هذه اتصالًا صوتيًا واضحًا وفوريًا وآمنًا عبر السحابة ، مما يحول الهواتف الذكية والأجهزة اللوحية المملوكة للموظفين أو الشركة إلى جهاز اتصال لاسلكي. تقلل الوظيفة المدمجة أصلاً في Teams من عدد الأجهزة التي يجب أن يحملها الموظفون وتخفض تكاليف تكنولوجيا المعلومات. على عكس الأجهزة التناظرية ذات الشبكات غير الآمنة ، لم يعد العملاء مضطرين للقلق بشأن الحديث المتبادل أو التنصت من الغرباء. ونظرًا لأن Walkie Talkie يعمل عبر شبكة Wi-Fi أو البيانات الخلوية ، فيمكن استخدامه عبر المواقع الجغرافية. ستتوفر هذه الإمكانية في تطبيق Teams للأجهزة المحمولة وستتكامل مع جهاز Samsung Galaxy XCover Pro الذي تم الكشف عنه حديثًا ، وهو جهاز مصمم للعاملين في الخطوط الأمامية لأي صناعة. سيتوفر Walkie Talkie في المعاينة الخاصة في Teams في النصف الأول من هذا العام.

تجربة الضغط والتحدث البديهية لربط أعضاء الفريق عبر الإدارات والمواقع.

  1. استهداف المهام والنشر وإعداد التقاريرباستخدام المهام في Teams ، يمكن للعملاء الآن تنفيذ عمليات المتجر بشكل متسق على نطاق واسع عبر جميع مواقع المؤسسة. يمكن لقيادة الشركات والقيادة الإقليمية إرسال قوائم المهام المستهدفة إلى المواقع ذات الصلة ، مثل متاجر البيع بالتجزئة المحددة ، وتتبع تقدمهم من خلال التقارير التلقائية في الوقت الفعلي. يمتلك المديرون أدوات لتوجيه الأنشطة بسهولة داخل متاجرهم ، ويمتلك عمال الخط الأول قائمة أولويات بسيطة متاحة عبر أجهزتهم الشخصية أو أجهزتهم الصادرة عن الشركة توضح لهم بالضبط ما يجب فعله بعد ذلك. ستتوفر مهام استهداف ونشر وإعداد التقارير على Teams في النصف الأول من هذا العام.

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

  1. تكامل إدارة القوى العاملة—يمكن للعملاء الذين يستخدمون أنظمة إدارة القوى العاملة التابعة لجهات خارجية رائدة - مثل Kronos و JDA - للجدولة والوقت والحضور البدء في التكامل مباشرة مع Shifts عبر Shifts Graph APIs و SDK. تتضمن السيناريوهات المدعومة إدارة الورديات والجداول الزمنية ومجموعات الجدولة وطلبات المبادلة وطلبات الإجازات وطلبات الورديات المفتوحة. موصل JDA لـ Shifts مفتوح المصدر ومتوفر على GitHub. سيكون موصل Kronos لـ Shifts متاحًا أيضًا على GitHub في وقت لاحق من هذا الربع.

ميزات إدارة الوصول والهوية المحسّنة التي تسهل على محترفي تكنولوجيا المعلومات الحفاظ على إنتاجية العاملين في خدمة العملاء وأمانهم

  1. تسجيل الدخول عبر الرسائل القصيرة—من خلال تسجيل الدخول عبر الرسائل القصيرة ، يستطيع عمال الخط الأول تسجيل الدخول إلى حساب Azure Active Directory (Azure AD) باستخدام رموز SMS لمرة واحدة — مما يقلل الحاجة إلى تذكر أسماء المستخدمين وكلمات المرور لجميع تطبيقات Microsoft 365 والتطبيقات المخصصة. بمجرد التسجيل ، يُطلب من المستخدم إدخال رقم هاتفه ، مما يؤدي إلى إنشاء رسالة نصية قصيرة SMS بكلمة مرور لمرة واحدة. تسجيل الدخول عبر الرسائل القصيرة هو تجربة تسجيل دخول واحدة (SSO) ، مما يمكّن عمال خدمة العملاء من الوصول بسلاسة إلى جميع التطبيقات المصرح لهم باستخدامها. يمكن تمكين طريقة تسجيل الدخول الجديدة هذه لمجموعات محددة وتكوينها على مستوى المستخدم في بوابة "طاقم العمل" - مما يساعد على تقليل العبء على تكنولوجيا المعلومات.

رموز SMS لمرة واحدة على الأجهزة المحمولة لتبسيط تجربة تسجيل الدخول للعاملين في خدمة العملاء.

  1. مشترك الخروج من الجهاز—يستخدم العديد من العاملين في خدمة العملاء جهازًا لوحيًا واحدًا أو جهازًا محمولًا مشتركًا بين ورديات العمل. يمكن أن يشكل هذا تحديات أمنية فريدة للمؤسسة عندما يستخدم الموظفون المختلفون الذين لديهم إمكانية الوصول إلى أنواع مختلفة من البيانات نفس الجهاز على مدار اليوم. من خلال تسجيل الخروج المشترك للجهاز ، سيتمكن عمال الخط الأول من تسجيل الخروج من جميع تطبيقات Microsoft 365 والتطبيقات المخصصة وجلسات المستعرض بنقرة واحدة في نهاية الوردية - مما يمنع الوصول إلى بياناتهم وأي وصول إلى بيانات العملاء للمستخدم التالي لهذا الجهاز.

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

  1. عناصر تحكم في الوصول خارج الوردية لتطبيق Teams—يمكن لمسؤولي تكنولوجيا المعلومات الآن تكوين Teams لتقييد وصول الموظفين إلى التطبيق على أجهزتهم الشخصية خارج ساعات العمل. تساعد هذه الميزة على ضمان عدم عمل الموظفين كرهاً أثناء عدم وجودهم في مناوبة وتساعد أصحاب العمل على الامتثال لأنظمة العمل. سيبدأ طرح هذه الميزة للعملاء في هذا الربع من العام.

اعرض رسالة و / أو قم بتعطيل الوصول إلى تطبيق Teams عندما يكون موظفو خدمة العملاء في حالة توقف عن العمل.

  1. تفويض إدارة المستخدم—يمكن لمديري الخط الأول الموافقة على إعادة تعيين كلمة المرور وتمكين الموظفين من استخدام أرقام هواتفهم لتسجيل الدخول عبر الرسائل القصيرة ، وكل ذلك عبر بوابة إلكترونية واحدة قابلة للتخصيص تم تمكينها بواسطة تكنولوجيا المعلومات لمديري خدمات Firstline. يمكن لإدارة المستخدم المفوضة أن تمنح مديري الخط الأول حق الوصول إلى بوابة My Staff ، حتى يتمكنوا من إلغاء حظر مشكلات الموظفين - تقليل عبء إدارة الهوية على تكنولوجيا المعلومات ، والحفاظ على اتصال الموظفين بالتطبيقات التي يحتاجون إليها أثناء العمل.

من خلال بوابة "طاقم العمل" ، تمكّن إدارة المستخدم المفوضة "مدير الخط الأول" من إدارة بيانات اعتماد فريقهم والمساعدة في إعادة تعيين كلمة المرور.

  1. التوفير الوارد من SAP SuccessFactors إلى Azure AD—تتكامل الآن خدمة تزويد المستخدمين في Azure AD مع SAP SuccessFactors ، مما يجعل من السهل أكثر من أي وقت مضى إعداد وإدارة هويات عمال الخط الأول على نطاق واسع ، عبر أي تطبيق باستخدام Azure AD. تعتمد هذه الميزة - في المعاينة العامة - على القدرة على تزويد المستخدمين بـ Azure AD من Workday ، وهو نظام آخر شائع لإدارة رأس المال البشري (HCM) ، متاح بشكل عام بالفعل. يساعد التكامل مع أنظمة التسجيل هذه تكنولوجيا المعلومات على توسيع نطاق العاملين في خدمة العملاء & # 8217 على متن الطائرة والإنتاجية من اليوم الأول.

مع دمج خدمة تزويد المستخدمين في Azure AD الآن مع SAP SuccessFactors ، بالإضافة إلى Workday ، أصبح من الأسهل أكثر من أي وقت مضى إدخال هويات مستخدمي Firstline Workers على نطاق واسع. يظهر هنا ، يمكنك بدء دورة التوفير واستخدام شريط التقدم وسجلات التوفير لتتبع عملية التوفير.

من المتوقع أن يتم طرح كل هذه القدرات في النصف الأول من هذا العام باستثناء ما تم ذكره.

تمكين عمال الخط الأول لاكتساب ميزة تنافسية

يسلط بحث جديد بالشراكة مع Harvard Business Review Analytic Services الضوء على الإمكانات غير المستغلة لعمال خدمة العملاء في البيع بالتجزئة.

أتطلع قدما

هذه مجرد الخطوة التالية في رحلتنا لتمكين كل شخص وكل منظمة على هذا الكوكب من تحقيق المزيد. نهدف إلى بناء أدوات وخبرات لمكان العمل الحديث وللعاملين على جميع مستويات المنظمة. سنستمر في تطوير قدرات وخبرات عامل الخط الأول المصممة لهذا الغرض وتقديمها إلى السوق بالشراكة مع عملائنا وقادة الصناعة. وسنواصل الابتكار وبناء الميزات التي تبسط العمل وتجمع الأشخاص معًا وتساعد المؤسسات الكبيرة والصغيرة على تحقيق المزيد. تفضل بزيارتنا الأسبوع المقبل في NRF 2020 في الكشك رقم 4501.


ArcObjects .NET - كيفية إغلاق / إصدار FeatureClass ، مساحة العمل ، المصنع - أنظمة المعلومات الجغرافية

  • الألمانية
  • الإنجليزية
  • الاسبانية
  • الفرنسية
  • ايطالي
  • 日本語
  • 한국어
  • البرتغالية
  • Русский
  • 简体 中文
  • التشيكية
  • تلميع

الابتكار وإدارة البرامج التعاونية والمتزامنة للبرامج الجديدة

تكامل التقنيات الميكانيكية والبرمجيات والأنظمة الإلكترونية لأنظمة المركبات

المنتجات الاستهلاكية وتجارة التجزئة

ابتكار المنتجات من خلال الإدارة الفعالة للتركيبات المتكاملة وعمليات التعبئة والتغليف والتصنيع

يعمل تطوير المنتجات الجديدة على تعزيز البيانات لتحسين الجودة والربحية وتقليل الوقت المستغرق في السوق والتكاليف

التعاون في سلسلة التوريد في تصميم وإنشاء وصيانة وإيقاف الأصول ذات الأهمية الحيوية للمهمة

مكائن ​​صناعية ومعدات ثقيلة

تكامل تخطيط عملية التصنيع مع التصميم والهندسة لتعقيد الماكينة اليوم

الرؤية والامتثال والمساءلة لقطاعات التأمين والمالية

ابتكار بناء السفن لتقليل تكلفة تطوير الأساطيل المستقبلية بشكل مستدام

تقدم شركة Siemens PLM Software ، الشركة الرائدة في برمجيات الوسائط والاتصالات السلكية واللاسلكية ، حلولًا رقمية لتقنية متطورة تدعم المنتجات المعقدة في سوق سريع التغير.

الأجهزة الطبية والأدوية

"ابتكار المنتجات المخصصة" من خلال الرقمنة لتلبية متطلبات السوق وخفض التكاليف

وقت أسرع للتسويق ، وأخطاء أقل لتطوير البرمجيات

أزل الحواجز وتنمو مع الحفاظ على صافي أرباحك. نحن نعمل على إضفاء الطابع الديمقراطي على أقوى التوائم الرقمية القوية لأعمالك الصغيرة والمتوسطة.


أفكار 484 حول إدارة البيئة ldquoWorkspace (WEM) 2106 & rdquo

لدي مشكلة مع تطهير ملفات تعريف wem. يبدو أن الملفات الشخصية لها مسارات طويلة جدًا وأن أداة التطهير تفشل مع & # 8220 Error أثناء فحص ملفات التعريف! & # 8221. إذا قمت بمسح ملف تعريف واحد وأزلت الملفات ذات المسارات الأطول ، فكل شيء يعمل بشكل جيد. هل هناك حل لهذا؟ نقوم بتشغيل 1912 ltsr cu2.

ساكاري ، أنا & # 8217ll أتناغم هنا لأنني & # 8217 واجهت هذا كثيرًا. يشتهر Google Chrome بهذه الأشجار ذات المجلدات الفرعية العميقة جدًا لبياناتها (مع سلاسل طويلة من الأحرف العشوائية لاسم مجلد واحد). أعتقد أن مصدر المشكلة هو تعيين محرك الأقراص وسياق التطبيق. إذا كان ملف تعريف المستخدم & # 8217s موجودًا على محرك أقراص شبكة مثل y: ، يتم تعيينه إلى servername something UPM_Profiles عندما يحاول تطبيق مختلف (مثل WEM) الوصول إلى هذه المجلدات مباشرةً عن طريق مسار UNC ، يتم تمديد الطول بمقدار 40 أو أكثر الشخصيات. لست متأكدًا من كيفية حلها ، لكنني اعتقدت أنه سيكون من المفيد معرفة كيفية إنشاء هذه المسارات (التي تعد طويلة جدًا).

قمنا بالترقية إلى WEM 2012 والمجلد التالي
& # 8220C: Program Files (x86) Norskale Norskale Infrastructure Services DBSync & # 8221 لم يعد & # 8217t موجودًا. هل لديك أي فكرة عما إذا كان هذا سلوكًا طبيعيًا؟

أظن أنهم أزالوا هذا المجلد عندما أزالوا تقنية مزامنة ذاكرة التخزين المؤقت للوكيل الأقدم.

مرحبًا كارل ، هل رأيت مشكلات حيث تقوم بتعطيل شاشة البداية WEM ولكنها لا تعمل ، ولا تزال تعرض شاشة البداية عند تسجيل الدخول؟


المعلمات المطلوبة

مرافق

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

  • url - حدد طلب استعلام REST لأي ميزة ArcGIS Server أو خريطة أو خدمة معالجة جغرافية تقوم بإرجاع مجموعة معالم JSON. هذه الخاصية اختيارية. ومع ذلك ، يجب تحديد الميزات أو عنوان url.
  • الميزات - تحديد مجموعة من الميزات. هذه الخاصية اختيارية. ومع ذلك ، يجب تحديد الميزات أو خاصية عنوان URL.

    الهندسة — حدد هندسة نقطة الإدخال التي تحتوي على خصائص x و y جنبًا إلى جنب مع خاصية spatialReference. إذا تم تحديد خاصية spatialReference لكامل JSON ، فلا داعي لتعريف هذه الخاصية لكل شكل هندسي. يؤدي القيام بذلك إلى تقليل حجم إدخال JSON إذا كان الإدخال يحتوي على الكثير من الميزات ، ويحسن الأداء. هذه الخاصية غير مطلوبة إذا كانت الإحداثيات في نفس الإسناد المكاني مثل مجموعة بيانات الشبكة. إذا كانت الإحداثيات في إسناد مكاني مختلف ، فيجب عليك تحديد المعرف المعروف (WKID) للمرجع المكاني. شاهد نظام الإحداثيات الجغرافية ونظام الإحداثيات المسقط للبحث عن قيم WKID.

كأفضل ممارسة ، يوصى بتحديد المرجع المكاني بشكل صريح ، وتحديده لـ JSON بالكامل بدلاً من كل شكل هندسي فردي.

سمات للمرافق

عند تحديد المرافق ، يمكنك تعيين خصائص لكل منها - مثل الاسم أو النوع - باستخدام السمات التالية:

اسم المنشأة. يتم تضمين الاسم في اسم بنود تخصيص المخرجات إذا كانت المنشأة جزءًا من الحل.

  • 0 (مرشح) - منشأة قد تكون جزءًا من الحل.
  • 1 (مطلوب) - منشأة يجب أن تكون جزءًا من الحل.
  • 2 (منافس) - منشأة منافسة من المحتمل أن تزيل الطلب من منشآتك. تعتبر مرافق المنافسين محددة لزيادة حصتها في السوق وأنواع مشكلات حصة السوق المستهدفة التي يتم تجاهلها في أنواع المشكلات الأخرى.

الترجيح النسبي للمنشأة ، والذي يستخدم لتقييم جاذبية أو استصواب أو تحيز منشأة مقارنة بمنشأة أخرى.

على سبيل المثال ، قد تجذب القيمة 2.0 تفضيل العملاء الذين يفضلون ، بنسبة 2 إلى 1 ، التسوق في منشأة واحدة على منشأة أخرى. تشمل العوامل التي من المحتمل أن تؤثر على وزن المرفق المساحة بالقدم المربع والحي وعمر المبنى. يتم تكريم قيم الوزن بخلاف واحد فقط من خلال زيادة الحصة السوقية وأنواع مشكلات حصة السوق المستهدفة التي يتم تجاهلها في أنواع المشكلات الأخرى.

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

تتيح لك هذه السمة تحديد قيمة حد مختلفة لكل نقطة طلب. على سبيل المثال ، قد تجد أن الناس في المناطق الريفية على استعداد للسفر لمسافة تصل إلى 10 أميال للوصول إلى منشأة ، في حين أن سكان المدن يرغبون فقط في السفر لمسافة تصل إلى ميلين. يمكنك نمذجة هذا السلوك عن طريق تعيين قيمة القطع لجميع نقاط الطلب الموجودة في المناطق الريفية على 10 وتعيين قيمة القطع لنقاط الطلب في المناطق الحضرية على 2.

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

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

تتجاوز أي قيمة يتم تعيينها لحقل السعة معلمة القدرة الافتراضية (Default_Capacity في Python) للمنشأة المحددة.

حدد الاتجاه الذي يمكن أن تصل إليه السيارة وتغادرها.

يجب تحديد أحد الأعداد الصحيحة المدرجة في عمود القيمة المشفرة في الجدول التالي كقيمة لهذه السمة. القيم الموجودة في عمود الإعداد هي الأسماء الوصفية لقيم جدول البيانات CurbApproach التي ربما تكون قد شاهدتها عند استخدام برنامج ملحق ArcGIS Network Analyst.

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

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

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

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

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

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

عندما تقترب السيارة من المنشأة ، يمكن أن تكون المنشأة على جانبي السيارة ، ومع ذلك ، عندما تغادر ، يجب أن تستمر السيارة في نفس الاتجاه الذي وصلت إليه. يُحظر الدوران للخلف.

يتم عرض مجموعات الوصول والمغادرة المسموح بها لنهج No-Turn curb.

تم تصميم سمة CurbApproach للعمل مع كلا النوعين من معايير القيادة الوطنية: حركة المرور اليمنى (الولايات المتحدة) وحركة المرور اليسرى (المملكة المتحدة). أولاً ، ضع في اعتبارك حادثة على الجانب الأيسر من السيارة. يكون دائمًا على الجانب الأيسر بغض النظر عما إذا كانت السيارة تسير على النصف الأيسر أو الأيمن من الطريق. ما قد يتغير مع معايير القيادة الوطنية هو قرارك بالاقتراب من حادث من أحد الاتجاهين ، بحيث ينتهي به الأمر على الجانب الأيمن أو الأيسر من السيارة. على سبيل المثال ، إذا كنت تريد الوصول إلى حادث وليس لديك ممر مرور بين السيارة والحادث ، فاختر 1 (الجانب الأيمن من السيارة) في الولايات المتحدة و 2 (الجانب الأيسر من السيارة) في المملكة المتحدة.

مع حركة المرور على الجانب الأيمن ، يكون نهج الرصيف الذي يترك السيارة الأقرب إلى المنشأة هو الجانب الأيمن من السيارة. مع حركة المرور اليسرى ، يكون نهج الرصيف الذي يترك السيارة الأقرب إلى المنشأة هو الجانب الأيسر من السيارة.

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

عادةً ما يتم إرسال البيانات المحمل تلقائيًا من جهاز محمول مزود بجهاز استقبال GPS. حاول تضمين بيانات الاتجاه إذا كنت تقوم بتحميل موقع إدخال متحرك ، مثل أحد المشاة أو السيارة.

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

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

الوحدات بالدرجات ، والقيمة الافتراضية هي 30. يجب أن تكون القيم أكبر من 0 وأقل من 180. وتعني القيمة 30 أنه عندما يحاول Network Analyst إضافة موقع شبكة على حافة ، فإن نطاق قيم الاتجاه المقبولة يكون تم إنشاؤه 15 درجة على جانبي الحافة (يسار ويمين) وفي كلا الاتجاهين المرقمين للحافة.

يتم استخدام هذا الحقل فقط في عملية الحل إذا كان حقلا Bearing و BearingTol يحتويان أيضًا على قيم ، ومع ذلك ، فإن إدخال قيمة حقل NavLatency اختياري ، حتى عندما تكون القيم موجودة في Bearing و BearingTol. يشير NavLatency إلى مقدار التكلفة التي يُتوقع أن تنقضي من لحظة إرسال معلومات GPS من مركبة متحركة إلى خادم ولحظة تلقي جهاز الملاحة الخاص بالمركبة المسار المعالج.

وحدات NavLatency هي نفسها وحدات سمة المعاوقة.

أمثلة لغوية للمنشآت

بناء الجملة لتحديد المرافق باستخدام بنية JSON للميزات

بناء الجملة لتحديد التسهيلات باستخدام عنوان URL الذي يعرض استجابة JSON

أمثلة للمرافق

مثال 1: تحديد المرافق في نفس الإسناد المكاني مثل مجموعة بيانات الشبكة الخاصة بك باستخدام بنية JSON. يوضح المثال أيضًا كيفية تحديد بعض سمات الحوادث.

مثال 2: تحديد المرافق في الإسناد المكاني Web Mercator باستخدام بنية JSON

مثال 3: تحديد المرافق باستخدام عنوان URL

يقوم عنوان URL بإجراء استعلام عن بعض الميزات من خدمة الخريطة. يمكن أيضًا تحديد ميزات الاستعلام عن عنوان URL من خدمة المعالم.

نقاط_الطلب

استخدم هذه المعلمة لتحديد نقطة طلب واحدة أو أكثر. تحدد الخدمة أفضل المرافق بناءً على كيفية خدمة المرافق لنقاط الطلب المحددة.

  • url - حدد طلب استعلام REST لأي ميزة ArcGIS Server أو خريطة أو خدمة معالجة جغرافية تقوم بإرجاع مجموعة معالم JSON. هذه الخاصية اختيارية. ومع ذلك ، يجب تحديد الميزات أو عنوان url.
  • الميزات - تحديد مجموعة من الميزات. هذه الخاصية اختيارية. ومع ذلك ، يجب تحديد الميزات أو خاصية عنوان url.

    الهندسة — حدد هندسة نقطة الإدخال التي تحتوي على خصائص x و y جنبًا إلى جنب مع خاصية spatialReference. إذا تم تحديد خاصية spatialReference لكامل JSON ، فلا داعي لتعريف هذه الخاصية لكل شكل هندسي. يؤدي القيام بذلك إلى تقليل حجم إدخال JSON إذا كان الإدخال يحتوي على الكثير من الميزات ، ويحسن الأداء. هذه الخاصية غير مطلوبة إذا كانت الإحداثيات في نفس الإسناد المكاني مثل مجموعة بيانات الشبكة. إذا كانت الإحداثيات في إسناد مكاني مختلف ، فيجب عليك تحديد المعرف المعروف (WKID) للمرجع المكاني. شاهد نظام الإحداثيات الجغرافية ونظام الإحداثيات المسقط للبحث عن قيم WKID.

كأفضل ممارسة ، يوصى بتحديد المرجع المكاني بشكل صريح ، وتحديده لـ JSON بالكامل بدلاً من كل شكل هندسي فردي.

سمات نقاط_الطلب

عند تحديد نقاط الطلب ، يمكنك تعيين خصائص لكل منها - مثل الاسم أو الوزن - باستخدام السمات التالية:

اسم نقطة الطلب. يتم تضمين الاسم في اسم سطر أو سطور تخصيص الإخراج إذا كانت نقطة الطلب جزءًا من الحل.

اسم المجموعة التي تنتمي إليها نقطة الطلب. يتم تجاهل هذا الحقل لأنواع مشكلات "زيادة التغطية السعة" و "الحصة السوقية المستهدفة" و "زيادة الحصة السوقية".

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

الترجيح النسبي لنقطة الطلب. تعني القيمة 2.0 أن نقطة الطلب هي ضعف أهمية نقطة بوزن 1.0. إذا كانت نقاط الطلب تمثل الأسر ، على سبيل المثال ، يمكن أن يشير الوزن إلى عدد الأفراد في كل أسرة.

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

تتيح لك هذه السمة تحديد قيمة حدية لكل نقطة طلب. على سبيل المثال ، قد تجد أن الناس في المناطق الريفية على استعداد للسفر لمسافة تصل إلى 10 أميال للوصول إلى منشأة ، بينما أولئك الموجودون في المناطق الحضرية على استعداد للسفر لمسافة تصل إلى ميلين فقط. يمكنك نمذجة هذا السلوك عن طريق تعيين قيمة القطع لجميع نقاط الطلب الموجودة في المناطق الريفية على 10 وتعيين قيمة القطع لنقاط الطلب في المناطق الحضرية على 2.

يتم تحديد وحدات قيمة السمة هذه بواسطة معلمة وحدات القياس.

تتجاوز قيمة هذه السمة المجموعة الافتراضية للتحليل باستخدام المعلمة default_measurement_cutoff.القيمة الافتراضية هي Null ، مما ينتج عنه تعيين القيمة الافتراضية بواسطة المعلمة default_measurement_cutoff المستخدمة لجميع نقاط الطلب.

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

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

حدد الاتجاه الذي يمكن أن تصل إليه السيارة أو تغادر منه نقطة الطلب. يجب تحديد أحد الأعداد الصحيحة المدرجة في عمود القيمة المشفرة في الجدول التالي كقيمة لهذه السمة. القيم الموجودة في عمود الإعداد هي الأسماء الوصفية لقيم جدول البيانات CurbApproach التي ربما تكون قد شاهدتها عند استخدام برنامج ملحق ArcGIS Network Analyst.

يمكن للمركبة الاقتراب والمغادرة من نقطة الطلب في أي من الاتجاهين.

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

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

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

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

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

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

يتم عرض مجموعات الوصول والمغادرة المسموح بها لنهج No-Turn curb.

تم تصميم سمة CurbApproach للعمل مع كلا النوعين من معايير القيادة الوطنية: حركة المرور اليمنى (الولايات المتحدة) وحركة المرور اليسرى (المملكة المتحدة). أولاً ، ضع في اعتبارك نقطة طلب على الجانب الأيسر من السيارة. يكون دائمًا على الجانب الأيسر بغض النظر عما إذا كانت السيارة تسير على النصف الأيسر أو الأيمن من الطريق. ما قد يتغير مع معايير القيادة الوطنية هو قرارك بالاقتراب من نقطة طلب من أحد الاتجاهين ، بحيث ينتهي بها الأمر على الجانب الأيمن أو الأيسر من السيارة. على سبيل المثال ، إذا كنت تريد الوصول إلى نقطة طلب وليس لديك حارة مرور بين السيارة ونقطة الطلب ، فاختر 1 (الجانب الأيمن من السيارة) في الولايات المتحدة و 2 (الجانب الأيسر من السيارة) في الولايات المتحدة مملكة.

مع حركة المرور اليمنى ، يكون نهج الرصيف الذي يترك السيارة الأقرب إلى نقطة الطلب هو الجانب الأيمن من السيارة. مع حركة المرور اليسرى ، يكون نهج الرصيف الذي يترك السيارة الأقرب إلى نقطة الطلب هو الجانب الأيسر من السيارة.

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

عادةً ما يتم إرسال البيانات المحمل تلقائيًا من جهاز محمول مزود بجهاز استقبال GPS. حاول تضمين بيانات الاتجاه إذا كنت تقوم بتحميل موقع إدخال متحرك ، مثل أحد المشاة أو السيارة.

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

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

الوحدات بالدرجات ، والقيمة الافتراضية هي 30. يجب أن تكون القيم أكبر من 0 وأقل من 180. وتعني القيمة 30 أنه عندما يحاول Network Analyst إضافة موقع شبكة على حافة ، فإن نطاق قيم الاتجاه المقبولة يكون تم إنشاؤه بمقدار 15 درجة على جانبي الحافة (اليسار واليمين) وفي كلا الاتجاهين المرقمين للحافة.

يتم استخدام هذا الحقل فقط في عملية الحل إذا كان حقلا Bearing و BearingTol يحتويان أيضًا على قيم ، ومع ذلك ، فإن إدخال قيمة حقل NavLatency اختياري ، حتى عندما تكون القيم موجودة في Bearing و BearingTol. يشير NavLatency إلى مقدار التكلفة التي يُتوقع أن تنقضي من لحظة إرسال معلومات GPS من مركبة متحركة إلى خادم ولحظة تلقي جهاز الملاحة الخاص بالمركبة المسار الذي تمت معالجته.

وحدات NavLatency هي نفسها وحدات سمة المعاوقة.

أمثلة بناء الجملة لنقاط الطلب

بناء الجملة لتحديد نقاط الطلب باستخدام بنية JSON للميزات

بناء الجملة لتحديد نقاط الطلب باستخدام عنوان URL الذي يعرض استجابة JSON

أمثلة لنقاط الطلب

مثال 1: تحديد نقاط الطلب في الإسناد المكاني لمجموعة بيانات الشبكة باستخدام بنية JSON. يوضح المثال أيضًا كيفية تحديد بعض السمات لنقاط الطلب.

مثال 2: تحديد نقاط الطلب في الإسناد المكاني لـ Web Mercator باستخدام بنية JSON

مثال 3: تحديد نقاط الطلب باستخدام عنوان URL

يقوم عنوان URL بإجراء استعلام عن بعض الميزات من خدمة الخريطة. يمكن أيضًا تحديد ميزات الاستعلام عن عنوان URL من خدمة المعالم.

رمز

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

مثال (استبدل & ltyourToken & gt برمز مميز صالح):

استخدم هذه المعلمة لتحديد تنسيق الاستجابة. يمكن أن تحتوي المعلمة على html أو json أو pjson كوسيطات ، على سبيل المثال ، f = json. تُستخدم قيمة pjson لطباعة استجابة JSON بتنسيق جميل.


استكشاف أخطاء تثبيتات .NET Framework وعمليات إلغاء التثبيت المحظورة وإصلاحها

عند تشغيل الويب أو المثبت دون اتصال لـ .NET Framework 4.5 أو الإصدارات الأحدث ، فقد تواجه مشكلة تمنع تثبيت .NET Framework أو تمنعه. يسرد الجدول التالي مشكلات الحظر المحتملة ويوفر ارتباطات إلى معلومات استكشاف الأخطاء وإصلاحها.

في Windows 8 والإصدارات الأحدث ، يعد .NET Framework أحد مكونات نظام التشغيل ولا يمكن إلغاء تثبيته بشكل مستقل. تظهر تحديثات .NET Framework في التحديثات المثبتة علامة التبويب "لوحة التحكم" برامج و مميزات برنامج. بالنسبة لأنظمة التشغيل التي لم يتم تثبيت .NET Framework عليها مسبقًا ، يظهر .NET Framework في ملف إلغاء تثبيت برنامج أو تغييره علامة التبويب (أو ملف إضافة برامج إزالة علامة التبويب) من البرنامج والميزات التطبيق في لوحة التحكم. للحصول على معلومات حول إصدارات Windows التي تم تثبيت .NET Framework عليها مسبقًا ، راجع متطلبات النظام.

نظرًا لأن إصدارات 4.x من .NET Framework هي تحديثات موضعية ، فلا يمكنك تثبيت إصدار سابق من .NET Framework 4.x على نظام مثبت عليه إصدار أحدث بالفعل. على سبيل المثال ، في نظام مع Windows 10 Fall Creators Update ، لا يمكنك تثبيت .NET Framework 4.6.2 ، نظرًا لأن .NET Framework 4.7.1 مثبت مسبقًا مع نظام التشغيل.

يمكنك تحديد إصدارات .NET Framework المثبتة على النظام. راجع كيفية: تحديد إصدارات .NET Framework المثبتة للحصول على مزيد من المعلومات.

في هذا الجدول ، يشير 4.5.x إلى .NET Framework 4.5 وإصداراته النقطية ، 4.5.1 و 4.5.2 ، ويشير 4.6.x إلى .NET Framework 4.6 وإصداراته ، 4.6.1 و 4.6.2 يشير 4.7.x إلى .NET Framework 4.7 وإصداراته النقطية ، 4.7.1 و 4.7.2 ، ويشير 4.8 إلى .NET Framework 4.8.

مشاكل توافق البرنامج

فشل تثبيت .NET Framework 4.5 أو إصداراته النقطية مع ظهور رمز خطأ 1603 أو كتل عند تشغيله في وضع توافق برامج Windows. ال مساعد توافق البرامج يشير إلى أن .NET Framework ربما لم يتم تثبيته بشكل صحيح ويطالبك بإعادة تثبيته باستخدام الإعداد الموصى به (وضع توافق البرامج). يمكن أيضًا تعيين وضع توافق البرامج بواسطة مساعد توافق البرامج في المحاولات السابقة الفاشلة أو الملغاة لتشغيل إعداد .NET Framework.

لا يمكن تشغيل مثبت .NET Framework في وضع توافق البرامج. لحل مشكلة الحظر هذه ، يجب عليك استخدام محرر التسجيل للتأكد من عدم تمكين إعداد وضع التوافق على مستوى النظام:

اختر ال بداية زر ، ثم اختر يركض.

في ال يركض في مربع الحوار ، اكتب & quotregedit & quot ، ثم اختر نعم.

في محرر التسجيل ، استعرض للوصول إلى المفاتيح الفرعية التالية:

HKEY_CURRENT_USER SOFTWARE Microsoft Windows NT CurrentVersion AppCompatFlags Compatibility Assistant Persisted

في عمود الاسم ، ابحث عن أسماء تنزيل .NET Framework 4.5 أو 4.5.1 أو 4.5.2 أو 4.6 أو 4.6.1 أو 4.6.2 أو 4.7 أو 4.7.1 أو 4.7.2 ، بناءً على الإصدار الذي تستخدمه تثبيت وحذف هذه الإدخالات. للحصول على أسماء التنزيل ، راجع مقالة تثبيت .NET Framework للمطورين.

أعد تشغيل مثبت .NET Framework للإصدار 4.5 أو 4.5.1 أو 4.5.2 أو 4.6 أو 4.6.1 أو 4.6.2 أو 4.7 أو 4.7.1 أو 4.7.2.


شاهد الفيديو: 0203 Setting up ArcGIS workspace (شهر اكتوبر 2021).