def testTrueNorth(self): """Test syncing picture to true north""" layout = QgsLayout(QgsProject.instance()) map = QgsLayoutItemMap(layout) map.attemptSetSceneRect(QRectF(0, 0, 10, 10)) map.setCrs(QgsCoordinateReferenceSystem.fromEpsgId(3575)) map.setExtent( QgsRectangle(-2126029.962, -2200807.749, -119078.102, -757031.156)) layout.addLayoutItem(map) picture = QgsLayoutItemPicture(layout) layout.addLayoutItem(picture) picture.setRotationMap(map.uuid()) self.assertEqual(picture.rotationMap(), map.uuid()) picture.setNorthMode(QgsLayoutItemPicture.TrueNorth) self.assertAlmostEqual(picture.pictureRotation(), 37.20, 1) # shift map map.setExtent( QgsRectangle(2120672.293, -3056394.691, 2481640.226, -2796718.780)) self.assertAlmostEqual(picture.pictureRotation(), -38.18, 1) # rotate map map.setMapRotation(45) self.assertAlmostEqual(picture.pictureRotation(), -38.18 + 45, 1) # add an offset picture.setNorthOffset(-10) self.assertAlmostEqual(picture.pictureRotation(), -38.18 + 35, 1)
def testTrueNorth(self): """Test syncing picture to true north""" layout = QgsLayout(QgsProject.instance()) map = QgsLayoutItemMap(layout) map.attemptSetSceneRect(QRectF(0, 0, 10, 10)) map.setCrs(QgsCoordinateReferenceSystem.fromEpsgId(3575)) map.setExtent(QgsRectangle(-2126029.962, -2200807.749, -119078.102, -757031.156)) layout.addLayoutItem(map) picture = QgsLayoutItemPicture(layout) layout.addLayoutItem(picture) picture.setRotationMap(map.uuid()) self.assertEqual(picture.rotationMap(), map.uuid()) picture.setNorthMode(QgsLayoutItemPicture.TrueNorth) self.assertAlmostEqual(picture.pictureRotation(), 37.20, 1) # shift map map.setExtent(QgsRectangle(2120672.293, -3056394.691, 2481640.226, -2796718.780)) self.assertAlmostEqual(picture.pictureRotation(), -38.18, 1) # rotate map map.setMapRotation(45) self.assertAlmostEqual(picture.pictureRotation(), -38.18 + 45, 1) # add an offset picture.setNorthOffset(-10) self.assertAlmostEqual(picture.pictureRotation(), -38.18 + 35, 1)
def testGridNorth(self): """Test syncing picture to grid north""" layout = QgsLayout(QgsProject.instance()) map = QgsLayoutItemMap(layout) map.setExtent(QgsRectangle(0, -256, 256, 0)) layout.addLayoutItem(map) picture = QgsLayoutItemPicture(layout) layout.addLayoutItem(picture) picture.setRotationMap(map.uuid()) self.assertEqual(picture.rotationMap(), map.uuid()) picture.setNorthMode(QgsLayoutItemPicture.GridNorth) map.setMapRotation(45) self.assertEqual(picture.pictureRotation(), 45) # add an offset picture.setNorthOffset(-10) self.assertEqual(picture.pictureRotation(), 35)