def calcRadiusArea3(self): try: pdg = 0.0 try: pdg = float(self.parametersPanel.txtPdg.text()) except: pass dist1 = math.fabs((Altitude( float(self.parametersPanel.txtTurningAltitude.text()), AltitudeUnits.FT).Metres - Altitude( float(self.parametersPanel.txtNextSegmentAltitude.text()), AltitudeUnits.FT).Metres) / (3.3 / 100.0)) dist2 = math.fabs(( Altitude(float(self.parametersPanel.txtTurningAltitude.text()), AltitudeUnits.FT).Metres - float(self.parametersPanel.pnlDer.txtAltitudeM.text()) - 5.0) / (pdg / 100.0)) # print dist1, dist2 self.parametersPanel.txtRadius.setText(str(round(dist1 + dist2, 4))) self.parametersPanel.txtRadiusFt.setText( str(round(Unit.ConvertMeterToNM(dist1 + dist2), 4))) except: pass
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 self.isDrawing: if snapPoint == None: self.endPoint = self.toMapCoordinates(e.pos()) else: self.endPoint = snapPoint self.rubberBand.movePoint(self.endPoint) dist1 = MathHelper.calcDistance(self.startPoint, self.endPoint) dist1 = self.distance + dist1 if self.type == DistanceUnits.M: self.txtBearing.setText("%f" % round(dist1, 4)) elif self.type == DistanceUnits.NM: self.txtBearing.setText("%f" % round(Unit.ConvertMeterToNM(dist1), 4)) elif self.type == DistanceUnits.FT: self.txtBearing.setText( "%f" % round(Unit.ConvertMeterToFeet(dist1), 4)) elif self.type == DistanceUnits.KM: self.txtBearing.setText("%f" % round((dist1 / 1000), 4)) elif self.type == DistanceUnits.MM: self.txtBearing.setText(str(int(dist1 * 1000)))
def canvasReleaseEvent(self, e): if ( e.button() == Qt.RightButton ): self.reset() self.emit(SIGNAL("captureFinished")) 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) dist = MathHelper.calcDistance(self.startPoint, self.endPoint) self.distance = self.distance + dist if self.type == DistanceUnits.M: self.txtBearing.setText("%f"%round(self.distance, 4)) elif self.type == DistanceUnits.NM: self.txtBearing.setText("%f"%round(Unit.ConvertMeterToNM(self.distance), 4)) elif self.type == DistanceUnits.FT: self.txtBearing.setText("%f"%round(Unit.ConvertMeterToFeet(self.distance), 4)) elif self.type == DistanceUnits.KM: self.txtBearing.setText("%f"%round((self.distance / 1000), 4)) elif self.type == DistanceUnits.MM: self.txtBearing.setText(str(int(self.distance * 1000))) self.startPoint = self.endPoint
def txtDistanceChanged(self): if self.distanceUnit1 != None: try: test = float(self.txtDistance.text()) if self.flag == 0: self.flag = 2 if self.flag == 1: self.flag = 0 if self.flag == 2: try: self.txtDistance1.setText( str( round( Unit.ConvertMeterToNM( float(self.txtDistance.text())), 4))) except: self.txtDistance1.setText("0.0") self.emit(SIGNAL("Event_0"), self) except: str0 = "You must input the float type in \"%s\"." % ( self.Caption) QMessageBox.warning(self, "Warning", str0) self.txtDistance1.setText("0.0") else: try: test = float(self.txtDistance.text()) self.emit(SIGNAL("Event_0"), self) except: str0 = "You must input the float type in \"%s\"." % ( self.Caption) QMessageBox.warning(self, "Warning", str0) self.txtDistance.setText("0.0")
def changeType(self): if self.ui.txtToal != "" and self.ui.cmbMeasureType.currentIndex( ) != self.measureType: if self.measureType == DistanceUnits.M: if self.ui.cmbMeasureType.currentIndex() == DistanceUnits.FT: dist = float(self.ui.txtToal.text()) self.ui.txtToal.setText(str(Unit.ConvertMeterToFeet(dist))) elif self.ui.cmbMeasureType.currentIndex() == DistanceUnits.KM: dist = float(self.ui.txtToal.text()) self.ui.txtToal.setText(str(dist / 1000.0)) elif self.ui.cmbMeasureType.currentIndex() == DistanceUnits.NM: dist = float(self.ui.txtToal.text()) self.ui.txtToal.setText(str(Unit.ConvertMeterToNM(dist))) elif self.measureType == DistanceUnits.FT: if self.ui.cmbMeasureType.currentIndex() == DistanceUnits.M: dist = float(self.ui.txtToal.text()) self.ui.txtToal.setText(str(Unit.ConvertFeetToMeter(dist))) elif self.ui.cmbMeasureType.currentIndex() == DistanceUnits.KM: dist = float(self.ui.txtToal.text()) self.ui.txtToal.setText( str(Unit.ConvertFeetToMeter(dist) / 1000.0)) elif self.ui.cmbMeasureType.currentIndex() == DistanceUnits.NM: dist = float(self.ui.txtToal.text()) self.ui.txtToal.setText(str(Unit.ConvertFeetToNM(dist))) elif self.measureType == DistanceUnits.KM: if self.ui.cmbMeasureType.currentIndex() == DistanceUnits.M: dist = float(self.ui.txtToal.text()) self.ui.txtToal.setText(str(Unit.ConvertKMToMeters(dist))) elif self.ui.cmbMeasureType.currentIndex() == DistanceUnits.FT: dist = float(self.ui.txtToal.text()) self.ui.txtToal.setText(str(Unit.ConvertKMToFeet(dist))) elif self.ui.cmbMeasureType.currentIndex() == DistanceUnits.NM: dist = float(self.ui.txtToal.text()) self.ui.txtToal.setText(str(Unit.ConvertKMToNM(dist))) elif self.measureType == DistanceUnits.NM: if self.ui.cmbMeasureType.currentIndex() == DistanceUnits.M: dist = float(self.ui.txtToal.text()) self.ui.txtToal.setText(str(Unit.ConvertNMToMeter(dist))) elif self.ui.cmbMeasureType.currentIndex() == DistanceUnits.FT: dist = float(self.ui.txtToal.text()) self.ui.txtToal.setText( str( Unit.ConvertMeterToFeet( Unit.ConvertNMToMeter(dist)))) elif self.ui.cmbMeasureType.currentIndex() == DistanceUnits.KM: dist = float(self.ui.txtToal.text()) self.ui.txtToal.setText( str(Unit.ConvertNMToMeter(dist) / 1000.0)) self.measureType = self.ui.cmbMeasureType.currentIndex()
def method_29(self): self.dmeTolerance = Distance.NaN self.slantTolerance = Distance.NaN self.pilotDistance = Distance.NaN self.groundDistance = Distance.NaN if self.parametersPanel.txtDistance.text() == "" or self.parametersPanel.txtAcAltitude.text() == "" or self.parametersPanel.txtDmeAltitude.text() == "": self.parametersPanel.gbResult.setVisible(False) else: nauticalMiles = float(self.parametersPanel.txtDistance.text()) metres = Altitude(float(self.parametersPanel.txtAcAltitude.text()), AltitudeUnits.FT).Metres value = Altitude(float(self.parametersPanel.txtDmeAltitude.text())) num = Unit.ConvertMeterToNM(metres - value.Metres) if (nauticalMiles <= 0): self.parametersPanel.label_72.setText(Captions.DME_TOLERANCE_OVERHEAD) self.dmeTolerance = Distance(460) elif (num <= nauticalMiles): if (self.parametersPanel.cmbCalculationType.currentIndex() != 0): self.groundDistance = Distance(math.sqrt(nauticalMiles * nauticalMiles - num * num), DistanceUnits.NM) self.pilotDistance = Distance(nauticalMiles, DistanceUnits.NM) self.slantTolerance = Distance(self.pilotDistance.NauticalMiles - self.groundDistance.NauticalMiles, DistanceUnits.NM) self.parametersPanel.lblResultDistance.setText(Captions.GROUND_DISTANCE) self.parametersPanel.label_72.setText(Captions.DME_TOLERANCE) self.parametersPanel.txtResultDistance.setText(str(round(self.groundDistance.NauticalMiles,2)) +" nm" + " / " + str(round(self.groundDistance.Metres,2)) +" m") else: self.pilotDistance = Distance(math.sqrt(nauticalMiles * nauticalMiles + num * num), DistanceUnits.NM) self.groundDistance = Distance(nauticalMiles, DistanceUnits.NM) self.slantTolerance = Distance(nauticalMiles - math.sqrt(nauticalMiles * nauticalMiles - num * num), DistanceUnits.NM) self.parametersPanel.lblResultDistance.setText(Captions.PILOT_READOUT) self.parametersPanel.label_72.setText(Captions.DME_TOLERANCE) self.parametersPanel.txtResultDistance.setText(str(round(self.pilotDistance.NauticalMiles, 2)) +" nm" + " / " + str(round(self.pilotDistance.Metres, 2)) +" m") self.dmeTolerance = Distance(Unit.ConvertNMToMeter(self.pilotDistance.NauticalMiles * 0.0125) + 460) else: flag = False if (self.dmeTolerance.IsValid()): self.parametersPanel.txtResultDmeTol.setText(str(round(self.dmeTolerance.NauticalMiles, 2)) +" nm" + " / " + str(round(self.dmeTolerance.Metres, 2)) +" m") if (self.slantTolerance.IsValid()): self.parametersPanel.txtResultSlantTol.setText(str(round(self.slantTolerance.NauticalMiles, 2)) +"nm" + " / " + str(round(self.slantTolerance.Metres, 2)) +" m") self.parametersPanel.frame_62.setVisible(False if not self.pilotDistance.IsValid() else self.groundDistance.IsValid()) self.parametersPanel.frame_TakeOffSurfaceTrack_2.setVisible(self.dmeTolerance.IsValid()) self.parametersPanel.frame_TakeOffSurfaceTrack_3.setVisible(self.slantTolerance.IsValid()) # self.txtResult.Visible = !flag self.parametersPanel.gbResult.setVisible(True)
def smethod_2(position_0, position_1): return Distance( Unit.ConvertMeterToNM( MathHelper.calcDistance(position_0, position_1)), DistanceUnits.NM)