def canvasMoveEvent(self, e): self.rubberBandPt.reset(QGis.Point) snapPoint = QgisHelper.snapPoint(e.pos(), self.mSnapper, define._canvas, True) if snapPoint != None: self.rubberBandPt.addPoint(snapPoint) self.rubberBandPt.show() if self.isDrawing: if snapPoint == None: self.endPoint = self.toMapCoordinates(e.pos()) else: self.endPoint = snapPoint self.drawLine()
def canvasReleaseEvent(self, e): if ( e.button() == Qt.RightButton ): self.emit(SIGNAL("resultLineCreate"), self.rubberBand.asGeometry()) self.reset() self.isDrawing = False else: self.rubberBandPt.reset(QGis.Point) snapPoint = QgisHelper.snapPoint(e.pos(), self.mSnapper, define._canvas, True) if self.startPoint == None: self.rubberBand.reset(QGis.Line) if snapPoint == None: self.startPoint = self.toMapCoordinates(e.pos()) else: self.startPoint = snapPoint self.rubberBand.addPoint(self.startPoint) self.isDrawing = True else: if snapPoint == None: self.endPoint = self.toMapCoordinates(e.pos()) else: self.endPoint = snapPoint self.rubberBand.addPoint(self.endPoint) self.startPoint = self.endPoint
def canvasPressEvent(self, e): #self.isEmittingPoint = True self.rubberBandPt.reset(QGis.Point) snapPoint = QgisHelper.snapPoint(e.pos(), self.mSnapper, define._canvas, True) if self.isDrawing == False: if snapPoint == None: self.startPoint = self.toMapCoordinates(e.pos()) else: self.startPoint = snapPoint self.isDrawing = True else: self.isDrawing = False if snapPoint == None: self.endPoint = self.toMapCoordinates(e.pos()) else: self.endPoint = snapPoint self.drawLine() self.reset() startPointPlan = None endPointPlan = None startPointGeodetic = None endPointGeodetic = None unitDefault = None try: if self.txtBearingGeodetic == None: startPointPlan = self.startPoint endPointPlan = self.endPoint else: if define._units == QGis.Meters: startPointPlan = self.startPoint endPointPlan = self.endPoint startPointGeodetic = QgisHelper.CrsTransformPoint( startPointPlan.x(), startPointPlan.y(), define._xyCrs, define._latLonCrs) endPointGeodetic = QgisHelper.CrsTransformPoint( endPointPlan.x(), endPointPlan.y(), define._xyCrs, define._latLonCrs) else: startPointGeodetic = self.startPoint endPointGeodetic = self.endPoint startPointPlan = QgisHelper.CrsTransformPoint( startPointGeodetic.x(), startPointGeodetic.y(), define._latLonCrs, define._xyCrs) endPointPlan = QgisHelper.CrsTransformPoint( endPointGeodetic.x(), endPointGeodetic.y(), define._latLonCrs, define._xyCrs) unitDefault = QGis.Meters pass except: return if isinstance(self.txtBearing, NumberBoxPanel): al = MathHelper.getBearing(startPointPlan, endPointPlan, unitDefault) al = Unit.ConvertRadToDeg(al) self.txtBearing.Value = round(al, 4) else: al = MathHelper.getBearing(startPointPlan, endPointPlan, unitDefault) al = Unit.ConvertRadToDeg(al) self.txtBearing.setText(str(round(al, 4))) if self.txtBearingGeodetic != None: al = MathHelper.getBearing(startPointGeodetic, endPointGeodetic, QGis.DecimalDegrees) al = Unit.ConvertRadToDeg(al) self.txtBearingGeodetic.Value = round(al, 4)