def testConvertToPainterUnits(self): #test QgsSymbolLayerV2Utils::convertToPainterUnits() using QgsMapUnitScale ms = QgsMapSettings() ms.setExtent(QgsRectangle(0, 0, 100, 100)) ms.setOutputSize(QSize(100, 50)) ms.setOutputDpi(300) r = QgsRenderContext.fromMapSettings(ms) #renderer scale should be about 1:291937841 #start with no min/max scale c = QgsMapUnitScale() size = QgsSymbolLayerV2Utils.convertToPainterUnits( r, 2, QgsSymbolV2.MapUnit, c) self.assertAlmostEqual(size, 1.0, places=5) size = QgsSymbolLayerV2Utils.convertToPainterUnits( r, 2, QgsSymbolV2.MM, c) self.assertAlmostEqual(size, 23.622047, places=5) size = QgsSymbolLayerV2Utils.convertToPainterUnits( r, 2, QgsSymbolV2.Pixel, c) self.assertAlmostEqual(size, 2.0, places=5) #minimum size greater than the calculated size, so size should be limited to minSizeMM c.minSizeMM = 5 c.minSizeMMEnabled = True size = QgsSymbolLayerV2Utils.convertToPainterUnits( r, 2, QgsSymbolV2.MapUnit, c) self.assertAlmostEqual(size, 59.0551181, places=5) #only conversion from mapunits should be affected size = QgsSymbolLayerV2Utils.convertToPainterUnits( r, 2, QgsSymbolV2.MM, c) self.assertAlmostEqual(size, 23.622047, places=5) size = QgsSymbolLayerV2Utils.convertToPainterUnits( r, 2, QgsSymbolV2.Pixel, c) self.assertAlmostEqual(size, 2.0, places=5) c.minSizeMMEnabled = False #maximum size less than the calculated size, so size should be limited to maxSizeMM c.maxSizeMM = 0.1 c.maxSizeMMEnabled = True size = QgsSymbolLayerV2Utils.convertToPainterUnits( r, 2, QgsSymbolV2.MapUnit, c) self.assertAlmostEqual(size, 1.0, places=5) #only conversion from mapunits should be affected size = QgsSymbolLayerV2Utils.convertToPainterUnits( r, 2, QgsSymbolV2.MM, c) self.assertAlmostEqual(size, 23.622047, places=5) size = QgsSymbolLayerV2Utils.convertToPainterUnits( r, 2, QgsSymbolV2.Pixel, c) self.assertAlmostEqual(size, 2.0, places=5)
def testConvertToPainterUnits(self): # test QgsSymbolLayerV2Utils::convertToPainterUnits() using QgsMapUnitScale ms = QgsMapSettings() ms.setExtent(QgsRectangle(0, 0, 100, 100)) ms.setOutputSize(QSize(100, 50)) ms.setOutputDpi(300) r = QgsRenderContext.fromMapSettings(ms) # renderer scale should be about 1:291937841 # start with no min/max scale c = QgsMapUnitScale() size = QgsSymbolLayerV2Utils.convertToPainterUnits(r, 2, QgsSymbolV2.MapUnit, c) self.assertAlmostEqual(size, 1.0, places=5) size = QgsSymbolLayerV2Utils.convertToPainterUnits(r, 2, QgsSymbolV2.MM, c) self.assertAlmostEqual(size, 23.622047, places=5) size = QgsSymbolLayerV2Utils.convertToPainterUnits(r, 2, QgsSymbolV2.Pixel, c) self.assertAlmostEqual(size, 2.0, places=5) # minimum size greater than the calculated size, so size should be limited to minSizeMM c.minSizeMM = 5 c.minSizeMMEnabled = True size = QgsSymbolLayerV2Utils.convertToPainterUnits(r, 2, QgsSymbolV2.MapUnit, c) self.assertAlmostEqual(size, 59.0551181, places=5) # only conversion from mapunits should be affected size = QgsSymbolLayerV2Utils.convertToPainterUnits(r, 2, QgsSymbolV2.MM, c) self.assertAlmostEqual(size, 23.622047, places=5) size = QgsSymbolLayerV2Utils.convertToPainterUnits(r, 2, QgsSymbolV2.Pixel, c) self.assertAlmostEqual(size, 2.0, places=5) c.minSizeMMEnabled = False # maximum size less than the calculated size, so size should be limited to maxSizeMM c.maxSizeMM = 0.1 c.maxSizeMMEnabled = True size = QgsSymbolLayerV2Utils.convertToPainterUnits(r, 2, QgsSymbolV2.MapUnit, c) self.assertAlmostEqual(size, 1.0, places=5) # only conversion from mapunits should be affected size = QgsSymbolLayerV2Utils.convertToPainterUnits(r, 2, QgsSymbolV2.MM, c) self.assertAlmostEqual(size, 23.622047, places=5) size = QgsSymbolLayerV2Utils.convertToPainterUnits(r, 2, QgsSymbolV2.Pixel, c) self.assertAlmostEqual(size, 2.0, places=5)