উত্তর:
আমি হ্যাঁ বলব। লেয়ার বর্গ একটি getSelectedExtent পদ্ধতি আছে, এবং Dataframe কিছুদূর সম্পত্তি রয়েছে। যদিও চেষ্টা করে দেখেনি।
আমি কোডের একটি অংশ পেয়েছি যা কাজ করে। আমি এটি পাওয়া এখানে ESRI ওয়েবসাইটে। এটিকে কোনও মডেলের স্ক্রিপ্ট হিসাবে যুক্ত করুন, তারপরে একটি বৈশিষ্ট্যের সরঞ্জাম দ্বারা একটি নির্বাচনের আউটপুট এটির সাথে সংযুক্ত করুন। এটি আমি যা চাই ঠিক তাই করে।
import arcpy
mxd = arcpy.mapping.MapDocument('CURRENT')
df = arcpy.mapping.ListDataFrames(mxd, "Layers") [0]
df.zoomToSelectedFeatures()
arcpy.RefreshActiveView()
df.zoomToSelectedFeatures()
আমি এটি কীভাবে করব +1 । আপনি df.scale = yourscalehere
পাশাপাশি স্কেল সেট করতে ইচ্ছুক হতে পারে ।
আপনি ইতিমধ্যে surmised হিসাবে,
df.zoomToSelectedFeatures()
মানচিত্রের ফ্রেমের সমস্ত নির্বাচিত বৈশিষ্ট্যগুলিতে ডেটা ফ্রেমের প্রসারকে পরিবর্তন করবে । আপনি যদি কোনও নির্দিষ্ট স্তরের জন্য কেবল একটি নির্বাচনের সেটটিতে জুম করতে আগ্রহী হন তবে ব্যবহার করুন lyr.getSelectedExtent()
। আমি মানচিত্র স্কেল ফ্যাক্টরটিও সামঞ্জস্য করি যাতে আমার কোডটি এরকম দেখতে লাগে:
df.extent = lyr.getSelectedExtent()
df.scale *= 1.5
arcpy.RefreshActiveView()
অথবা এটা:
df.extent = lyr.getSelectedExtent()
df.scale = 12000 # 1:1,000
arcpy.RefreshActiveView()
সুতরাং, এটি যুক্ত করতে, আমার প্রয়োজন হয়েছে কোনও বৈশিষ্ট্য বাছাই না করে একাধিক স্তর জুড়ে বিস্তৃত পরিমাণের ট্র্যাক রাখতে হবে। নিম্নলিখিত কোড প্রতিটি দিকের সর্বাধিক সীমা ট্র্যাক করবে। ব্যাপ্তি_ব্যবস্থাটি ফাংশনে সমস্ত কল জুড়ে স্থির থাকে এবং আপনি অন্তর্ভুক্ত স্তরগুলির একটিতে আরম্ভ করা উচিত। ট্র্যাক_সেটেন্টে "স্তর" যুক্তিটি একটি আরকিপি.ম্যাপিং। লাইয়ার অবজেক্ট। আপনি যখন নিজের মানচিত্রটি সংরক্ষণ করতে প্রস্তুত হন, কেবলমাত্র ডেটাফ্রেম.এক্সেন্ট = সীমা_বজেক্টের মতো কোনও কিছুর মাধ্যমে আপনার ডেটাফ্রেমের সীমা সেট করুন
extent_object = initial_layer.getExtent()
def track_extent(extent_object,layer):
l_properties = layer.getExtent()
# each of these essentially says that if this layer is further out to one direction than the current setting, change the setting
if l_properties.XMin < extent_object.XMin:
extent_object.XMin = l_properties.XMin
if l_properties.YMin < extent_object.YMin:
extent_object.YMin = l_properties.YMin
if l_properties.XMax > extent_object.XMax:
extent_object.XMax = l_properties.XMax
if l_properties.YMax > extent_object.YMax:
extent_object.YMax = l_properties.YMax