How to set map canvas extent / view?
I've tried with setExtent(Qrect(..))
but does not work.
mc = iface.mapCanvas()
rect = QgsRectangle()
rect.setXMaximum = 5
rect.setXMinimum = 2
rect.setYMaximum = 10
rect.setYMinimum = 3
mc.setExtent(rect)
Geographic Information Systems Stack Exchange is a question and answer site for cartographers, geographers and GIS professionals. It only takes a minute to sign up.
Sign up to join this communityHow to set map canvas extent / view?
I've tried with setExtent(Qrect(..))
but does not work.
mc = iface.mapCanvas()
rect = QgsRectangle()
rect.setXMaximum = 5
rect.setXMinimum = 2
rect.setYMaximum = 10
rect.setYMinimum = 3
mc.setExtent(rect)
Solved!
mc=iface.mapCanvas()
layer = iface.activeLayer()
geocella=layers[0]
features= geocella.getFeatures()
basepath = "C:/Users/user/Desktop/export_maps_QGIS/OUT"
i = 0
for ftr in features:
name = ftr['name']
print("Name:")
print(name)
bb = ftr.geometry().boundingBox()
xmax = bb.xMaximum()
xmin = bb.xMinimum()
ymax = bb.yMaximum()
ymin = bb.yMinimum()
rect = QgsRectangle(xmin, ymin, xmax, ymax)
rect.setXMaximum = xmax
rect.setxMinimum = xmin
rect.setyMaximum = ymax
rect.setyMinimum = ymin
iface.mapCanvas().setExtent(rect)
iface.mapCanvas().refresh()
mc.setExtent(rect)
settings = iface.mapCanvas().mapSettings()
settings.setOutputSize(QSize(1000, 1000))
settings.setExtent(rect)
settings.setFlag(QgsMapSettings.DrawLabeling, False)
settings.setFlag(QgsMapSettings.Antialiasing, True)
job = QgsMapRendererSequentialJob(settings)
job.start()
job.waitForFinished()
image = job.renderedImage()
filepath = os.path.join(basepath, "out" + str(i) + ".tif")
image.save(filepath)
i = i + 1
rect
, to see if it really works or not. Like thislayer = iface.activeLayer() ; rect = layer.extent() ; iface.mapCanvas().setExtent(rect);
and add aiface.mapCanvas().refresh()
at the end of your code to refresh the resolution.