أكثر

إضافة قواعد البيانات الجغرافية للملف كطبقات مجموعة؟

إضافة قواعد البيانات الجغرافية للملف كطبقات مجموعة؟


لدي بضع مئات من قواعد البيانات الجغرافية (GDBs) تحتوي كل منها على عدة فئات من الميزات.

هل هناك طريقة يمكنني من خلالها نقل GDBs إلى mxd بحيث يتم استيراد كل GDB كطبقة مجموعة تحتوي على فئات المعالم كطبقات فرعية؟

أنا أبحث تحديدًا عن برنامج نصي Arcpy للقيام بذلك نظرًا لوجود عدد كبير جدًا من GDBs.


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

# المسار الكامل للمجلد الذي يحتوي على GDBs inFolder = r "C:  Test  folder" #Map document لإضافة طبقات إلى mapDoc = r "C:  Test  mapdoc.mxd" #Group layer .lyr file grpLyr = r "C:  Test  grouplayer.lyr "# ---- End locals #import modules اطبع" import "import arcpy import os #create mxd ، قم بطباعة" إنشاء كائنات الخريطة "mxd = arcpy.mapping.MapDocument (mapDoc) df = arcpy.mapping .ListDataFrames (mxd) [0] #set Arcpy env workspace لإدخال مجلد print "setting workspace" arcpy.env.workspace = inFolder #list geodatabases print "list geodatabases" gdbs = arcpy.ListWorkspaces (workspace_type = "FileGDB") #iterate طباعة قواعد البيانات الجغرافية "iterating" ، len (gdbs) ، "file geodatabases" لـ gdb في gdbs: print "exploring" ، gdb #create group layer object groupLayer = arcpy.mapping.Layer (grpLyr) #rename layer to gdb name groupLayer.name = gdb # add group layer to data frame arcpy.mapping.AddLayer (df، groupLayer) #change workspace إلى gdb gdbFullPath = os.path.join (inFolder، gdb) arcpy.env.workspace = gdbFullPath #l فئات معالم IST في gdb fcs = arcpy.ListFeatureClasses () #iterate fcs طباعة "إضافة" ، len (fcs) ، "طبقات" لـ fc في fcs: # إنشاء كائن طبقة فئة الميزة lyr = arcpy.mapping.Layer (fc) # أضف طبقة إلى طبقة المجموعة arcpy.AddLayerToGroup (df، groupLayer، lyr) اطبع "حفظ ملف الخريطة" mxd.save () del mxd del df print "done"

شاهد الفيديو: قواعد البيانات العالمية 13 بيانات أخرى