本文整理汇总了Python中qgis.core.QgsTextAnnotation.setFrameSizeMm方法的典型用法代码示例。如果您正苦于以下问题:Python QgsTextAnnotation.setFrameSizeMm方法的具体用法?Python QgsTextAnnotation.setFrameSizeMm怎么用?Python QgsTextAnnotation.setFrameSizeMm使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类qgis.core.QgsTextAnnotation
的用法示例。
在下文中一共展示了QgsTextAnnotation.setFrameSizeMm方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: testSettingFeature
# 需要导入模块: from qgis.core import QgsTextAnnotation [as 别名]
# 或者: from qgis.core.QgsTextAnnotation import setFrameSizeMm [as 别名]
def testSettingFeature(self):
""" test that feature is set when item moves """
a = QgsTextAnnotation()
a.setFrameSizeMm(QSizeF(300 / 3.7795275, 200 / 3.7795275))
a.setFrameOffsetFromReferencePointMm(QPointF(40 / 3.7795275, 50 / 3.7795275))
a.setHasFixedMapPosition(True)
a.setMapPosition(QgsPointXY(12, 34))
a.setMapPositionCrs(QgsCoordinateReferenceSystem(4326))
canvas = QgsMapCanvas()
canvas.setDestinationCrs(QgsCoordinateReferenceSystem(4326))
canvas.setFrameStyle(0)
canvas.resize(600, 400)
canvas.setExtent(QgsRectangle(10, 30, 20, 35))
i = QgsMapCanvasAnnotationItem(a, canvas) # NOQA
layer = QgsVectorLayer("Point?crs=EPSG:4326&field=station:string&field=suburb:string",
'test', "memory")
canvas.setLayers([layer])
f = QgsFeature(layer.fields())
f.setGeometry(QgsGeometry.fromPointXY(QgsPointXY(14, 31)))
f.setValid(True)
f.setAttributes(['hurstbridge', 'somewhere'])
self.assertTrue(layer.dataProvider().addFeatures([f]))
a.setMapLayer(layer)
self.assertFalse(a.associatedFeature().isValid())
a.setMapPosition(QgsPointXY(14, 31))
self.assertTrue(a.associatedFeature().isValid())
self.assertEqual(a.associatedFeature().attributes()[0], 'hurstbridge')
a.setMapPosition(QgsPointXY(17, 31))
self.assertFalse(a.associatedFeature().isValid())
示例2: testFillSymbol
# 需要导入模块: from qgis.core import QgsTextAnnotation [as 别名]
# 或者: from qgis.core.QgsTextAnnotation import setFrameSizeMm [as 别名]
def testFillSymbol(self):
""" test rendering an annotation with fill symbol"""
a = QgsTextAnnotation()
a.setFrameSizeMm(QSizeF(400 / 3.7795275, 250 / 3.7795275))
a.setHasFixedMapPosition(False)
a.setFillSymbol(QgsFillSymbol.createSimple({'color': 'blue', 'width_border': '5', 'outline_color': 'black'}))
im = self.renderAnnotation(a, QPointF(20, 30))
self.assertTrue(self.imageCheck('annotation_fillstyle', 'annotation_fillstyle', im))
示例3: testTextAnnotationInLayout
# 需要导入模块: from qgis.core import QgsTextAnnotation [as 别名]
# 或者: from qgis.core.QgsTextAnnotation import setFrameSizeMm [as 别名]
def testTextAnnotationInLayout(self):
""" test rendering a text annotation"""
a = QgsTextAnnotation()
a.fillSymbol().symbolLayer(0).setStrokeColor(QColor(0, 0, 0))
a.markerSymbol().symbolLayer(0).setStrokeColor(QColor(0, 0, 0))
a.setFrameSizeMm(QSizeF(300 / 3.7795275, 200 / 3.7795275))
a.setFrameOffsetFromReferencePointMm(QPointF(40 / 3.7795275, 50 / 3.7795275))
doc = QTextDocument()
doc.setHtml('<p style="font-family: arial; font-weight: bold; font-size: 40px;">test annotation</p>')
a.setDocument(doc)
self.assertTrue(self.renderAnnotationInLayout('text_annotation_in_layout', a))
示例4: testTextAnnotation
# 需要导入模块: from qgis.core import QgsTextAnnotation [as 别名]
# 或者: from qgis.core.QgsTextAnnotation import setFrameSizeMm [as 别名]
def testTextAnnotation(self):
""" test rendering a text annotation"""
a = QgsTextAnnotation()
a.fillSymbol().symbolLayer(0).setStrokeColor(QColor(0, 0, 0))
a.markerSymbol().symbolLayer(0).setStrokeColor(QColor(0, 0, 0))
a.setFrameSizeMm(QSizeF(300 / 3.7795275, 200 / 3.7795275))
a.setFrameOffsetFromReferencePointMm(QPointF(40 / 3.7795275, 50 / 3.7795275))
doc = QTextDocument()
doc.setHtml('<p style="font-family: arial; font-weight: bold; font-size: 40px;">test annotation</p>')
a.setDocument(doc)
im = self.renderAnnotation(a, QPointF(20, 30))
self.assertTrue(self.imageCheck('text_annotation', 'text_annotation', im))
# check clone
clone = a.clone()
im = self.renderAnnotation(clone, QPointF(20, 30))
self.assertTrue(self.imageCheck('text_annotation', 'text_annotation', im))
示例5: testPosition
# 需要导入模块: from qgis.core import QgsTextAnnotation [as 别名]
# 或者: from qgis.core.QgsTextAnnotation import setFrameSizeMm [as 别名]
def testPosition(self):
""" test that map canvas annotation item syncs position correctly """
a = QgsTextAnnotation()
a.setFrameSizeMm(QSizeF(300 / 3.7795275, 200 / 3.7795275))
a.setFrameOffsetFromReferencePointMm(QPointF(40 / 3.7795275, 50 / 3.7795275))
a.setMapPosition(QgsPointXY(12, 34))
a.setMapPositionCrs(QgsCoordinateReferenceSystem(4326))
canvas = QgsMapCanvas()
canvas.setDestinationCrs(QgsCoordinateReferenceSystem(4326))
canvas.setFrameStyle(0)
canvas.resize(600, 400)
canvas.show()
canvas.setExtent(QgsRectangle(10, 30, 20, 35))
i = QgsMapCanvasAnnotationItem(a, canvas)
self.assertEqual(canvas.width(), 600)
self.assertEqual(canvas.height(), 400)
# test that correct initial position is set
self.assertAlmostEqual(i.pos().x(), 120, 1)
self.assertAlmostEqual(i.pos().y(), 110, 1)
# shift annotation map position, check that item is moved
a.setMapPosition(QgsPointXY(14, 32))
self.assertAlmostEqual(i.pos().x(), 240, 1)
self.assertAlmostEqual(i.pos().y(), 230, 1)
# check relative position
a.setHasFixedMapPosition(False)
a.setRelativePosition(QPointF(0.8, 0.4))
self.assertAlmostEqual(i.pos().x(), 480, 1)
self.assertAlmostEqual(i.pos().y(), 160, 1)
# flicking between relative and fixed position
a.setHasFixedMapPosition(True)
self.assertAlmostEqual(i.pos().x(), 240, 1)
self.assertAlmostEqual(i.pos().y(), 230, 1)
a.setHasFixedMapPosition(False)
self.assertAlmostEqual(i.pos().x(), 480, 1)
self.assertAlmostEqual(i.pos().y(), 160, 1)
示例6: testSize
# 需要导入模块: from qgis.core import QgsTextAnnotation [as 别名]
# 或者: from qgis.core.QgsTextAnnotation import setFrameSizeMm [as 别名]
def testSize(self):
""" test that map canvas annotation item size is correct """
a = QgsTextAnnotation()
a.setFrameSizeMm(QSizeF(300 / 3.7795275, 200 / 3.7795275))
a.setHasFixedMapPosition(False)
a.setFillSymbol(QgsFillSymbol.createSimple({'color': 'blue', 'width_border': '0'}))
canvas = QgsMapCanvas()
canvas.setDestinationCrs(QgsCoordinateReferenceSystem(4326))
canvas.setFrameStyle(0)
canvas.resize(600, 400)
canvas.show()
canvas.setExtent(QgsRectangle(10, 30, 20, 35))
i = QgsMapCanvasAnnotationItem(a, canvas)
# ugly, but Travis has different default DPI:
if 299 < i.boundingRect().width() < 301:
self.assertAlmostEqual(i.boundingRect().width(), 300, 1)
self.assertAlmostEqual(i.boundingRect().height(), 200, 1)
a.setHasFixedMapPosition(True)
a.setFrameOffsetFromReferencePoint(QPointF(0, 0))
self.assertAlmostEqual(i.boundingRect().width(), 300, -1)
self.assertAlmostEqual(i.boundingRect().height(), 200, -1)
a.setFrameOffsetFromReferencePoint(QPointF(10, 20))
self.assertAlmostEqual(i.boundingRect().width(), 310, -1)
self.assertAlmostEqual(i.boundingRect().height(), 220, -1)
else:
self.assertAlmostEqual(i.boundingRect().width(), 312.5, 1)
self.assertAlmostEqual(i.boundingRect().height(), 208.33, 1)
a.setHasFixedMapPosition(True)
a.setFrameOffsetFromReferencePoint(QPointF(0, 0))
self.assertAlmostEqual(i.boundingRect().width(), 312.5, -1)
self.assertAlmostEqual(i.boundingRect().height(), 208.33, -1)
a.setFrameOffsetFromReferencePoint(QPointF(10, 20))
self.assertAlmostEqual(i.boundingRect().width(), 322.91, -1)
self.assertAlmostEqual(i.boundingRect().height(), 229.166, -1)