আর্কম্যাপ বা আরকগ্যাটালগে একাধিক স্তরগুলির জন্য প্রতীক পরিবর্তন করার কোনও উপায় আছে কি? আমি এক সাথে একাধিক স্তরগুলির প্রতীকটি পরিবর্তন করতে চাই।
আর্কম্যাপ বা আরকগ্যাটালগে একাধিক স্তরগুলির জন্য প্রতীক পরিবর্তন করার কোনও উপায় আছে কি? আমি এক সাথে একাধিক স্তরগুলির প্রতীকটি পরিবর্তন করতে চাই।
উত্তর:
সম্পাদনা আপনি হাতের কাজটি সম্পূর্ণ করতে ESRI দ্বারা সরবরাহিত এই স্ক্রিপ্টটি ব্যবহার করতে পারেন (নীচের মত একই ধারণা):
import arcpy
arcpy.ApplySymbologyFromLayer_management("in_layer", "in_symbology_layer")
in_layer: যে স্তরটিতে প্রতীক প্রয়োগ করা হবে।
বৈশিষ্ট্য স্তর; রাস্টার স্তর; টিআইএন স্তর; নেটওয়ার্ক বিশ্লেষণ স্তরin_symbology_layer: ইনপুট স্তরটিতে এই স্তরের প্রতীক প্রয়োগ করা হয়।
বৈশিষ্ট্য স্তর; রাস্টার স্তর; টিআইএন স্তর; নেটওয়ার্ক বিশ্লেষণ স্তর
অথবা এটি স্ট্যান্ডअ্যালোন স্ক্রিপ্টিং আকারে প্রসারিত করুন (আইডিএল ভাবেন):
import arcpy
from arcpy import env
# Set the current workspace
env.workspace = "path/to/workspace"
# Set layer to apply symbology to
inputLayers = ["in_layer_first.lyr","in_layer_second.lyr","in_layer_third.lyr"]
# Set layer that output symbology will be based on
symbologyLayer = "in_symbology_layer.lyr"
# Apply the symbology from the symbology layer to the input layer
for layer in inputLayers:
arcpy.ApplySymbologyFromLayer_management (layer, symbologyLayer)
সংক্ষেপে, আপনি একটি প্রতীকী স্তর তৈরি করেন (in_symbology_layer) যা আপনি ডিজাইন / শৈলীর সাথে সম্মতি বজায় রেখেছেন। তারপরে আপনি সেই স্তরগুলির প্রতীকটি আপনার সামগ্রীর সারণীতে তালিকাভুক্ত হিসাবে আপনার অন্য প্রতিটি স্তরে অনুলিপি করেছেন।
পূর্ববর্তী উত্তর
আপনি আপনার সামগ্রী / স্তর তালিকার সারণীতে বর্তমান স্তর থেকে একটি স্টাইল ব্যবহার করতে পারেন এবং এটি আপনার অন্যান্য স্তরগুলিতে প্রয়োগ করতে পারেন।
পরবর্তী প্রতিটি স্তরের জন্য (আপনার পছন্দসই স্টাইল স্তরটির নীচে)> ডান ক্লিক করুন> বৈশিষ্ট্য> প্রতীকতত্ত্ব> অন্যান্য স্তর থেকে আমদানি শৈলী
আমারও একই সমস্যা ছিল এবং আমি আরও একটি সমাধান খুঁজে পেলাম। এটি সহজ এবং বাস্তবিক বাস্তব, এটি এমনকি * .lyr ফাইল তৈরির প্রয়োজন নেই।
আরকজিআইএস মডেলবিল্ডার সম্পাদক বাক্সে, আমি নীচের প্রক্রিয়াটি ডিজাইন করেছি:
নোটস: আপনি একই সময়ে বিভিন্ন ধরণের জ্যামিতির স্তরগুলি ব্যবহার করলে সম্ভবত এটি কাজ করবে না। আপনি যদি একই নামের সাথে একবারে স্তরগুলি ব্যবহার করেন তবে এটি ভাল কাজ করে না। আমি ভেক্টরবিহীন স্তরগুলির সাথে চেষ্টা করিনি।
মডেলের অজগর থেকে রফতানি স্ক্রিপ্টটি হ'ল:
# Import arcpy module
import arcpy
# Script arguments
Layers_to_symbolize = arcpy.GetParameterAsText(0)
Symbology_Layer = arcpy.GetParameterAsText(1)
# Local variables:
Symbolized_Layers = Layers_to_symbolize
# Process: Apply Symbology From Layer
arcpy.ApplySymbologyFromLayer_management(Layers_to_symbolize, Symbology_Layer)
অ্যারনের বার্তার ঠিক আগে, আমি আমার রায় তৈরির জন্য @ রয় থেকে প্রাপ্ত তথ্য ব্যবহার করেছি যা আমি আর্কটুলবক্স স্ক্রিপ্টে অন্তর্ভুক্ত করতে পারি। নিচে দেখ:
# Import modules
import arcpy
#Get the current Map Document
mxd = arcpy.mapping.MapDocument("CURRENT")
# Script arguments
Template_Layer = arcpy.GetParameterAsText(0)
LayerList = arcpy.GetParameterAsText(1)
Layers_to_Symbolize = LayerList.split(";")
# Process: Apply Symbology From Layer
for UpdateLayer in Layers_to_Symbolize:
arcpy.AddMessage("Updating: " + UpdateLayer)
arcpy.ApplySymbologyFromLayer_management(UpdateLayer,Template_Layer)
# Refresh the Table of Contents to reflect the change
arcpy.RefreshTOC()
#Delete the MXD from memory
del mxd
আমি এই ধারণাটি সরঞ্জামদণ্ডে 10.1 পাইথন অ্যাড-ইন এর একটি সম্ভাব্য সরঞ্জাম হিসাবে দেখতে পেয়েছি।
নীচে লিঙ্কযুক্ত টুলবক্সটি একবারে একসাথে একাধিক স্তর প্রতীকটি সক্ষম করার জন্য আমি খুব সহজ উপায় নিয়ে এসেছি। আপনি এই টুলবক্সটি যুক্ত করার পরে, একক প্রতীকতত্ত্ব স্তরটি টেনে আনুন এবং তারপরে চিহ্নগুলি প্রয়োগ করতে চান এমন সমস্ত স্তরগুলি টানুন এবং ফেলে দিন targe জিও-টাইপ (লাইন, পয়েন্ট, পলিস) মেলা সংক্রান্ত সাধারণ নিয়মগুলি সম্ভবত এখানে প্রয়োগ হয়। একবার টুলটি চালানোর পরে, এটি কিছুই ঘটেনি হিসাবে প্রদর্শিত হবে। আপনার প্রদর্শনকে রিফ্রেশ করুন (এফ 5) - প্রদর্শনটি ম্যাচিং প্রতীকগুলির সাথে আপডেট হবে। এর বৈশিষ্ট্যগুলি দেখতে একটি স্তরটিতে ক্লিক করুন এবং "ওকে" ক্লিক করুন এবং টোসি প্রতীক আপডেট হবে।
সরঞ্জামবক্সের জন্য জিপ ফাইলটি এখানে ডাউনলোড করুন।
এখানে স্ক্রিপ্টটি যদি এটি সহজ হয়:
import arcpy
# Script arguments
Target_Layers = arcpy.GetParameterAsText(0)
if Target_Layers == '#' or not Target_Layers:
Target_Layers = "LayersToBeChanged" # provide a default value if unspecified
Symbology_Layer = arcpy.GetParameterAsText(1)
if Symbology_Layer == '#' or not Symbology_Layer:
Symbology_Layer = "SymbologyLayer" # provide a default value if unspecified
# Local variables:
Output_Symbology = Symbology_Layer
# Process: Apply Symbology From Layer (3)
arcpy.ApplySymbologyFromLayer_management(Target_Layers, Symbology_Layer)