Hi Asim
Before delving into any coding issues, I wonder whether this may simply
be related to the layout page size and the map element shape, which is
not the same proportions as your extent that you are aiming to set. If
you are not requiring a specific map element size and this can be
variable, then perhaps resize the element based upon your coordinates
rather than the layout dimensions, as you are doing in the final line.
To test if my thinking is sound, stop your code after the line
map.setExtent(rectangle) and repaint the layout. If this works, then try
resize the map element before setting the coordinates and try again. I
suspect that it will be fine using approach 1 but one of your coordinate
ranges i.e. X or Y will be amended due to, as I mentioned, the map shape
not conforming to the coordinates shape.
I hope this helps.
---
Regards,
Nigel Berjak
Please consider the environment before printing this email.
On 2024-11-08 22:33, Asim al-sofi via QGIS-User wrote:
Hi all
Iam trying to make a print layout using a defined rectangle.
The print layout created using the rectangle is correct in the x
coordinates but in the y coordinates it is always smaller than the
defined rectangle.
The code snippet is:
layout = QgsPrintLayout(project)
layoutName = "PrintLayout"
#initializes default settings for blank print layout canvas
layout.initializeDefaults()
layout.setName(layoutName)
manager.addLayout(layout)
map = QgsLayoutItemMap(layout)
map.setRect(20, 20, 20, 20)
#defines map extent using map coordinates
rectangle =
QgsRectangle(float(bounds[0]),float(bounds[1]),float(bounds[2]),float(bounds[3]))#
x min y min, x max y max
rectangle =
QgsRectangle(QgsPointXY(float(bounds[0]),float(bounds[1])),QgsPointXY(float(bounds[2]),float(bounds[3])))#
x min y min, x max y max
map.setExtent(rectangle)
layout.addLayoutItem(map)
#Move & Resize map on print layout canvas
map.attemptMove(QgsLayoutPoint(0, 0, QgsUnitTypes.LayoutMillimeters))
map.attemptResize(QgsLayoutSize(297, 210,
QgsUnitTypes.LayoutMillimeters))
Any ideas what is wrong with my code?
Thanks in advance
Kind regards,
Asim
_______________________________________________
QGIS-User mailing list
QGIS-User@lists.osgeo.org
List info: https://lists.osgeo.org/mailman/listinfo/qgis-user
Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-user
_______________________________________________
QGIS-User mailing list
QGIS-User@lists.osgeo.org
List info: https://lists.osgeo.org/mailman/listinfo/qgis-user
Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-user