أكثر

إنشاء ملف lyr ديناميكيًا في ArcPy (للاستخدام مع طبقة المجموعة)؟

إنشاء ملف lyr ديناميكيًا في ArcPy (للاستخدام مع طبقة المجموعة)؟


أحاول إنشاء mxd الذي يمكنه إنشاء طبقات المجموعة وتسميتها ديناميكيًا ، وملؤها بطبقات معالم مختلفة. لقد رأيت بعض الأمثلة على كيفية القيام بذلك ، مثل: إنشاء طبقة مجموعة فارغة داخل طبقة المجموعة الحالية باستخدام arcpy.mapping؟

يبدو أن الأساسيات هي: الإشارة إلى ملف طبقة فارغ:

groupLayer = arcpy.mapping.Layer (r "D:  Test  GroupTest.lyr")

أضفه إلى الخريطة:

arcpy.mapping.AddLayer (df، groupLayer، "BOTTOM") listGroupLayer = arcpy.mapping.ListLayers (mxd، "GroupTest"، df) [0]

ثم أضف طبقة إليه:

addLayer = arcpy.mapping.layer (r "D  Test  Rivers.lyr") arcpy.mapping.AddLayerToGroup (df، listGroupLayer، addLayer، "BOTTOM") [0]

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

هل من أمثلة عن كيفية إنشاء ملف طبقة فارغ (بدلاً من مرجع واحد) داخل بايثون؟


خيار آخر هو حفظ طبقة مجموعة عامة كملف * .lyr. ثم عند تحميل الطبقة ، قم بتغيير خاصية الاسم وإضافتها إلى مستند الخريطة. قد تتمكن من إعادة تسميته بعد إضافته إلى مستند الخريطة. ثم احفظ مستند الخريطة للاحتفاظ بالتغييرات.

lyr = arcpy.mapping.Layer ("grouplayer.lyr") lyr.name = "اسم الاختبار" mxd = arcpy.mapping.MapDocument ("CURRENT") df = arcpy.mapping.ListDataFrames (mxd) [0] arcpy.mapping .AddLayer (df، lyr، "BOTTOM")

كما علق @ Luke:

لا يمكن إنشاء طبقة مجموعة فارغة باستخدام Arcpy. من الممكن استخدام Python إذا كنت تستخدم arcobjects عبر الوحدة النمطية comtypes. راجع الوصول إلى ArcObjects من Python؟


شاهد الفيديو: Layer Files in ArcMap