def test_apply_add_node_edit(self):
        item = QgsAnnotationPolygonItem(
            QgsPolygon(
                QgsLineString([
                    QgsPoint(12, 13),
                    QgsPoint(14, 13),
                    QgsPoint(14, 15),
                    QgsPoint(14.5, 15.5),
                    QgsPoint(14.5, 16.5),
                    QgsPoint(14.5, 17.5),
                    QgsPoint(12, 13)
                ])))
        self.assertEqual(
            item.geometry().asWkt(),
            'Polygon ((12 13, 14 13, 14 15, 14.5 15.5, 14.5 16.5, 14.5 17.5, 12 13))'
        )

        self.assertEqual(
            item.applyEdit(
                QgsAnnotationItemEditOperationAddNode('', QgsPoint(15, 16))),
            Qgis.AnnotationItemEditOperationResult.Success)
        self.assertEqual(
            item.geometry().asWkt(),
            'Polygon ((12 13, 14 13, 14 15, 14.5 15.5, 14.5 16, 14.5 16.5, 14.5 17.5, 12 13))'
        )
Exemple #2
0
    def testBasic(self):
        item = QgsAnnotationPolygonItem(
            QgsPolygon(
                QgsLineString([
                    QgsPoint(12, 13),
                    QgsPoint(14, 13),
                    QgsPoint(14, 15),
                    QgsPoint(12, 13)
                ])))

        self.assertEqual(item.geometry().asWkt(),
                         'Polygon ((12 13, 14 13, 14 15, 12 13))')

        item.setGeometry(
            QgsPolygon(
                QgsLineString([
                    QgsPoint(22, 23),
                    QgsPoint(24, 23),
                    QgsPoint(24, 25),
                    QgsPoint(22, 23)
                ])))
        item.setZIndex(11)
        self.assertEqual(item.geometry().asWkt(),
                         'Polygon ((22 23, 24 23, 24 25, 22 23))')
        self.assertEqual(item.zIndex(), 11)

        item.setSymbol(
            QgsFillSymbol.createSimple({
                'color': '200,100,100',
                'outline_color': 'black'
            }))
        self.assertEqual(item.symbol()[0].color(), QColor(200, 100, 100))
    def test_apply_delete_node_edit(self):
        item = QgsAnnotationPolygonItem(
            QgsPolygon(
                QgsLineString([
                    QgsPoint(12, 13),
                    QgsPoint(14, 13),
                    QgsPoint(14, 15),
                    QgsPoint(14.5, 15.5),
                    QgsPoint(14.5, 16.5),
                    QgsPoint(14.5, 17.5),
                    QgsPoint(12, 13)
                ])))
        self.assertEqual(
            item.geometry().asWkt(),
            'Polygon ((12 13, 14 13, 14 15, 14.5 15.5, 14.5 16.5, 14.5 17.5, 12 13))'
        )

        self.assertEqual(
            item.applyEdit(
                QgsAnnotationItemEditOperationDeleteNode(
                    '', QgsVertexId(0, 0, 1), QgsPoint(14, 13))),
            Qgis.AnnotationItemEditOperationResult.Success)
        self.assertEqual(
            item.geometry().asWkt(),
            'Polygon ((12 13, 14 15, 14.5 15.5, 14.5 16.5, 14.5 17.5, 12 13))')
        self.assertEqual(
            item.applyEdit(
                QgsAnnotationItemEditOperationDeleteNode(
                    '', QgsVertexId(0, 0, 2), QgsPoint(14.5, 15.5))),
            Qgis.AnnotationItemEditOperationResult.Success)
        self.assertEqual(
            item.geometry().asWkt(),
            'Polygon ((12 13, 14 15, 14.5 16.5, 14.5 17.5, 12 13))')
        self.assertEqual(
            item.applyEdit(
                QgsAnnotationItemEditOperationDeleteNode(
                    '', QgsVertexId(0, 0, 7), QgsPoint(14, 15))),
            Qgis.AnnotationItemEditOperationResult.Invalid)
        self.assertEqual(
            item.geometry().asWkt(),
            'Polygon ((12 13, 14 15, 14.5 16.5, 14.5 17.5, 12 13))')
        self.assertEqual(
            item.applyEdit(
                QgsAnnotationItemEditOperationDeleteNode(
                    '', QgsVertexId(0, 0, 0), QgsPoint(12, 13))),
            Qgis.AnnotationItemEditOperationResult.Success)
        self.assertEqual(
            item.applyEdit(
                QgsAnnotationItemEditOperationDeleteNode(
                    '', QgsVertexId(0, 0, 0), QgsPoint(12, 13))),
            Qgis.AnnotationItemEditOperationResult.ItemCleared)
        self.assertEqual(item.geometry().asWkt(), 'Polygon EMPTY')
    def test_transform(self):
        item = QgsAnnotationPolygonItem(
            QgsPolygon(
                QgsLineString([
                    QgsPoint(12, 13),
                    QgsPoint(14, 13),
                    QgsPoint(14, 15),
                    QgsPoint(12, 13)
                ])))
        self.assertEqual(item.geometry().asWkt(),
                         'Polygon ((12 13, 14 13, 14 15, 12 13))')

        self.assertEqual(
            item.applyEdit(
                QgsAnnotationItemEditOperationTranslateItem('', 100, 200)),
            Qgis.AnnotationItemEditOperationResult.Success)
        self.assertEqual(item.geometry().asWkt(),
                         'Polygon ((112 213, 114 213, 114 215, 112 213))')
    def test_apply_move_node_edit(self):
        item = QgsAnnotationPolygonItem(
            QgsPolygon(
                QgsLineString([
                    QgsPoint(12, 13),
                    QgsPoint(14, 13),
                    QgsPoint(14, 15),
                    QgsPoint(12, 13)
                ])))
        self.assertEqual(item.geometry().asWkt(),
                         'Polygon ((12 13, 14 13, 14 15, 12 13))')

        self.assertEqual(
            item.applyEdit(
                QgsAnnotationItemEditOperationMoveNode('',
                                                       QgsVertexId(0, 0, 1),
                                                       QgsPoint(14, 13),
                                                       QgsPoint(17, 18))),
            Qgis.AnnotationItemEditOperationResult.Success)
        self.assertEqual(item.geometry().asWkt(),
                         'Polygon ((12 13, 17 18, 14 15, 12 13))')
        self.assertEqual(
            item.applyEdit(
                QgsAnnotationItemEditOperationMoveNode('',
                                                       QgsVertexId(0, 0, 3),
                                                       QgsPoint(12, 13),
                                                       QgsPoint(19, 20))),
            Qgis.AnnotationItemEditOperationResult.Success)
        self.assertEqual(item.geometry().asWkt(),
                         'Polygon ((19 20, 17 18, 14 15, 19 20))')
        self.assertEqual(
            item.applyEdit(
                QgsAnnotationItemEditOperationMoveNode('',
                                                       QgsVertexId(0, 0, 4),
                                                       QgsPoint(14, 15),
                                                       QgsPoint(19, 20))),
            Qgis.AnnotationItemEditOperationResult.Invalid)
        self.assertEqual(item.geometry().asWkt(),
                         'Polygon ((19 20, 17 18, 14 15, 19 20))')
    def test_transient_translate_operation(self):
        item = QgsAnnotationPolygonItem(
            QgsPolygon(
                QgsLineString([
                    QgsPoint(12, 13),
                    QgsPoint(14, 13),
                    QgsPoint(14, 15),
                    QgsPoint(12, 13)
                ])))
        self.assertEqual(item.geometry().asWkt(),
                         'Polygon ((12 13, 14 13, 14 15, 12 13))')

        res = item.transientEditResults(
            QgsAnnotationItemEditOperationTranslateItem('', 100, 200))
        self.assertEqual(res.representativeGeometry().asWkt(),
                         'Polygon ((112 213, 114 213, 114 215, 112 213))')
    def test_transient_move_operation(self):
        item = QgsAnnotationPolygonItem(
            QgsPolygon(
                QgsLineString([
                    QgsPoint(12, 13),
                    QgsPoint(14, 13),
                    QgsPoint(14, 15),
                    QgsPoint(12, 13)
                ])))
        self.assertEqual(item.geometry().asWkt(),
                         'Polygon ((12 13, 14 13, 14 15, 12 13))')

        res = item.transientEditResults(
            QgsAnnotationItemEditOperationMoveNode('', QgsVertexId(0, 0, 1),
                                                   QgsPoint(14, 13),
                                                   QgsPoint(17, 18)))
        self.assertEqual(res.representativeGeometry().asWkt(),
                         'Polygon ((12 13, 17 18, 14 15, 12 13))')