পাইথন ব্যবহার করে কিউজিআইএস-এ আমার নির্বাচিত বৈশিষ্ট্যের স্বয়ংক্রিয়ভাবে কোনও "স্ক্রিনশট" নেওয়া সম্ভব?


11

আমি এমন একটি সরঞ্জাম বাস্তবায়ন করছি যা ব্যবহারকারীকে কোনও বৈশিষ্ট্যের প্রোফাইল তৈরি করতে দেয় (আমার ক্ষেত্রে শহুরে পার্সেলগুলি)। এই বৈশিষ্ট্যটির একটি স্ক্রিনশট স্বয়ংক্রিয়ভাবে নেওয়া (কিউজিআইএস উইন্ডোতে প্রদর্শিত) এবং এটি পিডিএফ প্রোফাইলে প্রদর্শন করা সম্ভব?

ছবিতে কেবল বৈশিষ্ট্যের ব্যাপ্তি এবং বৈশিষ্ট্যের বাইরে থাকা কোনও ডাব্লুএমএস-স্তর প্রদর্শিত হওয়া উচিত। ইতিমধ্যে কিছু সরঞ্জাম আছে যা আপনি পরামর্শ দিতে পারেন?


আমি কীভাবে কোনও পিএনজির পরিবর্তে একটি জেপিজি সংরক্ষণ করতে পারি? QgsMapCanvas.saveAsImage (QStringFFileName, QPixmap * QPixmap = 0, QString = "PNG") আমি জানি যে আমি "JPG" কে সর্বশেষ প্যারামিটার হিসাবে ব্যবহার করতে পারি, তবে আমি জানি না কীভাবে QPixmap সংজ্ঞায়িত করতে পারি যা প্রকৃত মানচিত্রের মতোই একইরকম উইন্ডোজ কিউজিস সাহায্যের জন্য ধন্যবাদ. মিশা
গেমিক

উত্তর:


10

Kopi,

সমাধানের জন্য বেশ কয়েকটি পদ্ধতি রয়েছে তবে এটি সবচেয়ে সহজ হতে পারে (আপনার প্রয়োজনের উপর নির্ভর করে):

কিউএসভিেক্টর লাইয়ার ব্যবহার করে বৈশিষ্ট্যটি নির্বাচন করুন

আপনার ভেক্টর স্তর (vlayer) এবং বৈশিষ্ট্যের আইডি (ফিড) এর একটি রেফারেন্স ধরে নিচ্ছেন। আরো দেখুন

vlayer.select(fid)

QgsInterface ব্যবহার করে নির্বাচিত বৈশিষ্ট্যে জুম করুন

qgis.utils.iface.actionZoomToSelected().trigger()

কিউএসভিেক্টর লাইয়ার ব্যবহার করে বৈশিষ্ট্যটি অনির্বাচিত করুন

vlayer.deselect(fid)

QgsMapCanvas ব্যবহার করে ছবি হিসাবে ক্যানভাস সংরক্ষণ করুন

qgis.utils.iface.mapCanvas().saveAsImage('/Users/me/Desktop/feature.png')

আপনার উইন্ডোটি পূর্ণরূপে প্রসারিত হলে এই পদ্ধতির মাধ্যমে যথাসম্ভব বৃহত্তর একটি ছবি তৈরি করা যায়, কারণ ক্যানভাস সংরক্ষণ করা স্ক্রিন রেজোলিউশনে রয়েছে। তবে এটি নিশ্চিত করে না যে আপনার ছবিগুলি একই মানচিত্রের জুম স্কেলে থাকবে, কেবল তুলনামূলকভাবে একই পিক্সেল আকার। অন্যান্য বিকল্প রয়েছে যেমন আপনার QgisInterface::actionPanToSelected()যদি জুম স্কেলকে সামঞ্জস্য রাখতে হবে।


কি দারুন. আপনার উত্তর করার জন্য আপনাকে ধন্যবাদ! এটি খুব ভাল কাজ করে!
কোপি

1
"সহজ মুদ্রণ" প্লাগইনটি দেখুন, সম্ভবত আপনার যা প্রয়োজন তা নয়, তবে এটি অনুপ্রেরণার জন্য দরকারী হতে পারে।
জিওভান্নি মাঙ্গি

স্ক্রিনশট নেওয়ার আগে স্কেল সেট করা সম্ভব? এবং আমি কীভাবে "অ্যাকশনপ্যানটোসিলেক্টড" ব্যবহার করতে পারি? আমি এটা এই ভাবে চেষ্টা করছি: qgis.utils.iface.actionPanToSelected (বৈশিষ্ট্য ফাংশন ... প্যান রয়েছে), কিন্তু এই আয় একটি ত্রুটির বার্তা: "Attritbute ত্রুটি: QgisInterface বস্তুর কোন অ্যাট্রিবিউট actionPanToSelected করেছে
Kopi

1
qgis.utils.iface.mapCanvas().zoomScale(scale)মানচিত্রের স্কেল সেট করার চেষ্টা করুন । অ্যাকশনপ্যানটোলেক্টেড () কোনও প্যারামিটার নেয় না, তবে ক্রিয়াটির নিজেই একটি রেফারেন্স দেয় (যেমন ক্রিয়াকলজমটোসিলেক্টেড () উপরে)। qgis.utils.iface.actionPanToSelected().trigger()ক্রিয়াকলাপ চালানোর জন্য এর সর্বজনীন স্লটটি ব্যবহার করুন যা কোনটি নির্বাচিত তা নির্ধারণের জন্য পরিচালনা করবে।
ডাক্তার্টো

1
হুম। qgis.utils.iface.actionPanToSelected ()। ট্রিগার () QGIS সংস্করণ 1.8.0 এর অধীনে আমার জন্য কাজ করে। আপনি কি সর্বশেষতম স্থিতিশীল সংস্করণ (1.8.0) ব্যবহার করছেন? বৈশিষ্ট্যটি জানুয়ারীতে ফিরে যুক্ত করা হয়েছিল , সুতরাং এটি সংস্করণ 1.7.x নয়
ডাক্তার্টো
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.