পাইথনে একটি ছোট স্ক্রিপ্ট তৈরি করার জন্য আমি এই মুহুর্তে এটি খুঁজে পেয়েছি, সম্ভবত এটি একটি প্লাগইনে স্থানান্তর করতে পারে তবে এতে আমার কোনও অভিজ্ঞতা নেই।
সঠিক সুরকার এবং মানচিত্র নির্বাচন করে একটি সত্যই বেসিক কোড:
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)
এবং ফলাফল পরীক্ষা: