Пример #1
0
 def calcTolerance(self, pos):
     """calculate snap tolerance"""
     pt1 = PQtC.QPoint(pos.x(), pos.y())
     pt2 = PQtC.QPoint(pos.x() + 20, pos.y())
     dummy, layerPt1 = self.transformCoordinates(pt1)
     dummy, layerPt2 = self.transformCoordinates(pt2)
     tolerance = layerPt2.x() - layerPt1.x()
     return tolerance
Пример #2
0
 def calcTolerance(self, pos):
     """calculate the tolerance of snapping"""
     pt1 = PQtC.QPoint(pos.x(), pos.y())
     pt2 = PQtC.QPoint(pos.x() + 10, pos.y())
     layerPt1 = self.toMapCoordinates(pt1)
     layerPt2 = self.toMapCoordinates(pt2)
     tolerance = layerPt2.x() - layerPt1.x()
     return tolerance
Пример #3
0
    def __init__(self, parent=None):
        super(ScribbleArea, self).__init__(parent)

        self.setAttribute(QtCore.Qt.WA_StaticContents)
        self.modified = False
        self.scribbling = False
        imageSize = QtCore.QSize(500, 500)
        self.image = QtGui.QImage(imageSize, QtGui.QImage.Format_RGB16)
        self.userimage = None
        self.painter = QtGui.QPainter()
        self.lastPoint = QtCore.QPoint()
        self.pen = QtGui.QPen()
Пример #4
0
    def canvasReleaseEvent(self, event):
        #Get the click
        x = event.pos().x()
        y = event.pos().y()

        if event.button() == QtCore.Qt.RightButton:
            self.finishedDigitizing.emit()
            return

        layer = self.canvas.currentLayer()

        if layer is not None:
            #the clicked point is our starting point
            startingPoint = QtCore.QPoint(x, y)

            #we need a snapper, so we use the MapCanvas snappingUtils (new in 2.8.x)
            snapper = self.canvas.snappingUtils()
            snapper.setCurrentLayer(layer)
            #snapType, snapTolerance, snapUnits = snapper.defaultSettings()
            # snapType = 0: no snap, 1 = vertex, 2 = segment, 3 = vertex & segment
            snapMatch = snapper.snapToCurrentLayer(startingPoint, QgsPointLocator.Vertex)

            #if we have found a vertex
            if snapMatch.isValid():
                # we like to mark the vertex that is choosen
                p = snapMatch.point()
                m = QgsVertexMarker(self.canvas)
                m.setIconType(1)
                modulo = self.parent.selected_points % 2
                if modulo == 0:
                    m.setColor(QtGui.QColor(255, 0, 0))
                else:
                    m.setColor(QtGui.QColor(0, 0, 255))
                m.setIconSize(12)
                m.setPenWidth(3)
                m.setCenter(p)
                self.markers.append(m)
                self.vertexFound.emit([p])
            else:
                pass
Пример #5
0
 def drawLineTo(self, endPoint):
     self.painter.setPen(self.pen)
     self.painter.drawLine(self.lastPoint, endPoint)
     self.lastPoint = QtCore.QPoint(endPoint)
     self.modified = True
     self.update()
Пример #6
0
 def addMap(self, pixmap):
     self.painter.begin(self.image)
     self.painter.setRenderHints(QPainter.Antialiasing, True)
     self.painter.drawPixmap(QtCore.QPoint(0,0), pixmap)
     self.painter.end()
     self.update()
Пример #7
0
 def addMapImage(self, image):
     self.painter.begin(self.image)
     self.painter.setRenderHints(QPainter.Antialiasing, True)
     self.painter.drawImage(QtCore.QPoint(0,0), image)
     self.painter.end()
     self.update()