কিউজিআইএস-এ আমি কীভাবে একটি স্তর নকল করতে পারি?


9

আমি একই ভেক্টর ডেটা বিভিন্ন স্তরের হিসাবে বিভিন্ন উপায়ে প্রদর্শন করতে চাই। যদিও 1.8+ এ স্তর স্টাইলটি অনুলিপি করতে এবং এটি পেস্ট করতে সক্ষম হওয়ায় এটি খুব সহজ , তবে কোনও স্তর নির্বাচন করতে সক্ষম হবেন এবং এটি সরাসরি অনুলিপি করতে বা ডুপ্লিকেট করতে ডান-ক্লিক করতে পেরে ভাল লাগবে।

পাইথন কমান্ডের মতো এটি করার কোনও সহজ উপায়?


আপডেট: @ ডাকার্টোর পরামর্শ পুরোপুরি কার্যকর করে। যেহেতু আমাকে অনেকগুলি নকল স্তর যুক্ত করার দরকার ছিল, তাই আমি এটি প্রয়োজনীয় হিসাবে বহুবার লুপে রূপান্তর করেছি:

for n in range(1,5): 
    iface = qgis.utils.iface; vl = iface.activeLayer(); iface.addVectorLayer(vl.source(), vl.name() + "_clone" + str(n), vl.providerType())

একমাত্র সমস্যাটি হ'ল নতুন স্তরটি সক্রিয়লায়ার হয়ে যায়, সুতরাং এটি "_ক্লোন" এবং পূর্বের নামের সাথে সংখ্যার যোগ করে, উদাহরণ_ক্লোন 1, উদাহরণ_ক্লোন 1_ক্লোন 2 দিয়ে শেষ হয়ে যায়, অযৌক্তিক উদাহরণ_ক্লোন 1_ক্লোন 2_ক্লোন 3_ক্লোন 4_ক্লোন 5 পর্যন্ত। মূলত নির্বাচিত স্তর থেকে এখন কীভাবে সদৃশ করতে হবে তা নির্ধারণ করা দরকার।


এটি সত্যই কোনও উত্তর নয়, তবে আপনি যদি একই প্রকল্পে দু'বার একই ভেক্টর স্তর যুক্ত করেন তবে কিউজিআইএস আপত্তি করবে না।
L_Holcombe

হ্যাঁ, আমি পরে অনেকগুলি নকল যুক্ত করেছি, তবে কেবলমাত্র "স্তর যুক্ত করুন" এবং প্রতিবার স্তরটি নির্বাচন করার জন্য ব্রাউজ করে। সর্বনিম্ন 4 টি ক্লিক এবং কিছু স্ক্রোলিং, যা 20 বার কোনও স্তরটিকে নকল করার প্রয়োজনের সাথে ক্লান্তিকর হয়ে ওঠে।
সিম্বামাঙ্গু

1
@ সিম্বামাঙ্গু এ সম্পর্কে বিভিন্ন মতামত রয়েছে, আমি জিআইএস উইকিতে গিয়েছিলাম। আমি আপনার দৃ view়ভাবে প্রশংসার প্রশংসা করি, আমাকে আমার ভাগ করে দিন। আমি প্রশ্নের শিরোনাম সম্পর্কে প্রশ্ন শিরোনামকে দিক নির্দেশনা হিসাবে বিবেচনা করি। যেহেতু এগুলি সব প্রশ্ন সম্পর্কিত, তারপরে "আমি কীভাবে ...", "এটি কেন ..." এর পরিচয়গুলি নতুন কিছু যুক্ত করবেন না কারণ এটি পরিষ্কার যে এটি একটি প্রশ্ন। এটি প্রশ্নকে আরও পঠনযোগ্য করে তুলতে পারে, তবে এটি কী সম্পর্কে তা দেখতে আপনাকে প্রশ্নের বুকের দিকে তাকাতে হবে। "আমি কীভাবে করব ..." দিয়ে শুরু হওয়া প্রশ্নের পুরো পৃষ্ঠাটি দেখার জন্য আমার পক্ষে কমপক্ষে অনুকরনীয়।
তোমাজিকএম

1
এবং কারণ আমি আপনার পুরানো প্রশ্নের শিরোনাম পরিবর্তন? এটি জিআইএসের হোম পেজে সামান্য কিছু পদক্ষেপের কারণে ছড়িয়ে পড়ে এবং আমি স্বীকার করি যে "কীভাবে" এবং "কেন" প্রশ্নের অংশগুলি অপসারণ করার (খারাপ) অভ্যাস রয়েছে।
তোমাজিকএম

1
@ সিম্বামাঙ্গু আমি ব্যক্তিগতভাবে "কীভাবে" এবং "কেন" ব্যতীত প্রশ্ন পছন্দ করি কারণ এই শব্দগুলি সামগ্রীতে কিছুই জুড়ে না। তারা শিরোনামটি আরও পঠনযোগ্য করে তুলতে পারে তবে শিরোনামটি কিছুটা দ্বিধাগ্রস্থ হলে আমি কোনও সমস্যা দেখতে পাচ্ছি না, কারণ এগুলি কী তা বোঝার জন্য যে কোনওভাবেই প্রশ্নবিজ্ঞানটি পড়তে হবে। এবং আমি স্বীকার করি যে আমি পলিজিও এটি করছিল এবং তারপরে প্রশ্নগুলি পোস্ট / সম্পাদনা করার সময় ভাল অভ্যাস সম্পর্কে কিছু মেটা নিবন্ধগুলি পড়ার পরে আমি সেই শব্দটি সরিয়ে শুরু করেছি started
তোমাজিকএম

উত্তর:


10

এটি সম্পর্কিত দুটি বৈশিষ্ট্য অনুরোধ রয়েছে ( # 5899 এবং # 1483 ) এটি অবশ্যই একটি করণীয় বৈশিষ্ট্য এবং সম্ভবত কোনও বিকাশকারী এটি যুক্ত করতে আগ্রহী হলে 2.0 সংস্করণে অন্তর্ভুক্ত হতে পারে; বা, পাইথন প্লাগইন বিকাশকারী এটিকে কিছুটা বিবেচনা করেছিলেন।

# 5899 ইস্যুতে একটি স্তর নকল করার জন্য কিছু পাইথন কোডও অন্তর্ভুক্ত রয়েছে (বিকাশকারী জিউসেপ সুচামেলি জমা দিয়েছেন):

ইতিমধ্যে ভেক্টর স্তরটি নির্বাচন করুন তারপরে কিউজিস পাইথন কনসোলটি খুলুন এবং রান করুন:

iface = qgis.utils.iface; vl = iface.activeLayer(); iface.addVectorLayer(vl.source(), vl.name() + "_clone", vl.providerType())

পূর্ববর্তী কোড মানচিত্রে একই সাবলেয়ার যুক্ত করে।

এটা তোলে আগের মত এক লাইন পাইথন স্ক্রিপ্ট ব্যবহারের এটা করতে কঠিন, কিন্তু আপনি যদি উপস্তর নাম জানতে আপনি শুধু প্রতিস্থাপন করতে পারেন vl.source()সঙ্গে vl.source().split("|")[0] + "|layername=my_sublayer_name"যেখানে my_sublayer_name আপনার উপস্তর নাম।

এটি সদৃশ কোড চালানোর পরে উপস্থিত হবে, আপনাকে মূল স্তরটির স্টাইলটি অনুলিপি / পেস্ট করতে হবে।


পুরোপুরি কাজ করে। স্তর শৈলীর পেস্ট করার জন্য কী হিসাবে 'ভি' যুক্ত করে স্তর এবং শৈলীর সদৃশকরণ এখন কয়েক সেকেন্ড সময় নেয়।
সিম্বামাঙ্গু

এই বৈশিষ্ট্যটি রিভিশন c11df1aa79 এ প্রয়োগ করা হয়েছে। hub.qgis.org/projects/quantum-gis/repository/revisions/…
ভ্লাদিমির

2
মাস্টার শাখায় এই প্রতিশ্রুতির জন্য পাইথন বাইন্ডিং এর মতো কাজ করে: iface.setActiveLayer( my_layer );iface.actionDuplicateLayer().trigger()যেখানে my_layer একটি QgsMapLayer যা কিংবদন্তির সক্রিয়, নির্বাচিত স্তরটিতে সেট করা আছে; তারপরে, অ্যাকশনডুপ্লিকেট লায়ার () টি কিংবদন্তির (এর ডিফল্ট) নির্বাচিত স্তরগুলিতে কাজ করার জন্য ট্রিগার করা হয়।
ডাক্তার্টো

1

কিউজিআইএস এর সাম্প্রতিক সংস্করণগুলিতে এখন একটি "সদৃশ স্তর" বিকল্প রয়েছে। আপনি যে স্তরটি সদৃশ করতে চান তা ডান ক্লিক করুন এবং এটি নীচে একটি নতুন অনুলিপি প্রবেশ করান।

পার্শ্ব দ্রষ্টব্য: মনে হচ্ছে আপনার View --> Refreshপরের দিকে প্রচার করার জন্য এক স্তরে করা পরিবর্তনগুলি আঘাত করতে হবে ।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.