কিউআইজিআইএস প্রিন্ট সুরকারে দর্শন সমন্বয় করছেন?


10

আমি আমার সমস্যার সাথে খুব অনুরূপ একটি প্রশ্ন পেয়েছি: কীভাবে আর্কজিআইএস বা কিউজিআইএসে ডেটাফ্রেমগুলি লিঙ্ক করব? । তবে কিউজিআইএসের সমাধান এখন কাজ করে না (ডুয়াল ভিউ প্লাগ-ইন আর উপলভ্য নয়)।

আমি তিনটি মতামত সিঙ্ক করতে চাই:

এখানে চিত্র বর্ণনা লিখুন

এই ধারণাটি হ'ল কিউজিআইএস প্রিন্ট সুরকারে মাস্টার ম্যাপের সাথে একই সাথে তিনটি মানচিত্রের দর্শন সরিয়ে নেওয়া হবে।

এটি করার কোনও উপায় বা প্লাগ-ইন আছে কি?

উত্তর:


2

সুরকার মানচিত্রের সিঙ্ক্রোনাইজেশনের জন্য আর একটি মার্জিত "নো কোড" সমাধান QGIS এর অন্তর্নির্মিত "ওভারভিউ" প্রক্রিয়াটি ব্যবহার করে:

এখানে চিত্র বর্ণনা লিখুন

এর জন্য আমরা প্রতিটি মানচিত্রের উইন্ডোতে একটি "মাস্টার ম্যাপ ফ্রেম" ওভারভিউ যুক্ত করি, এটি মাস্টার মানচিত্রের সাথে সিঙ্ক্রোনাইজ করা উচিত। তারপরে আমরা ব্রাশ / নো পেনের ফ্রেম স্টাইল সেট করেছি এবং "ওভারভিউতে কেন্দ্র" সক্ষম করি।

সন্তানের মানচিত্রের স্কেলটি ঠিক করতে আমরা একটি এক্সপ্রেশন মান প্রবেশ করি: এখানে চিত্র বর্ণনা লিখুন

এখানেই শেষ.

খুব সহজ এবং খুব গতিশীল!


গ্রেট! এত সহজ ... চারদিকে দুর্দান্ত কাজ
aldo_tapia

4

পাইথনে একটি ছোট স্ক্রিপ্ট তৈরি করার জন্য আমি এই মুহুর্তে এটি খুঁজে পেয়েছি, সম্ভবত এটি একটি প্লাগইনে স্থানান্তর করতে পারে তবে এতে আমার কোনও অভিজ্ঞতা নেই।

সঠিক সুরকার এবং মানচিত্র নির্বাচন করে একটি সত্যই বেসিক কোড:

from qgis.core import *
from qgis.utils import *

composerList = iface.activeComposers()

comp = composerList[4]

maps = comp.composition().composerMapItems()

masterMap = maps[0]
slave1 = maps[1]
slave2 = maps[4]

slave1.setNewExtent(masterMap.extent())
slave2.setNewExtent(masterMap.extent())

অন্য বিকল্পগুলি হ'ল গোলাপ মানচিত্রে প্রাথমিক স্কেল বজায় রাখা হবে যদি মানচিত্রের বিভিন্ন আকার থাকে তবে আমার ব্যক্তিগত ক্ষেত্রে এই কোডটি যথেষ্ট ছিল:

এখানে চিত্র বর্ণনা লিখুন

আমি এই সমাধানটি উন্নত করার জন্য উন্মুক্ত (আমার সাথে প্রায় কোনও অভিজ্ঞতা নেই PyQGIS)।


বিভিন্ন এক্সটেন্টস এবং স্কেল দিয়ে ডিল করছে

উপরের কোডটি একই পরিমাণে (এবং ফলস্বরূপ, আকার) এবং স্কেল সহ দুর্দান্ত কাজ করে। এখন আমার বিবিধ এক্সটেন্টস, আকার এবং স্কেল দিয়ে একটি কোড উন্নত হয়েছে:

from qgis.core import *
from qgis.utils import *

composerList = iface.activeComposers()

comp = composerList[0]

maps = comp.composition().composerMapItems()

masterMap = maps[2]
slave1 = maps[1]
slave2 = maps[0]

centroid = masterMap.extent().center()

diffx1 = slave1.extent().xMaximum() - slave1.extent().xMinimum()
diffy1 = slave1.extent().yMaximum() - slave1.extent().yMinimum()

diffx2 = slave2.extent().xMaximum() - slave2.extent().xMinimum()
diffy2 = slave2.extent().yMaximum() - slave2.extent().yMinimum()

newExtent1 = QgsRectangle(centroid[0]-(diffx1/2),centroid[1]-(diffy1/2),centroid[0]+(diffx1/2),centroid[1]+(diffy1/2))
newExtent2 = QgsRectangle(centroid[0]-(diffx2/2),centroid[1]-(diffy2/2),centroid[0]+(diffx2/2),centroid[1]+(diffy2/2))

slave1.setNewExtent(newExtent1)
slave2.setNewExtent(newExtent2)

এবং ফলাফল পরীক্ষা:

এখানে চিত্র বর্ণনা লিখুন


আপনার সমস্যার সমাধান হয়েছে তা দেখানোর জন্য বাম দিকে সবুজ-বিবর্ণ টিক ক্লিক করে আপনার উত্তর গ্রহণ করতে ভুলবেন না :)
জোসেফ

1
@ জোসেফ ধন্যবাদ, তবে অর্ধ সমাধান হয়েছে। আমি একটি সম্পূর্ণ সমাধান সরবরাহ করতে একটি প্লাগ ইন এ রূপান্তর করার পরে আমার নিজের উত্তর গ্রহণ করব। এখনও আমার জন্য একটি চ্যালেঞ্জ
#ldo_tapia

2

কোনও কোড না দিয়ে এটি করার জন্য কেবল একটি সামান্য টিপ। এটি এরপরে অ্যালডোর উত্তর কম দক্ষ তবে এটি চূড়ান্ত মানচিত্রটি করার জন্য যদি কৌশলটি শেষ পর্যন্ত করে তবে তা কার্যকর। আপনার কোনও মাস্টার ভিউ থাকার দরকার নেই, এটি মানচিত্রের ক্যানভাসের পরিমাণ যা গণনা করা হয়:

  1. আপনার ইচ্ছামত মানচিত্রটি সরান (এটি মাস্টার ম্যাপ হবে)
  2. "মানচিত্রের ক্যানভাসের পরিমাণ দেখুন" এ ক্লিক করুন
  3. মানচিত্রে খ
  4. "মানচিত্রের ক্যানভাস সীমানায় সেট করুন" এ ক্লিক করুন
  5. মানচিত্রে সি
  6. "মানচিত্রের ক্যানভাস সীমানায় সেট করুন" এ ক্লিক করুন

প্রভৃতি

মানচিত্র ক্যানভাস দেখুন / সীমা

যখন আপনাকে মাস্টার হতে অন্য মানচিত্রের প্রয়োজন হবে তখন অন্য মানচিত্রে ক্লিক করুন তারপরে অন্যকে সেট করার আগে "মানচিত্রের ক্যানভাসের পরিমাণ দেখুন"।

আপনি যদি পরে কোনও নির্দিষ্ট দর্শন রাখতে চান তবে আমি আপনাকে স্থানিক বুকমার্ক প্যানেলটি ব্যবহার করার পরামর্শ দিই recommend মানচিত্রের ক্যানভাসটিকে একটি পছন্দসই পরিমাণে সেট করুন তারপরে আপনার প্রয়োজনীয় প্রতিটি গোলামের ক্যানভাসে মানচিত্রে সেট ক্লিক করুন :)


হ্যাঁ, আমি এইভাবে করতাম। একটি দুর্দান্ত বিকল্প, তবে বি এবং সি মানচিত্রের স্কেলগুলি সর্বদা পরিবর্তিত হয়, সুতরাং আরও দুটি পদক্ষেপ রয়েছে
অলডো_ট্যাপিয়া

আপনার সুন্দর উত্তর, আমার এটি চেষ্টা করা দরকার ^^
gisnside

2

আমার ঠিক একই সমস্যা ছিল এবং নির্ভরশীল মানচিত্রে অভিব্যক্তি ব্যবহার করে কাঙ্ক্ষিত ফলাফল পেতে সক্ষম হয়েছি। এটি ধরে নিয়েছে যে সমস্ত মানচিত্রের বিন্যাসে একই মাত্রা রয়েছে।

  1. আপনার মাস্টার ম্যাপকে আইটেম আইডি দিন, যেমন 'ম্যাপ 1' (আইটেমের বৈশিষ্ট্যের নীচে)

  2. প্রতিটি নির্ভরশীল মানচিত্রে, প্রতিটি ব্যাপ্তি মানগুলিতে একটি অভিব্যক্তি যুক্ত করুন:

    x_min(map_get(item_variables('map1'), 'map_extent'))
    

কোডটি সুরকার আইটেম 'ম্যাপ 1' এর ভেরিয়েবল পাবে, এটি থেকে জ্যামিতি হিসাবে সীমাটি পাবে এবং শেষ পর্যন্ত জ্যামিতি থেকে এর x_min মান পাবে। X_min কে y_min, x_max এবং y_max অনুসারে পরিবর্তন করুন।

কেবলমাত্র খারাপ দিকটি হ'ল প্রতিবার মাস্টার ম্যাপটি সরানোর সময় নির্ভরশীল মানচিত্রগুলি রিফ্রেশ করতে হবে। রফতানিতে এটি স্বয়ংক্রিয়ভাবে আপডেট হওয়া উচিত।


আপনি কিউজিআইএস এর কোন সংস্করণ ব্যবহার করছেন? আমি সাফল্য ছাড়াই 3.0.2 এ চেষ্টা করেছি
aldo_tapia

@ আলডো_টাপিয়া কিউজিআইএস 3.0.3 উপর উবুন্টু 16.04
ফাঁস_আমি_ব্রেইন

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