আর্কম্যাপে প্রতীক তালিকার প্রতিটি আইটেমের জন্য বর্ধিত বিবরণ প্রদর্শন করার ক্ষমতা রয়েছে। আমি কীভাবে এই সম্পত্তিটি একটি টেবিল থেকে পপুলেশন করতে পারি? লক্ষ্যটি হ'ল বর্ণনাটি যুক্ত করতে প্রতিটি প্রতীককে একে একে সম্পাদনা করা এড়ানো ।
আর্কম্যাপে প্রতীক তালিকার প্রতিটি আইটেমের জন্য বর্ধিত বিবরণ প্রদর্শন করার ক্ষমতা রয়েছে। আমি কীভাবে এই সম্পত্তিটি একটি টেবিল থেকে পপুলেশন করতে পারি? লক্ষ্যটি হ'ল বর্ণনাটি যুক্ত করতে প্রতিটি প্রতীককে একে একে সম্পাদনা করা এড়ানো ।
উত্তর:
একা অর্কম্যাপ অ্যাপ্লিকেশনটি ব্যবহার করার চেষ্টা করার পরিবর্তে আমি ছবিতে আরকিপিকে নিয়ে এসেছি।
আপনি কেবল ইউনিকভ্যালিউস সিম্বোলজি (আরকিপি.ম্যাপিং) শ্রেণীর ব্যবহার করে যা বর্ণনা করেছেন তা যাচাই করেছিলাম এবং তা অর্জন করেছি যা লেখার যোগ্য শ্রেণীর বিবরণ সম্পত্তি যা এতে সেট করা যেতে পারে:
স্ট্রিং বা সংখ্যার একটি তালিকা যা প্রতিটি অনন্য মানের বর্ণনার প্রতিনিধিত্ব করে যা মানচিত্রের নথির উপকথায় optionচ্ছিকভাবে উপস্থিত হতে পারে। স্তর বৈশিষ্ট্য ডায়ালগ বাক্সে সিম্বোলজি ট্যাবের অভ্যন্তরে প্রদর্শিত প্রতীককে ডান ক্লিক করে এবং সম্পাদনা বিবরণ নির্বাচন করে এই মানগুলি কেবল আর্কম্যাপ ব্যবহারকারী ইন্টারফেসে অ্যাক্সেসযোগ্য। শ্রেণি বিবরণী তালিকার একই সংখ্যক উপাদান থাকা এবং ক্লাসভ্যালু সম্পত্তি হিসাবে একই ক্রমে সাজানো দরকার।
কোড একটি ব্যবহার অনুসন্ধান কার্সার একটি মধ্যে লুকআপ টেবিল পড়তে তালিকা , এবং তারপর লেয়ারটির symbology ক্লাসের classDescriptions সম্পত্তিতে সেই তালিকাটি লিখেছেন। নোট করুন যে সন্ধানের সারণিতে সারি একই সংখ্যার হওয়া আবশ্যক এবং অনন্য প্রতীকতত্ত্ব শ্রেণিবদ্ধকরণের মানগুলির মতো একই ক্রমে থাকা উচিত । আমার কোডটি সেই ক্ষেত্রে না হয়ে অ্যাকাউন্টের জন্য বাড়ানো দরকার তবে সেই আদেশটি নিজেই নিশ্চিত করা আমার পরীক্ষার ক্ষেত্রে সহজ ছিল।
import arcpy
vegDescList = []
vegCodes = arcpy.SearchCursor(r"C:\temp\test.gdb\LookupTable")
for vegCode in vegCodes:
vegDescList.append(vegCode.Description)
mxd = arcpy.mapping.MapDocument(r"C:\temp\test.mxd")
lyr = arcpy.mapping.ListLayers(mxd,"testFC")[0]
if lyr.symbologyType == "UNIQUE_VALUES":
lyr.symbology.classDescriptions = vegDescList
mxd.save()
del mxd
আপনি কি আপনার প্রতীকগুলিকে "অনন্য মূল্যবোধ অনেক ক্ষেত্র" দিয়ে শ্রেণিবদ্ধ করতে পারেন এবং কোডের জন্য একটি ক্ষেত্র এবং দ্বিতীয়টি দীর্ঘ বিবরণের জন্য চয়ন করতে পারেন? এতে প্রতিটি আইটেমকে "[Field1], [Field2]" আকারে স্ট্রিং সহ লেবেল করা উচিত
এটি ছোট ক্ষেত্রগুলির সাথে কাজ করে, আমি কল্পনা করি এটি দীর্ঘতর স্ট্রিংগুলির সাথে হবে, যদি না সীমাবদ্ধতা থাকে যার সাথে আমি পরিচিত নই।
একমাত্র বিরক্তিকর অংশটি হ'ল আপনাকে লেবেল মানটির শুরু থেকেই কোড মানটি দিয়ে যেতে হবে এবং মুছতে হতে পারে, তবে এটি কখনও ঘটেনি worst
পলিজিওর কোড থেকে কাজ করা , আমি এখানে আইটেমগুলির সঠিক সংখ্যা এবং একই ধরণের অর্ডারের সাথে তালিকার মান এবং বর্ণনার মধ্যে মিলের সমস্যাটি নিয়ে কাজ করতে এসেছি। পূর্ণ পরিশ্রমী স্ক্রিপ্ট হয় এখানে ।
# name and path of the lookup table
lookup_table = r"..\default.gdb\vegMajorComm_Lookup"
# change these to match the relevant field names in the lookup table
code = 'VegCode'
description = 'Description'
##...snip...
# build the descriptions dictionary
descriptions = {}
rows = arcpy.SearchCursor(lookup_table)
for item in rows:
#print item.getValue(code), item.getValue(description)
descriptions[item.getValue(code)] = item.getValue(description)
# lyr.symbology requires the classValues and classDescriptions to have
# same number of rows and be in same order. So extract only matching
# elements from the description dictionary
desclist = []
if lyr.symbologyType == "UNIQUE_VALUES":
#extract matches
for symbol in lyr.symbology.classValues:
desclist.append(descriptions[symbol])
# assign the descriptions
lyr.symbology.classDescriptions = desclist
mxd.saveACopy(output_map)
del mxd