예제 #1
0
 def txtAltitudeMChanged(self):
     try:
         test = float(self.txtAltitudeM.text())
         if self.flag==0:
             self.flag=2;
         if self.flag==1:
             self.flag=0;
         if self.flag==2:
             try:
                 self.txtAltitudeFt.setText(str(round(Unit.ConvertMeterToFeet(float(self.txtAltitudeM.text())), 4)))
             except:
                 self.txtAltitudeFt.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.txtAltitudeFt.setText("0.0")
 def _chageFromMToFt(self):
     if self.flag == 0:
         self.flag = 1
     if self.flag == 2:
         self.flag = 0
     if self.flag == 1:
         try:
             self.txtAltitudeFt.setText(
                 str(
                     round(
                         Unit.ConvertMeterToFeet(
                             float(self.txtAltitudeM.text())), 4)))
             try:
                 self.resultPoint3d = Point3D(
                     self.resultPoint3d.get_X(), self.resultPoint3d.get_Y(),
                     float(self.txtAltitudeM.text()))
             except:
                 pass
         except ValueError:
             self.txtAltitudeFt.setText("")
예제 #3
0
    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 addObstacleToModel(self, obstacle, checkResult):
        ObstacleTable.addObstacleToModel(self, obstacle, checkResult)
        row = self.source.rowCount() - 1

        item = QStandardItem(str(checkResult[0]))
        item.setData(checkResult[0])
        self.source.setItem(row, self.IndexDrM, item)

        item = QStandardItem(str(checkResult[1]))
        item.setData(checkResult[1])
        self.source.setItem(row, self.IndexDoM, item)

        item = QStandardItem(str(checkResult[2]))
        item.setData(checkResult[2])
        self.source.setItem(row, self.IndexMocReqM, item)

        item = QStandardItem(str(Unit.ConvertMeterToFeet(checkResult[2])))
        item.setData(Unit.ConvertMeterToFeet(checkResult[2]))
        self.source.setItem(row, self.IndexMocReqFt, item)

        item = QStandardItem(str(checkResult[3]))
        item.setData(checkResult[3])
        self.source.setItem(row, self.IndexAcAltM, item)

        item = QStandardItem(str(Unit.ConvertMeterToFeet(checkResult[3])))
        item.setData(Unit.ConvertMeterToFeet(checkResult[3]))
        self.source.setItem(row, self.IndexAcAltFt, item)

        item = QStandardItem(str(checkResult[4]))
        item.setData(checkResult[4])
        self.source.setItem(row, self.IndexAltReqM, item)

        item = QStandardItem(str(Unit.ConvertMeterToFeet(checkResult[4])))
        item.setData(Unit.ConvertMeterToFeet(checkResult[4]))
        self.source.setItem(row, self.IndexAltReqFt, item)

        item = QStandardItem(str(checkResult[5]))
        item.setData(checkResult[5])
        self.source.setItem(row, self.IndexPDG, item)

        item = QStandardItem(str(checkResult[6]))
        item.setData(checkResult[6])
        self.source.setItem(row, self.IndexCritical, item)

        item = QStandardItem(str(checkResult[7]))
        item.setData(checkResult[7])
        self.source.setItem(row, self.IndexCloseIn, item)
예제 #5
0
    def addObstacleToModel(self, obstacle, checkResult):
        if self.typeStr == "buffer":
            ObstacleTable.addObstacleToModel(self, obstacle, checkResult)
            row = self.source.rowCount() - 1

            item = QStandardItem(str(checkResult[0]))
            item.setData(checkResult[0])
            self.source.setItem(row, self.IndexMocAppliedM, item)

            item = QStandardItem(str(Unit.ConvertMeterToFeet(checkResult[0])))
            item.setData(Unit.ConvertMeterToFeet(checkResult[0]))
            self.source.setItem(row, self.IndexMocAppliedFt, item)

            item = QStandardItem(str(ObstacleTable.MocMultiplier))
            item.setData(ObstacleTable.MocMultiplier)
            self.source.setItem(row, self.IndexMocMultiplier, item)

            item = QStandardItem(str(checkResult[1]))
            item.setData(checkResult[1])
            self.source.setItem(row, self.IndexOcaM, item)

            item = QStandardItem(str(Unit.ConvertMeterToFeet(checkResult[1])))
            item.setData(Unit.ConvertMeterToFeet(checkResult[1]))
            self.source.setItem(row, self.IndexOcaFt, item)

            item = QStandardItem(str(checkResult[2]))
            item.setData(checkResult[2])
            self.source.setItem(row, self.IndexCritical, item)
        else:
            ObstacleTable.addObstacleToModel(self, obstacle, checkResult)
            row = self.source.rowCount() - 1

            item = QStandardItem(str(checkResult[0]))
            item.setData(checkResult[0])
            self.source.setItem(row, self.IndexObstArea, item)

            item = QStandardItem(str(checkResult[1]))
            item.setData(checkResult[1])
            self.source.setItem(row, self.IndexDistInSecM, item)

            item = QStandardItem(str(checkResult[2]))
            item.setData(checkResult[2])
            self.source.setItem(row, self.IndexMocAppliedM, item)

            item = QStandardItem(str(Unit.ConvertMeterToFeet(checkResult[2])))
            item.setData(Unit.ConvertMeterToFeet(checkResult[2]))
            self.source.setItem(row, self.IndexMocAppliedFt, item)

            item = QStandardItem(str(ObstacleTable.MocMultiplier))
            item.setData(ObstacleTable.MocMultiplier)
            self.source.setItem(row, self.IndexMocMultiplier, item)

            item = QStandardItem(str(checkResult[3]))
            item.setData(checkResult[3])
            self.source.setItem(row, self.IndexOcaM, item)

            item = QStandardItem(str(Unit.ConvertMeterToFeet(checkResult[3])))
            item.setData(Unit.ConvertMeterToFeet(checkResult[3]))
            self.source.setItem(row, self.IndexOcaFt, item)

            item = QStandardItem(str(checkResult[4]))
            item.setData(checkResult[4])
            self.source.setItem(row, self.IndexCritical, item)
    def addObstacleToModel(self, obstacle, checkResult=None):
        standardItemList = []
        # obstacle.positionDegree = QgisHelper.Meter2Degree(obstacle.Position.x(), obstacle.Position.y())
        standardItem = QStandardItem(str(obstacle.featureId))
        standardItem.setData(obstacle.featureId)
        standardItemList.append(standardItem)

        standardItem = QStandardItem(str(obstacle.layerId))
        standardItem.setData(obstacle.layerId)
        standardItemList.append(standardItem)

        standardItem = QStandardItem(str(obstacle.name))
        standardItem.setData(obstacle.name)
        standardItemList.append(standardItem)

        standardItem = QStandardItem(str(obstacle.Position.x()))
        standardItem.setData(obstacle.Position.x())
        standardItemList.append(standardItem)

        standardItem = QStandardItem(str(obstacle.Position.y()))
        standardItem.setData(obstacle.Position.y())
        standardItemList.append(standardItem)

        value = QVariant(QgisHelper.strDegree(obstacle.positionDegree.y()))
        standardItem = QStandardItem(value.toString())
        standardItem.setData(obstacle.positionDegree.y())
        standardItemList.append(standardItem)
        strV = QgisHelper.strDegree(obstacle.positionDegree.y())

        value = QVariant(QgisHelper.strDegree(obstacle.positionDegree.x()))
        standardItem = QStandardItem(value.toString())
        standardItem.setData(obstacle.positionDegree.x())
        standardItemList.append(standardItem)

        standardItem = QStandardItem(str(obstacle.Position.z()))
        standardItem.setData(obstacle.Position.z())
        standardItemList.append(standardItem)

        standardItem = QStandardItem(
            str(Unit.ConvertMeterToFeet(obstacle.Position.z())))
        standardItem.setData(Unit.ConvertMeterToFeet(obstacle.Position.z()))
        standardItemList.append(standardItem)

        standardItem = QStandardItem(str(obstacle.trees))
        standardItem.setData(obstacle.trees)
        standardItemList.append(standardItem)

        standardItem = QStandardItem(
            str(Unit.ConvertMeterToFeet(obstacle.trees)))
        standardItem.setData(Unit.ConvertMeterToFeet(obstacle.trees))
        standardItemList.append(standardItem)

        #         for i in range(len(standardItemList), self.source.columnCount()):
        #             standardItemList.append(QStandardItem("None"))

        self.source.appendRow(standardItemList)

        standardItem = QStandardItem(str(obstacle.mocMultiplier))
        standardItem.setData(obstacle.mocMultiplier)
        self.source.setItem(self.source.rowCount() - 1,
                            self.IndexMocMultiplier, standardItem)
    def initParametersPan(self):
        ui = Ui_HoldingRnpGeneral()
        self.parametersPanel = ui

        FlightPlanBaseDlg.initParametersPan(self)
        self.parametersPanel.txtTas.setEnabled(False)
        self.parametersPanel.pnlWaypoint = PositionPanel(
            self.parametersPanel.holding)
        self.parametersPanel.pnlWaypoint.groupBox.setTitle("Waypoint Position")

        self.parametersPanel.pnlWaypoint.hideframe_Altitude()
        self.parametersPanel.pnlWaypoint.setObjectName("positionWaypoint")
        self.parametersPanel.pnlWaypoint.btnCalculater.hide()
        self.parametersPanel.verticalLayout.insertWidget(
            0, self.parametersPanel.pnlWaypoint)

        self.parametersPanel.pnlWind = WindPanel(
            self.parametersPanel.grbParameters)
        self.parametersPanel.vLayout_grbParameters.insertWidget(
            5, self.parametersPanel.pnlWind)
        self.parametersPanel.pnlWind.setAltitude(
            Altitude(float(self.parametersPanel.txtAltitude.text()),
                     AltitudeUnits.FT))

        #         self.resize(460,600)
        self.parametersPanel.cmbConstruction.addItems(["2D", "3D"])
        self.parametersPanel.cmbAircraftCategory_2.addItems(
            ["A", "B", "C", "D", "E", "H", "Custom"])
        self.parametersPanel.cmbOrientation.addItems(
            [OrientationType.Left, OrientationType.Right])
        #         self.parametersPanel.cmbOrientation.setCurrentIndex(1)
        #
        #         '''Event Handlers Connect'''
        #
        self.parametersPanel.txtAltitude.textChanged.connect(self.method_31)
        #         self.parametersPanel.cmbTurnLimitation.currentIndexChanged.connect(self.method_28)
        #         self.parametersPanel.btnCaptureTrack.clicked.connect(self.captureBearing)
        self.parametersPanel.cmbAircraftCategory_2.currentIndexChanged.connect(
            self.changeCategory)
        self.parametersPanel.cmbAircraftCategory_2.setCurrentIndex(3)

        self.frame_8_1 = QFrame(self)
        sizePolicy = QSizePolicy(QSizePolicy.Minimum, QSizePolicy.Preferred)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        #         sizePolicy.setHeightForWidth(self.frame_8.sizePolicy().hasHeightForWidth())
        self.frame_8_1.setSizePolicy(sizePolicy)
        self.frame_8_1.setFrameShape(QFrame.StyledPanel)
        self.frame_8_1.setFrameShadow(QFrame.Raised)
        self.frame_8_1.setObjectName("frame_8")
        self.horizontalLayout_10_1 = QHBoxLayout(self.frame_8_1)
        self.horizontalLayout_10_1.setAlignment(Qt.AlignHCenter)
        self.horizontalLayout_10_1.setSpacing(0)
        self.horizontalLayout_10_1.setMargin(0)
        self.horizontalLayout_10_1.setObjectName("horizontalLayout_10")
        self.label_2_1 = QLabel(self.frame_8_1)
        self.label_2_1.setMinimumSize(QSize(140, 16777215))
        #         self.label_2_1.setFixedWidth(100)
        self.label_2_1.setText("MOCmultiplier")

        font = QFont()
        font.setFamily("Arial")
        font.setBold(False)
        font.setWeight(50)
        self.label_2_1.setFont(font)
        self.label_2_1.setObjectName("label_2_1")
        self.horizontalLayout_10_1.addWidget(self.label_2_1)

        self.parametersPanel.mocSpinBox = QSpinBox(self.frame_8_1)
        self.parametersPanel.mocSpinBox.setFont(font)
        self.parametersPanel.mocSpinBox.setObjectName("mocSpinBox")
        sizePolicy = QSizePolicy(QSizePolicy.MinimumExpanding,
                                 QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.parametersPanel.mocSpinBox.sizePolicy().hasHeightForWidth())
        self.parametersPanel.mocSpinBox.setSizePolicy(sizePolicy)
        self.parametersPanel.mocSpinBox.setMinimum(1)
        self.parametersPanel.mocSpinBox.setMinimumSize(QSize(140, 16777215))

        #         self.parametersPanel.mocSpinBox.setFixedWidth(100)
        self.horizontalLayout_10_1.addWidget(self.parametersPanel.mocSpinBox)
        #         self.verticalLayout_9.addWidget(self.frame_8_1)

        self.parametersPanel.vLayout_grbParameters.addWidget(self.frame_8_1)
        self.parametersPanel.btnIasHelp.clicked.connect(self.iasHelpShow)
        self.parametersPanel.frame_ConstructionType_2.hide()

        self.parametersPanel.txtIas.textChanged.connect(self.iasChanged)
        self.parametersPanel.txtIsa.textChanged.connect(self.isaChanged)
        #         self.parametersPanel.txtIsa.textChanged.connect(self.isaChanged)
        self.parametersPanel.txtAltitudeM.textChanged.connect(
            self.txtAltitudeMChanged)
        self.parametersPanel.txtAltitude.textChanged.connect(
            self.txtAltitudeFtChanged)

        self.flag = 0
        if self.flag == 0:
            self.flag = 2
        if self.flag == 1:
            self.flag = 0
        if self.flag == 2:
            try:
                self.parametersPanel.txtAltitudeM.setText(
                    str(
                        round(
                            Unit.ConvertFeetToMeter(
                                float(
                                    self.parametersPanel.txtAltitude.text())),
                            4)))
            except:
                self.parametersPanel.txtAltitudeM.setText("0.0")
        self.parametersPanel.txtMoc.textChanged.connect(self.txtMocMChanged)
        self.parametersPanel.txtMocFt.textChanged.connect(self.txtMocFtChanged)

        self.flag1 = 0
        if self.flag1 == 0:
            self.flag1 = 1
        if self.flag1 == 2:
            self.flag1 = 0
        if self.flag1 == 1:
            try:
                self.parametersPanel.txtMocFt.setText(
                    str(
                        round(
                            Unit.ConvertMeterToFeet(
                                float(self.parametersPanel.txtMoc.text())),
                            4)))
            except:
                self.parametersPanel.txtMocFt.setText("0.0")

        self.parametersPanel.txtTas.setText(
            str(
                round(
                    Speed.smethod_0(
                        Speed(float(self.parametersPanel.txtIas.text())),
                        float(self.parametersPanel.txtIsa.text()),
                        Altitude(
                            float(self.parametersPanel.txtAltitude.text()),
                            AltitudeUnits.FT)).Knots, 4)))
    def initParametersPan(self):
        ui = Ui_DepartureOmnidirectional()
        self.parametersPanel = ui
        FlightPlanBaseDlg.initParametersPan(self)

        self.parametersPanel.chbHideCloseInObst = QCheckBox(self.ui.grbResult)
        font = QFont()
        font.setBold(False)
        font.setWeight(50)
        self.parametersPanel.chbHideCloseInObst.setFont(font)
        self.parametersPanel.chbHideCloseInObst.setObjectName(
            "chbHideCloseInObst")
        self.ui.vlResultGroup.addWidget(
            self.parametersPanel.chbHideCloseInObst)
        self.parametersPanel.chbHideCloseInObst.setText(
            "Hide close-in obstacles")
        self.parametersPanel.txtRadiusFt.setEnabled(False)
        self.parametersPanel.txtRadius.setEnabled(False)

        self.parametersPanel.frameMinTurnHeight_CATH.setVisible(False)

        self.parametersPanel.pnlDer = PositionPanel(
            self.parametersPanel.gbRunway)
        self.parametersPanel.pnlDer.groupBox.setTitle("DER Position")
        self.parametersPanel.pnlDer.btnCalculater.hide()
        #         self.parametersPanel.pnlRwyDir.hideframe_Altitude()
        self.parametersPanel.pnlDer.setObjectName("pnlDer")
        ui.vl_gbRunway.addWidget(self.parametersPanel.pnlDer)
        #         self.connect(self.parametersPanel.pnlRwyDir, SIGNAL("positionChanged"), self.initResultPanel)

        self.parametersPanel.pnlRwyStart = PositionPanel(
            self.parametersPanel.gbRunway)
        self.parametersPanel.pnlRwyStart.groupBox.setTitle(
            "Start of RWY/FATO Position")
        self.parametersPanel.pnlRwyStart.btnCalculater.hide()
        self.parametersPanel.pnlRwyStart.hideframe_Altitude()
        self.parametersPanel.pnlRwyStart.setObjectName("pnlRwyStart")
        ui.vl_gbRunway.insertWidget(1, self.parametersPanel.pnlRwyStart)
        self.calcRadiusArea3()
        self.parametersPanel.cmbSelectionMode.addItems(["Automatic", "Manual"])
        self.parametersPanel.cmbSelectionMode.currentIndexChanged.connect(
            self.manualEvent)
        #         self.parametersPanel.cmbHoldingFunctionality.currentIndexChanged.connect(self.cmbHoldingFunctionalityCurrentIndexChanged)
        #         self.parametersPanel.cmbOutboundLimit.currentIndexChanged.connect(self.cmbOutboundLimitCurrentIndexChanged)
        #         self.parametersPanel.btnCaptureDer.clicked.connect(self.captureBearing)
        self.parametersPanel.chbHideCloseInObst.stateChanged.connect(
            self.chbHideCloseInObstStateChanged)
        self.parametersPanel.chbCatH.stateChanged.connect(
            self.chbCATHStateChanged)
        self.parametersPanel.txtPdg.textChanged.connect(self.calcRadiusArea3)
        self.parametersPanel.pnlDer.txtPointX.textChanged.connect(
            self.calcRadiusArea3)
        self.parametersPanel.pnlDer.txtAltitudeM.textChanged.connect(
            self.calcRadiusArea3)
        self.parametersPanel.txtNextSegmentAltitude.textChanged.connect(
            self.txtNextSegmentAltitudeChanged)
        self.parametersPanel.txtTurningAltitude.textChanged.connect(
            self.txtTurningAltitudeChanged)
        self.parametersPanel.txtNextSegmentAltitudeM.textChanged.connect(
            self.txtNextSegmentAltitudeMChanged)
        self.parametersPanel.txtTurningAltitudeM.textChanged.connect(
            self.txtTurningAltitudeMChanged)

        self.parametersPanel.txtMinTurnHeight.textChanged.connect(
            self.txtMinTurnHeightChanged)
        self.parametersPanel.txtMinTurnHeightFt.textChanged.connect(
            self.txtMinTurnHeightFtChanged)
        self.parametersPanel.txtMinTurnHeight_CATH.textChanged.connect(
            self.txtMinTurnHeight_CATHChanged)
        self.parametersPanel.txtMinTurnHeight_CATH_2.textChanged.connect(
            self.txtMinTurnHeight_CATH_2Changed)
        #         self.parametersPanel.btnCaptureDistance.clicked.connect(self.measureDistance)
        #         self.parametersPanel.btnCaptureLength.clicked.connect(self.measureLength)
        #         self.parametersPanel.txtAltitude.textChanged.connect(self.altitudeChanged)
        #         self.parametersPanel.cmbAircraftCategory.currentIndexChanged.connect(self.changeCategory)
        #         self.parametersPanel.btnIasHelp.clicked.connect(self.iasHelpShow)
        #         self.parametersPanel.txtIas.textChanged.connect(self.iasChanged)
        #         self.parametersPanel.txtIsa.textChanged.connect(self.isaChanged)
        #
        self.txtTFlag = True
        self.txtNFlag = True
        self.txtTMFlag = False
        self.txtNMFlag = False

        self.flag = 0
        self.flag1 = 0
        self.flag2 = 0
        self.flag3 = 0
        try:
            self.parametersPanel.txtNextSegmentAltitudeM.setText(
                str(
                    round(
                        Unit.ConvertFeetToMeter(
                            float(self.parametersPanel.txtNextSegmentAltitude.
                                  text())), 4)))
        except:
            self.parametersPanel.txtNextSegmentAltitudeM.setText("0.0")
        try:
            self.parametersPanel.txtTurningAltitudeM.setText(
                str(
                    round(
                        Unit.ConvertFeetToMeter(
                            float(self.parametersPanel.txtTurningAltitude.text(
                            ))), 4)))
        except:
            self.parametersPanel.txtTurningAltitudeM.setText("0.0")

        try:
            self.parametersPanel.txtMinTurnHeightFt.setText(
                str(
                    round(
                        Unit.ConvertMeterToFeet(
                            float(
                                self.parametersPanel.txtMinTurnHeight.text())),
                        4)))
        except:
            self.parametersPanel.txtMinTurnHeightFt.setText("0.0")
        try:
            self.parametersPanel.txtMinTurnHeight_CATH_2.setText(
                str(
                    round(
                        Unit.ConvertMeterToFeet(
                            float(self.parametersPanel.txtMinTurnHeight_CATH.
                                  text())), 4)))
        except:
            self.parametersPanel.txtMinTurnHeight_CATH_2.setText("0.0")