أكثر

إعادة تعيين مصدر بيانات الطبقات باستخدام ArcObjects

إعادة تعيين مصدر بيانات الطبقات باستخدام ArcObjects


أنا أعمل حاليًا على مشروع ArcObjects C # سيعيد تعيين مصادر البيانات لطبقات من أنواع مختلفة. في الأساس يتم الاحتفاظ بقاعدة بيانات تحتوي على اتصالات مصدر البيانات القديمة والوصلات الجديدة. عندما يضغط المستخدم على زر ، ينتقل التطبيق عبر جميع الطبقات الحالية في ArcDesktop ويقارن طبقات البيانات الحالية للطبقات مع المصدر الجديد. إذا كان هناك اختلاف ، فإنه يعيد تعيين مصدر البيانات.

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

هذا هو القسم الذي أحاول تغييره في ArcDesktop:

لدي كل شيء يعمل بشكل جيد باستثناء تغيير مصادر البيانات هذه. لقد وجدت هذا المورد على Arcgis ، لكن لا يبدو أنه يغير تلك السلاسل ، على الرغم من أنني قد أكون مخطئًا.

هذا ما أملكه حاليًا:

// حلقة خلال جميع الطبقات والحصول على معلوماتهم pEnumLayer.Reset () ؛ pLayer = pEnumLayer.Next () ، while (pLayer! = null) {Log.Debug ("معالجة الطبقة:" + pLayer.Name) ؛ IDataLayer dataLayer = (IDataLayer) pLayer ؛ var datasource = dataLayer.DataSourceName ، // هذا ما أعتقد أنه مصدر البيانات Log.Debug الحالي ("الطبقة التي تم إصلاحها:" + pLayer.Name) ؛ pLayer = pEnumLayer.Next () ، }

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


تعليمات Esri عبر الإنترنت ، هناك أمثلة على هذه المشكلة ، يمكنك الرجوع إلى هذا المثال.

URL: http://help.arcgis.com/en/sdk/10.0/arcobjects_net/componenthelp/index.html#//00490000002r000000


يجب عليك استخدام واجهة IDataSourceHelperLayer:

مقتطف الشفرة:

IDataSourceHelperLayer dsh = new DataSourceHelper () كـ IDataSourceHelperLayer ؛ dsh.ReplaceName (pLayer ، newIName ، false) ؛

يمكنك أيضًا استخدام طريقة IDataSourceHelperLayer.FindAndReplaceWorkspaceNamePath.


شاهد الفيديو: Filling Attribute Table Automatically with Simple Steps in ArcMap Using Field Calculator