def testRenderFrame2(self): point_shp = os.path.join(TEST_DATA_DIR, 'points.shp') point_layer = QgsVectorLayer(point_shp, 'Lines', 'ogr') self.assertTrue(point_layer.isValid()) marker_symbol = QgsMarkerSymbol() marker_symbol.deleteSymbolLayer(0) marker_symbol.appendSymbolLayer(QgsAnimatedMarkerSymbolLayer()) marker_symbol[0].setPath( os.path.join(TEST_DATA_DIR, 'qgis_logo_animated.gif')) marker_symbol[0].setSize(20) point_layer.setRenderer(QgsSingleSymbolRenderer(marker_symbol)) ms = QgsMapSettings() ms.setOutputSize(QSize(200, 200)) ms.setOutputDpi(96) ms.setExtent(QgsRectangle(-118.5, 19.0, -81.4, 50.4)) ms.setLayers([point_layer]) ms.setFrameRate(10) ms.setCurrentFrame(2) # Test rendering renderchecker = QgsMultiRenderChecker() renderchecker.setMapSettings(ms) renderchecker.setControlPathPrefix('symbol_animatedmarker') renderchecker.setControlName('expected_animatedmarker_frame2') res = renderchecker.runTest('expected_animatedmarker_frame2') self.report += renderchecker.report() self.assertTrue(res)
def testFromMapSettings(self): """ test QgsRenderContext.fromMapSettings() """ ms = QgsMapSettings() ms.setOutputSize(QSize(1000, 1000)) ms.setDestinationCrs(QgsCoordinateReferenceSystem('EPSG:3111')) ms.setExtent(QgsRectangle(10000, 20000, 30000, 40000)) ms.setFlag(QgsMapSettings.Antialiasing, True) ms.setFlag(QgsMapSettings.LosslessImageRendering, True) ms.setFlag(QgsMapSettings.Render3DMap, True) ms.setZRange(QgsDoubleRange(1, 10)) ms.setOutputSize(QSize(100, 100)) ms.setDevicePixelRatio(2) ms.setOutputImageFormat(QImage.Format_Alpha8) ms.setFrameRate(30) ms.setCurrentFrame(6) ms.setTextRenderFormat(QgsRenderContext.TextFormatAlwaysText) rc = QgsRenderContext.fromMapSettings(ms) self.assertEqual(rc.textRenderFormat(), QgsRenderContext.TextFormatAlwaysText) self.assertTrue(rc.testFlag(QgsRenderContext.Antialiasing)) self.assertTrue(rc.testFlag(QgsRenderContext.LosslessImageRendering)) self.assertTrue(rc.testFlag(QgsRenderContext.Render3DMap)) self.assertEqual(ms.zRange(), QgsDoubleRange(1, 10)) self.assertEqual(rc.symbologyReferenceScale(), -1) self.assertEqual(rc.outputSize(), QSize(100, 100)) self.assertEqual(rc.devicePixelRatio(), 2) self.assertEqual(rc.deviceOutputSize(), QSize(200, 200)) self.assertEqual(rc.imageFormat(), QImage.Format_Alpha8) self.assertEqual(rc.frameRate(), 30) self.assertEqual(rc.currentFrame(), 6) # should have an valid mapToPixel self.assertTrue(rc.mapToPixel().isValid()) ms.setTextRenderFormat(QgsRenderContext.TextFormatAlwaysOutlines) ms.setZRange(QgsDoubleRange()) rc = QgsRenderContext.fromMapSettings(ms) self.assertEqual(rc.textRenderFormat(), QgsRenderContext.TextFormatAlwaysOutlines) self.assertTrue(ms.zRange().isInfinite()) self.assertEqual(rc.mapExtent(), QgsRectangle(10000, 20000, 30000, 40000)) ms.setIsTemporal(True) rc = QgsRenderContext.fromMapSettings(ms) self.assertEqual(rc.isTemporal(), True) ms.setTemporalRange( QgsDateTimeRange(QDateTime(2020, 1, 1, 0, 0), QDateTime(2010, 12, 31, 23, 59))) rc = QgsRenderContext.fromMapSettings(ms) self.assertEqual( rc.temporalRange(), QgsDateTimeRange(QDateTime(2020, 1, 1, 0, 0), QDateTime(2010, 12, 31, 23, 59))) ms.setDpiTarget(111.1) rc = QgsRenderContext.fromMapSettings(ms) self.assertEqual(rc.dpiTarget(), 111.1)