أكثر

الحصول على معرفات الطبقة باستخدام ArcPy؟


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

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


في ArcGIS Pro يمكنك القيام بذلك:

cim_version = 'V2' aprx = arcpy.mp.ArcGISProject (aprx_file) map0 = aprx.listMaps () [0] lyr0 = map0.listLayers () [0] def0 = lyr0.getDefinition (cim_version) # serviceLayerID سيكون -1 إذا "السماح بالتعيين. المعرفات الفريدة للطبقات" # لم يتم التحقق من خصائص إطار البيانات # في هذه الحالة ، فإن serviceLayerID بالترتيب من 0 -> len (الطبقات) - 1 # وتشمل GroupLayers (يمكن التحقق من lyr0.isGroupLayer ، إلخ) serviceLayerID = def0.serviceLayerID

بعد اختبار ذلك في ArcGIS 10.3 ، ووفقًا للوثائق المتاحة لـ Layer and Description in Arcpy ، وكذلك هذا الموضوع: https://geonet.esri.com/thread/178341 ، هذه الوظيفة غير موجودة بعد. لا يمكنك الوصول إلى معرف الطبقة من Arcpy. قد تتمكن من الوصول إليه من خلال ArcObjects إذا كانت لديك المعرفة.

كحل بديل ، هل يمكنك إدخال المعرف في حقول الاعتمادات أو الوصف؟ يمكنك الوصول إلى هذين المجالين من خلال Arcpy.