এটিকে অফ-দ্য-বক্স-কার্যকারিতা হিসাবে দেখাতে আপনি একা থেকে অনেক দূরের বলে মনে করছেন। কমপক্ষে তিনটি আর্কজিআইএস আইডিয়া রয়েছে যা আমি আপনাকে আপনার নাম যুক্ত করার পরামর্শ দিচ্ছি:
ইতিমধ্যে যদি কেউ বুকমার্ক টু ফিচার ক্লাস সরঞ্জাম লেখার জন্য অনুপ্রাণিত হয় তবে আমি নিশ্চিত যে এর আউটপুট ডেটা চালিত পৃষ্ঠাগুলির জন্য একটি সূচক বৈশিষ্ট্য শ্রেণি হিসাবে ভালভাবে ব্যবহৃত হবে।
আমি তালিকার বুকমার্কস (আরকিপি.ম্যাপিং) এর জন্য আর্কজিআইএস অনলাইন সহায়তার জন্য কয়েকটি নমুনা কোডের উপর ভিত্তি করে একটি প্রশিক্ষণ অনুশীলন হিসাবে এটি শেষ করেছি।
import arcpy
# The map with the bookmarks
mxd = arcpy.mapping.MapDocument(r"C:\polygeo\Maps\Bookmarks.mxd")
# Make sure that Training.gdb exists
fileGDBFolder = (r"C:\polygeo")
fileGDBName = ("Training.gdb")
fileGDB = fileGDBFolder + "\\" + fileGDBName
if not arcpy.Exists(fileGDB):
arcpy.CreateFileGDB_management(fileGDBFolder, fileGDBName)
# The output feature class to be created -
# This feature class will store the bookmarks as features
fcName = "Bookmarks"
outFC = fileGDB + "\\" + fcName
# Create new feature class and add a "Name" field to store the
# bookmark name. Provide it with the same Spatial reference as
# the data frame in which the bookmarks of the map are stored
if arcpy.Exists(outFC):
arcpy.Delete_management(outFC)
arcpy.CreateFeatureclass_management(fileGDB,
fcName,
"POLYGON",
spatial_reference=arcpy.SpatialReference(
"Geocentric Datum of Australia 1994"))
arcpy.AddField_management(outFC, "Name", "TEXT", "", "", 50)
# Use arcpy.mapping.ListBookmarks to read bookmark corners and names,
# then arcpy.da.InsertCursor to write arrays of Point geometries from
# that can be written as Polygon geometries to the Shape field of the
# new feature class (with their names).
cur = arcpy.da.InsertCursor(outFC, ["SHAPE@", "Name"])
array = arcpy.Array()
for bkmk in arcpy.mapping.ListBookmarks(mxd):
array.add(arcpy.Point(bkmk.extent.XMin, bkmk.extent.YMin))
array.add(arcpy.Point(bkmk.extent.XMin, bkmk.extent.YMax))
array.add(arcpy.Point(bkmk.extent.XMax, bkmk.extent.YMax))
array.add(arcpy.Point(bkmk.extent.XMax, bkmk.extent.YMin))
# To close the polygon, add the first point again
array.add(arcpy.Point(bkmk.extent.XMin, bkmk.extent.YMin))
cur.insertRow([arcpy.Polygon(array), bkmk.name])
array.removeAll()
del bkmk,array,cur,mxd
print "Bookmarks feature class has been created in " + fileGDB