def smethod_5(form_0, qasnapshot_0): try: # if (AcadHelper.Ready) # { # AcadHelper.smethod_2(); # if (!qasnapshot_0.ModelSpace) # { # AcadHelper.smethod_27(DrawingSpace.PaperSpace, true); # } # else # { # AcadHelper.smethod_27(DrawingSpace.ModelSpace, true); # } viewCenter = qasnapshot_0.ViewCenter x = viewCenter.get_X() - qasnapshot_0.ViewSize / float(2) point3d = qasnapshot_0.ViewCenter point2d = Point3D( x, point3d.get_Y() - qasnapshot_0.ViewSize / float(2)) viewCenter1 = qasnapshot_0.ViewCenter num = viewCenter1.get_X() + qasnapshot_0.ViewSize / float(2) point3d1 = qasnapshot_0.ViewCenter point2d1 = Point3D( num, point3d1.get_Y() + qasnapshot_0.ViewSize / float(2)) AcadHelper.smethod_66(point2d, point2d1) # AcadHelper.smethod_3(); except: QMessageBox.warning(form_0, "Error", sys.exc_info()[0])
def resultPointValueListMethod(self, resultValueList): flag = FlightPlanBaseDlg.btnConstruct_Click(self) if not flag: return point = Point3D() try: point = Point3D(float(resultValueList[1]), float(resultValueList[2]), float(resultValueList[3])) except: return if (not self.flagP): mapUnits = define._canvas.mapUnits() self.constructionLayer = AcadHelper.createVectorLayer(self.surfaceType) self.point3dP = point.smethod_167(0); self.origin1P = self.method_31(self.polylineP, self.originP, self.point3dP, self.numP, self.metresP, self.speedP, self.num2P, self.orientationTypeP); AcadHelper.setGeometryAndAttributesInLayer(self.constructionLayer, self.polylineP) QgisHelper.appendToCanvas(define._canvas, [self.constructionLayer], self.surfaceType) # polyline.Draw(); else: mapUnits = define._canvas.mapUnits() self.constructionLayer = AcadHelper.createVectorLayer(self.surfaceType) self.originP = point.smethod_167(0); self.polylineP, self.origin1P = self.method_30(self.originP, self.numP, self.metresP, self.speedP, self.num2P, self.orientationTypeP); AcadHelper.setGeometryAndAttributesInLayer(self.constructionLayer, self.polylineP) QgisHelper.appendToCanvas(define._canvas, [self.constructionLayer], self.surfaceType) # AcadHelper.smethod_18(transaction, blockTableRecord, polyline, constructionLayer); self.flagP = not self.flagP; self.resultLayerList = [self.constructionLayer] if (not self.flagP): define._messageLabel.setText(Prompts.SECOND_POSITION_FINISH); else: define._messageLabel.setText(Prompts.POSITION_FINISH) pass
def method_33(self, fasDataBlockFile_0): if (fasDataBlockFile_0 == None): self.method_30() return self.parametersPanel.pnlOperationType.SelectedIndex = fasDataBlockFile_0.OperationType self.parametersPanel.pnlSbasProvider.SelectedIndex = fasDataBlockFile_0.SbasProviderId self.parametersPanel.pnlAirportId.Value = fasDataBlockFile_0.AirportId self.parametersPanel.txtRunwayDesignator.Value = float( fasDataBlockFile_0.RunwayNumber) self.parametersPanel.cmbRunwayLetter.SelectedIndex = fasDataBlockFile_0.RunwayLetter self.parametersPanel.pnlApproachPerformanceDesignator.SelectedIndex = fasDataBlockFile_0.ApproachPerformanceDesignator self.parametersPanel.pnlRouteIndicator.SelectedItem = fasDataBlockFile_0.RouteIndicator self.parametersPanel.pnlReferencePathDataSelector.Value = float( fasDataBlockFile_0.ReferencePathDataSelector) self.parametersPanel.pnlReferencePathId.Value = fasDataBlockFile_0.ReferencePathIdentifier deltaFpapLatitude = fasDataBlockFile_0.LtpFtpLatitude deltaFpapLongitude = fasDataBlockFile_0.LtpFtpLongitude self.parametersPanel.pnlLtpFtp.Point3d = Point3D( deltaFpapLongitude, deltaFpapLatitude) self.parametersPanel.pnlLtpFtpEllipsoidalHeight.Value = fasDataBlockFile_0.LtpFtpHeight deltaFpapLatitude = deltaFpapLatitude + fasDataBlockFile_0.DeltaFpapLatitude deltaFpapLongitude = deltaFpapLongitude + fasDataBlockFile_0.DeltaFpapLongitude self.parametersPanel.pnlFpap.Point3d = Point3D(deltaFpapLongitude, deltaFpapLatitude) self.parametersPanel.txtApproachTCH.Value = fasDataBlockFile_0.ApproachTch self.parametersPanel.cmbApproachTCHunits.SelectedIndex = fasDataBlockFile_0.ApproachTchUnits self.parametersPanel.pnlGPA.Value = fasDataBlockFile_0.GPA self.parametersPanel.pnlCourseWidth.Value = fasDataBlockFile_0.CourseWidth self.parametersPanel.pnlLengthOffset.Value = fasDataBlockFile_0.DeltaLengthOffset self.parametersPanel.pnlHAL.Value = fasDataBlockFile_0.HAL self.parametersPanel.pnlVAL.Value = fasDataBlockFile_0.VAL self.method_31(False)
def btnConstruct_Click(self): flag = FlightPlanBaseDlg.btnConstruct_Click(self) if not flag: return value = Speed(float(self.parametersPanel.txtIas.text()),SpeedUnits.KTS); if (self.parametersPanel.chbDeparture.isChecked()): value = value + (value / 10); altitude = Altitude(float(self.parametersPanel.txtAltitudeFt.text()), AltitudeUnits.FT); value1 = float(self.parametersPanel.txtIsa.text()); num1 = float (self.parametersPanel.txtBankAngle.text()); self.speedP = self.parametersPanel.pnlWind.Value; self.num2P = Unit.ConvertDegToRad(float(self.parametersPanel.txtTrackRadial.Value)); self.orientationTypeP = self.parametersPanel.cmbOrientation.currentText(); speed1 = Speed.smethod_0(value, value1, altitude); numList = [] distance = Distance.smethod_1(speed1, num1, numList); self.numP = numList[0] self.metresP = distance.Metres; self.originP = Point3D.get_Origin(); self.point3dP = Point3D.get_Origin(); self.origin1P = Point3D.get_Origin(); self.polylineP = PolylineArea(); self.flagP = True; define._canvas.setMapTool(self.CaptureCoordTool)
def openData(self): try: fileName = FlightPlanBaseDlg.openData(self) if fileName == None: return doc = DataHelper.loadXmlDocFromFile(fileName) dialogNodeList = doc.elementsByTagName(self.objectName()) if dialogNodeList.isEmpty(): raise UserWarning, "self file is not correct." dialogElem = dialogNodeList.at(0).toElement() trackNodeList = dialogElem.elementsByTagName("Track") if trackNodeList.isEmpty(): return elemTrack = trackNodeList.at(0).toElement() elemStart = elemTrack.elementsByTagName("StartPoint").at( 0).toElement() elemEnd = elemTrack.elementsByTagName("EndPoint").at(0).toElement() x, y = DataHelper.getPointValueFromElem(elemStart) self.parametersPanel.txtTrack.captureRadialTool.startPoint = Point3D( x, y) x, y = DataHelper.getPointValueFromElem(elemEnd) self.parametersPanel.txtTrack.captureRadialTool.endPoint = Point3D( x, y) except BaseException as e: QMessageBox.warning(self, "Error", e.message)
def getPointWithShortestDist(self, point3d, closed=True): if self.Count == 0: return None if closed: point3dList = self.method_14_closed() else: point3dList = self.method_14() # i = 0 # for point3d0 in point3dList: # if i == 0: # i += 1 # continue # previousPoint = point3dList[i - 1] # currentPoint = point3d0 # f = QgsGeometry.fromPolyline([previousPoint, currentPoint]).contains(point3d) # if f: # return point3d i = 0 for point3d0 in point3dList: if i == 0: i += 1 continue previousPoint = point3dList[i - 1] currentPoint = point3d0 f = QgsGeometry.fromPolyline([previousPoint, currentPoint]).contains(point3d) dist = MathHelper.calcDistance(point3d, previousPoint) bearing = MathHelper.smethod_4( MathHelper.getBearing(previousPoint, currentPoint) - math.pi / 2) vPoint1 = MathHelper.distanceBearingPoint(point3d, bearing, dist) bearing = MathHelper.smethod_4( MathHelper.getBearing(previousPoint, currentPoint) + math.pi / 2) dist = MathHelper.calcDistance(point3d, previousPoint) vPoint2 = MathHelper.distanceBearingPoint(point3d, bearing, dist) geom = QgsGeometry.fromPolyline([ previousPoint, currentPoint ]).intersection(QgsGeometry.fromPolyline([vPoint1, vPoint2])) intersectionPoint = geom.asPoint() if intersectionPoint.x() == 0 and intersectionPoint.y() == 0: i += 1 continue pt = None if point3d.x() > intersectionPoint.x(): pt = Point3D(intersectionPoint.x() + 1, intersectionPoint.y()) else: pt = Point3D(intersectionPoint.x() - 1, intersectionPoint.y()) geom = QgsGeometry.fromPolyline(point3dList).intersection( QgsGeometry.fromPolyline([point3d, pt])) intersectionPoint1 = geom.asPoint() if intersectionPoint1.x() != 0 and intersectionPoint1.y() != 0: i += 1 continue return Point3D(intersectionPoint.x(), intersectionPoint.y()) return self.getClosestPointTo(point3d, False)
def processMethod(self ,i ,j ,hCount,wCount,block,wStartNumber,hStartNumber,xStartValue,yStartValue,xOffSet, yOffSet,obstacleLayer,obstacleTable,obstacleUnits,mocMultiplier): featureID = 0 while i <= hCount - 1: j = 0 while j <= wCount - 1: # altitude = block.value(wStartNumber, hStartNumber) name = "DEM" # startTime = time.time() # print "startTime" + str(startTime) if block.isNoData(j + wStartNumber, i + hStartNumber): j += 1 continue altitude = block.value(j + wStartNumber, i + hStartNumber) trees = define._trees tolerance = define._tolerance point = QgsPoint(xStartValue + (j + wStartNumber) * xOffSet + xOffSet / 2, yStartValue - (i + hStartNumber) * yOffSet - yOffSet / 2) position = Point3D() positionDegree = Point3D() if obstacleUnits == QGis.Meters: position = Point3D(point.x(), point.y(), altitude) if obstacleUnits != define._units: positionDegree = QgisHelper.Meter2DegreePoint3D(position) else: positionDegree = Point3D(point.x(), point.y(), altitude) if obstacleUnits != define._units: position = QgisHelper.Degree2MeterPoint3D(positionDegree) featureId = featureID layerId = obstacleLayer.id() obstacle = Obstacle(name, position, layerId, featureId, None, trees, mocMultiplier, tolerance) obstacle.positionDegree = positionDegree # middleTime = time.time() # print "middleTime" + str(middleTime) # obstacle.positionDegree = positionDegree obstacleTable.checkObstacle(obstacle) self.lock.acquire() try: obstacleTable.progress.setValue(obstacleTable.progress.value() + 1) QApplication.processEvents() finally: self.lock.release() # endTime = time.time() # print "endTime" + str(endTime) j += 1 featureID += 1 # obstacle = None # print i i += 1
def makePrimaryAreaOrSecondaryArea(self, geomList, areaType): pointArrayInner = geomList[0] pointArray1Outer = geomList[1] innerStartPoint = pointArrayInner[0] innerEndPoint = pointArrayInner[1] innerBulge = pointArrayInner[2] outerStartPoint = pointArray1Outer[0] outerEndPoint = pointArray1Outer[1] outerBulge = pointArray1Outer[2] line0 = QgsGeometry.fromPolyline([innerStartPoint, outerStartPoint]) line1 = QgsGeometry.fromPolyline([innerEndPoint, outerEndPoint]) # for i in range(1, len(pointArray0)): if line0.intersects(line1): tempPoint = Point3D(outerStartPoint.get_X(), outerStartPoint.get_Y()) outerStartPoint = Point3D(outerEndPoint.get_X(), outerEndPoint.get_Y()) outerEndPoint = Point3D(tempPoint.get_X(), tempPoint.get_Y()) outerBulge = -outerBulge if areaType == ProtectionAreaType.Primary: polylineArea = PolylineArea() polylineArea.Add(PolylineAreaPoint(innerStartPoint, innerBulge)) polylineArea.Add(PolylineAreaPoint(innerEndPoint)) polylineArea.Add(PolylineAreaPoint(outerEndPoint, -outerBulge)) polylineArea.Add(PolylineAreaPoint(outerStartPoint)) return PrimaryObstacleArea(polylineArea) elif areaType == ProtectionAreaType.Secondary: if innerBulge == 0 and outerBulge == 0: return SecondaryObstacleArea(innerStartPoint, innerEndPoint, outerStartPoint, outerEndPoint, MathHelper.getBearing(innerStartPoint, innerEndPoint)) elif innerBulge != 0 and outerBulge != 0: if round(innerBulge, 1) != round(outerBulge, 1): return None innerCenterPoint = MathHelper.smethod_71(innerStartPoint, innerEndPoint, innerBulge) outerCenterPoint = MathHelper.smethod_71(outerStartPoint, outerEndPoint, outerBulge) innerRadius = MathHelper.calcDistance(innerCenterPoint, innerStartPoint); outerRadius = MathHelper.calcDistance(outerCenterPoint, outerStartPoint); bearing = (MathHelper.getBearing(innerCenterPoint, innerStartPoint) + MathHelper.getBearing(innerCenterPoint, innerEndPoint)) / 2 innerMiddlePoint = MathHelper.distanceBearingPoint(innerCenterPoint, bearing, innerRadius) if round(MathHelper.smethod_60(innerStartPoint, innerMiddlePoint, innerEndPoint), 4) != round(outerBulge, 4): bearing += 3.14159265358979 innerMiddlePoint = MathHelper.distanceBearingPoint(innerCenterPoint, bearing, innerRadius) bearing = (MathHelper.getBearing(outerCenterPoint, outerStartPoint) + MathHelper.getBearing(outerCenterPoint, outerEndPoint)) / 2 outerMiddlePoint = MathHelper.distanceBearingPoint(outerCenterPoint, bearing, outerRadius) if round(MathHelper.smethod_60(outerStartPoint, outerMiddlePoint, outerEndPoint), 4) != round(outerBulge, 4): bearing += 3.14159265358979 outerMiddlePoint = MathHelper.distanceBearingPoint(outerCenterPoint, bearing, outerRadius) return SecondaryObstacleArea(innerStartPoint, innerMiddlePoint, innerEndPoint, outerStartPoint, None, outerMiddlePoint, outerEndPoint, innerBulge, innerBulge) return None
def get_Point3d(self): if (not self.IsValid): raise Messages.ERR_INVALID_OR_INCOMPLETE_POSITION if (self.xy): if (self.altitude == None or math.isinf(self.altitude)): return Point3D(self.xlat, self.ylon, 0) return Point3D(self.xlat, self.ylon, self.altitude) result, num, num1 = Geo.smethod_3(Degrees.smethod_1(self.xlat), Degrees.smethod_5(self.ylon)) if (not result): raise "Geo.LastError" if (self.altitude == None or math.isinf(self.altitude)): return Point3D(num, num1, 0) return Point3D(num, num1, self.altitude)
def basedOnCmbObj_Event_0(self): if self.currentLayer == None or not self.currentLayer.isValid(): return if len(self.vorDmeFeatureArray) == 0: return layer = self.currentLayer idx = layer.fieldNameIndex('Type') idxName = layer.fieldNameIndex('Name') idxLat = layer.fieldNameIndex('Latitude') idxLong = layer.fieldNameIndex('Longitude') idxAltitude = layer.fieldNameIndex('Altitude') feat = self.vorDmeFeatureArray.__getitem__( self.parametersPanel.cmbBasedOn.SelectedItem) attrValue = feat.attributes()[idxLat].toDouble() lat = attrValue[0] attrValue = feat.attributes()[idxLong].toDouble() long = attrValue[0] attrValue = feat.attributes()[idxAltitude].toDouble() alt = attrValue[0] self.parametersPanel.pnlNavAid.Point3d = Point3D(long, lat, alt)
def __init__(self, point3d_0 = None, bulge = 0.0): # private Point3d position; if not isinstance(point3d_0, Point3D): point3d_0 = Point3D(point3d_0.x(), point3d_0.y()) self.position = point3d_0 # private double bulge; self.bulge = bulge
def autoCalcFinishMagVar(self): try: if self.parametersPanel.chbAutoFinishMagVar.Checked: finishPt = None finishLat = None finishLon = None degree3 = None num = None result, degree, degree1 = self.parametersPanel.pnlStartPosP.method_3( ) if (result): value = float(self.parametersPanel.txtForwardTP.Value) value1 = float(self.parametersPanel.txtForwardTP.Value) distance = self.parametersPanel.txtDistanceP.Value result1, degree2, degree3, num = Geo.smethod_6( self.parametersPanel.cmbCalculationTypeP.SelectedItem, degree, degree1, value, distance) if (result1): finishPt = Point3D(degree3, degree2) finishLat = degree2 finishLon = degree3 if finishPt != None and self.model != None and self.date != None: # result, degree, degree1 = self.parametersPanel.pnlStartPosP.method_3(); result2, degree2 = Geo.smethod_7(finishLat, finishLon, Altitude(0), self.model, self.date) if (result2): degree2 = round(degree2, 2) self.parametersPanel.pnlVarFinishP.Value = degree2 except: pass
def getContact(self, point3d, radBetweenTangentAndPoint=None, spiralNumber=None, turnDirection=None): a = MathHelper.calcDistance(point3d, self.Center[spiralNumber]) b = MathHelper.calcDistance(self.Center[spiralNumber], self.Finish[spiralNumber]) A = math.pi / 2 - radBetweenTangentAndPoint B = math.asin(math.sin(A) * b / a) C = math.pi - A - B bearing = 0.0 middlePt = Point3D() if self.Direction == TurnDirection.Right: bearing = MathHelper.smethod_4( MathHelper.getBearing(self.Center[spiralNumber], point3d) - C) middlePt = MathHelper.distanceBearingPoint( self.Center[spiralNumber], MathHelper.smethod_4(bearing - 0.001), self.Radius[spiralNumber]) elif self.Direction == TurnDirection.Left: bearing = MathHelper.smethod_4( MathHelper.getBearing(self.Center[spiralNumber], point3d) + C) middlePt = MathHelper.distanceBearingPoint( self.Center[spiralNumber], MathHelper.smethod_4(bearing + 0.001), self.Radius[spiralNumber]) return middlePt, MathHelper.distanceBearingPoint( self.Center[spiralNumber], bearing, self.Radius[0])
def method_0(self, point3dCollection_0): self.time = 0.0 point3d = Point3D(0, 0, 0) matrix3d = Matrix3d.Displacement(self.ptBase.GetVectorTo(point3d)) matrix3d1 = Matrix3d.Rotation(self.trackRad, Vector3d(0, 0, 1), point3d) item = point3dCollection_0[0] point3d1 = item.TransformBy(matrix3d).TransformBy(matrix3d1) point3d2 = point3d1 point3d3 = point3d1 point3d4 = point3d1 point3d5 = point3d1 for i in range(1, len(point3dCollection_0)): item1 = point3dCollection_0[i] point3d6 = item1.TransformBy(matrix3d).TransformBy(matrix3d1) if (point3d6.get_Y() > point3d5.get_Y()): point3d5 = point3d6 if (point3d6.get_X() > point3d4.get_X()): point3d4 = point3d6 if (point3d6.get_Y() < point3d3.get_Y()): point3d3 = point3d6 if (point3d6.get_X() < point3d2.get_X()): point3d2 = point3d6 point3d7 = point3d5.TransformBy(Matrix3d.Inverse(matrix3d1)) point3d5 = point3d7.TransformBy(Matrix3d.Inverse(matrix3d)) point3d8 = point3d4.TransformBy(Matrix3d.Inverse(matrix3d1)) point3d4 = point3d8.TransformBy(Matrix3d.Inverse(matrix3d)) point3d9 = point3d3.TransformBy(Matrix3d.Inverse(matrix3d1)) point3d3 = point3d9.TransformBy(Matrix3d.Inverse(matrix3d)) point3d10 = point3d2.TransformBy(Matrix3d.Inverse(matrix3d1)) point3d2 = point3d10.TransformBy(Matrix3d.Inverse(matrix3d)) self.bounds = [point3d5, point3d4, point3d3, point3d2]
def btnConstruct_Click(self): flag = FlightPlanBaseSimpleDlg.btnConstruct_Click(self) if not flag: return num = 0.0 point3d = Point3D() point3d1 = Point3D() if not self.method_27(True): return point3d2 = self.parametersPanel.pnlTHR.getPoint3D() point3d3 = self.parametersPanel.pnlNavAid.getPoint3D() num1 = Unit.ConvertDegToRad(float(self.parametersPanel.txtDirection.Value)) point3d4 = MathHelper.distanceBearingPoint(point3d2, num1 + 3.14159265358979, 1400) num2 = -1 if MathHelper.smethod_115(point3d3, point3d2, point3d4): num2 = 1 point3d5 = MathHelper.distanceBearingPoint(point3d4, num2 * 1.5707963267949 + num1, 150) point3d6 = MathHelper.distanceBearingPoint(point3d5, num1 + 3.14159265358979, 17120) if self.parametersPanel.cmbCategory.currentIndex() != 1: num = 0.267949192 elif self.parametersPanel.cmbCategory.currentIndex() == 1: num = 0.577350269 point3d7 = MathHelper.distanceBearingPoint(point3d6, num1 - num2 * 1.5707963267949, 150 + num * 17120) MathHelper.distanceBearingPoint(point3d5, num1, 150 / num) point3d = MathHelper.getIntersectionPoint(point3d3, MathHelper.distanceBearingPoint(point3d3, num1 + 1.5707963267949, 100), point3d2, point3d4) if point3d == None: raise UserWarning, Messages.ERR_FAILED_TO_CALCULATE_INTERSECTION_POINT num3 = MathHelper.calcDistance(point3d3, point3d) / 0.087488664 if MathHelper.calcDistance(point3d, point3d4) >= num3: point3d1 = point3d4 MathHelper.distanceBearingPoint(point3d6, num1 - num2 * 1.5707963267949, 1525.321791) else: point3d1 = MathHelper.distanceBearingPoint(point3d, num1 + 3.14159265358979, num3) MathHelper.distanceBearingPoint(point3d6, num1 - num2 * 1.5707963267949, 150 + 0.087488664 * (17120 - MathHelper.calcDistance(point3d4, point3d1))) MathHelper.distanceBearingPoint(point3d4, num1 + 3.14159265358979, 17120); constructionLayer = AcadHelper.createVectorLayer("AAConstruction", QGis.Line) AcadHelper.setGeometryAndAttributesInLayer(constructionLayer, PolylineArea([point3d7, point3d4])) AcadHelper.setGeometryAndAttributesInLayer(constructionLayer, PolylineArea([point3d1, point3d4, point3d5])) QgisHelper.appendToCanvas(define._canvas, [constructionLayer], SurfaceTypes.ApproachAlignment) QgisHelper.zoomToLayers([constructionLayer]) self.resultLayerList = [constructionLayer]
def resultPointValueListMethod(self, resultValueList): if len(resultValueList) > 0: point3d = Point3D(float(resultValueList[1]), float(resultValueList[2]), float(resultValueList[3])) resultDlg, procEntityBase = DlgAixmSelectPosition.smethod_0(self, self.data, point3d, ProcEntityListType.Holding) if (resultDlg and procEntityBase != None): if (not self.pnlBasedOn.Contains(procEntityBase)): self.pnlBasedOn.Add(procEntityBase); self.pnlBasedOn.SelectedIndex = self.pnlBasedOn.IndexOf(procEntityBase);
def basedOnCmbFill(self, layer, basedOnCmbObj, vorDmePositionPanelObj): basedOnCmbObj.Clear() vorDmePositionPanelObj.Point3d = None idx = layer.fieldNameIndex('Type') idxName = layer.fieldNameIndex('Name') idxLat = layer.fieldNameIndex('Latitude') idxLong = layer.fieldNameIndex('Longitude') idxAltitude = layer.fieldNameIndex('Altitude') vorDmeList = [] vorDmeFeatureList = [] if idx >= 0: featIter = layer.getFeatures() for feat in featIter: attrValue = feat.attributes()[idx].toString() attrValue = QString(attrValue) attrValue = attrValue.replace(" ", "") attrValue = attrValue.replace("/", "") attrValue = attrValue.toUpper() if self.parametersPanel.cmbNavAidType.SelectedIndex == 0: if attrValue == "VOR" or attrValue == "VORDME" or attrValue == "VORTAC" or attrValue == "TACAN": vorDmeList.append(attrValue) vorDmeFeatureList.append(feat) else: if attrValue == "NDB" or attrValue == "NDBDME": vorDmeList.append(attrValue) vorDmeFeatureList.append(feat) if len(vorDmeList) != 0: i = -1 basedOnCmbObjItems = [] resultfeatDict = dict() for feat in vorDmeFeatureList: typeValue = feat.attributes()[idx].toString() nameValue = feat.attributes()[idxName].toString() basedOnCmbObjItems.append(typeValue + " " + nameValue) resultfeatDict.__setitem__(typeValue + " " + nameValue, feat) basedOnCmbObjItems.sort() basedOnCmbObj.Items = basedOnCmbObjItems basedOnCmbObj.SelectedIndex = 0 # if idxAttributes feat = resultfeatDict.__getitem__(basedOnCmbObjItems[0]) attrValue = feat.attributes()[idxLat].toDouble() lat = attrValue[0] attrValue = feat.attributes()[idxLong].toDouble() long = attrValue[0] attrValue = feat.attributes()[idxAltitude].toDouble() alt = attrValue[0] vorDmePositionPanelObj.Point3d = Point3D(long, lat, alt) self.connect(basedOnCmbObj, SIGNAL("Event_0"), self.basedOnCmbObj_Event_0) return resultfeatDict return dict()
def MovePolyLine(polylineArea, dx, dy): resultPolylineArea = PolylineArea() if not isinstance(polylineArea, PolylineArea) or len(polylineArea) == 0: return None for polylineAreaPt in polylineArea: pt = polylineAreaPt.Position newPt = Point3D(pt.x() - dx, pt.y() - dy, pt.get_Z()) resultPolylineArea.Add(PolylineAreaPoint(newPt, polylineAreaPt.bulge)) return resultPolylineArea
def set_Position(self, point3d): self.position = point3d if self.layerType == QGis.Line: self.geometry = PolylineArea([ point3d, Point3D(point3d.get_X() + 0.000000001, point3d.get_Y()) ]) elif self.layerType == QGis.Point: self.geometry = point3d elif self.layerType == QGis.Polygon: self.geometry = PolylineArea([ point3d, Point3D(point3d.get_X() + 0.000000001, point3d.get_Y()), Point3D(point3d.get_X() + 0.000000001, point3d.get_Y() + 0.000000001), Point3D(point3d.get_X(), point3d.get_Y() + 0.000000001), point3d ])
def __init__(self, point3d_0=None, ficorStatus_0=None): self.status = None self.point = None if point3d_0 == None: self.point = Point3D.get_Origin() self.status = ficorStatus_0 return if ficorStatus_0 == None: self.point = point3d_0 self.status = FicorStatus.OK return
def __init__(self, point3d_0=Point3D(), double_0=0.0, double_1=0.0, double_2=0.0, double_3=0.0): IBaroVnavSurface.__init__(self) self.Type = "Z" IBaroVnavSurface.method_2(self, point3d_0, double_0) self.xstart = double_1 self.tanslope = double_3 self.mocma = double_2
def vmethod_3(self, point3d_0, bool_0): point3d = Point3D() point3d = MathHelper.getIntersectionPoint( self.ptTHR, self.ptEND, point3d_0, MathHelper.distanceBearingPoint(point3d_0, self.trm90, 100)) num = MathHelper.calcDistance(self.ptTHR, point3d) if not MathHelper.smethod_115(point3d, self.ptTHR, self.ptTHRm90): num = num + self.xstart else: num = self.xstart - min([num, self.xstart]) num1 = num * self.tanslope if (bool_0): num1 = num1 + self.mocma return self.ptTHR.z() + num1
def vmethod_3(self, point3d_0, bool_0): point3d = Point3D() point3d = MathHelper.getIntersectionPoint( self.ptTHR, self.ptEND, point3d_0, MathHelper.distanceBearingPoint(point3d_0, self.trm90, 100)) num = 0 if (MathHelper.smethod_115(point3d, self.ptTHR, self.ptTHRm90)): num = max([ MathHelper.calcDistance(self.ptTHR, point3d), self.xstart ]) - self.xstart num1 = 0 if (bool_0): num1 = self.mocma + num * self.tanslope return self.ptTHR.z() + num1
def tableViewObstacleMouseTeleaseEvent_rightButton(self, e): if self.obstaclesModel == None: return featID = self.obstaclesModel.data( self.obstaclesModel.index( self.selectedObstacleMoselIndex.row(), self.obstaclesModel.IndexObjectId)).toString() layerID = self.obstaclesModel.data( self.obstaclesModel.index( self.selectedObstacleMoselIndex.row(), self.obstaclesModel.IndexLayerId)).toString() name = self.obstaclesModel.data( self.obstaclesModel.index( self.selectedObstacleMoselIndex.row(), self.obstaclesModel.IndexName)).toString() xValue = self.obstaclesModel.data( self.obstaclesModel.index(self.selectedObstacleMoselIndex.row(), self.obstaclesModel.IndexX)).toString() yValue = self.obstaclesModel.data( self.obstaclesModel.index(self.selectedObstacleMoselIndex.row(), self.obstaclesModel.IndexY)).toString() altitudeMValue = self.obstaclesModel.data( self.obstaclesModel.index( self.selectedObstacleMoselIndex.row(), self.obstaclesModel.IndexAltM)).toString() surfaceName = self.obstaclesModel.data( self.obstaclesModel.index( self.selectedObstacleMoselIndex.row(), self.obstaclesModel.IndexSurface)).toString() ocaMValue = self.obstaclesModel.data( self.obstaclesModel.index( self.selectedObstacleMoselIndex.row(), self.obstaclesModel.IndexOcaM)).toString() # ocaMValue = self.obstaclesModel.data(self.obstaclesModel.index(self.selectedObstacleMoselIndex.row(), self.obstaclesModel.IndexOcaM)).toString() obstacle = Obstacle( name, Point3D(float(xValue), float(yValue), float(altitudeMValue)), layerID, featID, None, 0.0, self.obstaclesModel.MocMultiplier, 0.0) self.changedCriticalObstacleValue = { "Obstacle": obstacle, "SurfaceName": surfaceName, "OcaM": float(ocaMValue) if ocaMValue != "" else None } menu = QMenu() actionSetCriticalObst = QgisHelper.createAction( menu, "Set Most Critical Obstacles", self.menuSetCriticalObstClick) menu.addAction(actionSetCriticalObst) menu.exec_(self.ui.tblObstacles.mapToGlobal(e.pos()))
def __init__(self, point3d_0=Point3D(), double_0=0.0, double_1=0.0, double_2=0.0, double_3=0.0, double_4=0.0): IBaroVnavSurface.__init__(self) self.Type = "H" IBaroVnavSurface.method_2(self, point3d_0, double_0) self.xstart = min([double_1, double_2]) self.tanslope = (max([double_3, double_4]) - min( [double_3, double_4])) / (max([double_1, double_2]) - min([double_1, double_2])) self.mocfa = max([double_3, double_4]) self.mocma = min([double_3, double_4])
def aerodromeCmbObj_Event_0(self): if len(self.arpFeatureArray) == 0: return self.parametersPanel.pnlNavAid.Point3d = None self.thrPoint3d = None self.thrEndPoint3d = None idxName = self.currentLayer.fieldNameIndex('Name') idxLat = self.currentLayer.fieldNameIndex('Latitude') idxLong = self.currentLayer.fieldNameIndex('Longitude') idxAltitude = self.currentLayer.fieldNameIndex('Altitude') self.rwyFeatureArray = [] # if idxAttributes for feat in self.arpFeatureArray: attrValue = feat.attributes()[idxName].toString() if attrValue != self.parametersPanel.cmbAerodrome.SelectedItem: continue attrValue = feat.attributes()[idxLat].toDouble() lat = attrValue[0] attrValue = feat.attributes()[idxLong].toDouble() long = attrValue[0] attrValue = feat.attributes()[idxAltitude].toDouble() alt = attrValue[0] self.parametersPanel.pnlNavAid.Point3d = Point3D(long, lat, alt) break idxAttr = self.currentLayer.fieldNameIndex('Attributes') if idxAttr >= 0: self.parametersPanel.cmbRwyDir.Clear() rwyFeatList = [] featIter = self.currentLayer.getFeatures() for feat in featIter: attrValue = feat.attributes()[idxAttr].toString() if attrValue == self.parametersPanel.cmbAerodrome.SelectedItem: attrValue = feat.attributes()[idxName].toString() s = attrValue.replace(" ", "") compStr = s.left(6).toUpper() if compStr == "THRRWY": valStr = s.right(s.length() - 6) self.parametersPanel.cmbRwyDir.Add( self.parametersPanel.cmbAerodrome.SelectedItem + " RWY " + valStr) rwyFeatList.append(feat) self.rwyFeatureArray = rwyFeatList self.rwyDirCmbObj_Event_0()
def TransformBy(self, matrix3d): polylineAreaPointList = [] for polylineAreaPoint in self: point3d = polylineAreaPoint.Position pointMatrix = [point3d.get_X(), point3d.get_Y(), point3d.get_Z(), 1] resultMatrix = [] for matrix in matrix3d: matrix = numpy.multiply(matrix, pointMatrix) value = 0.0 for num in matrix: value += num resultMatrix.append(value) polylineAreaPointList.append(PolylineAreaPoint(Point3D(resultMatrix[0], resultMatrix[1], resultMatrix[2]), polylineAreaPoint.Bulge)) resultPolylineArea = PolylineArea() for polylineAreaPoint in polylineAreaPointList: resultPolylineArea.Add(polylineAreaPoint) return resultPolylineArea
def basedOnCmbFill(self, layer, basedOnCmbObj, vorDmePositionPanelObj): idx = layer.fieldNameIndex('Type') idxName = layer.fieldNameIndex('Name') idxLat = layer.fieldNameIndex('Latitude') idxLong = layer.fieldNameIndex('Longitude') idxAltitude = layer.fieldNameIndex('Altitude') vorDmeList = [] vorDmeFeatureList = [] if idx >= 0: featIter = layer.getFeatures() for feat in featIter: attrValue = feat.attributes()[idx].toString() attrValue = QString(attrValue) attrValue = attrValue.replace(" ", "") attrValue = attrValue.replace("/", "") attrValue = attrValue.toUpper() if attrValue == "DME": vorDmeList.append(attrValue) vorDmeFeatureList.append(feat) if len(vorDmeList) != 0: i = -1 basedOnCmbObjItems = [] for feat in vorDmeFeatureList: typeValue = feat.attributes()[idx].toString() nameValue = feat.attributes()[idxName].toString() basedOnCmbObjItems.append(typeValue + " " + nameValue) basedOnCmbObjItems.sort() basedOnCmbObj.Items = basedOnCmbObjItems basedOnCmbObj.SelectedIndex = 0 # if idxAttributes feat = vorDmeFeatureList[0] attrValue = feat.attributes()[idxLat].toDouble() lat = attrValue[0] attrValue = feat.attributes()[idxLong].toDouble() long = attrValue[0] attrValue = feat.attributes()[idxAltitude].toDouble() alt = attrValue[0] vorDmePositionPanelObj.Point3d = Point3D(long, lat, alt) self.connect(basedOnCmbObj, SIGNAL("Event_0"), self.basedOnCmbObj_Event_0) return vorDmeFeatureList
def IntersectWithNew(self, other, tolerance = 0.0, result = []): # result = [] minePointList = self.getQgsPointList() otherPointList = other.getQgsPointList() for i in range(1, len(minePointList)): mineGeom = QgsGeometry.fromPolyline([minePointList[i - 1], minePointList[i]]) for j in range(1, len(otherPointList)): otherGeom = QgsGeometry.fromPolyline([otherPointList[j - 1], otherPointList[j]]) if mineGeom.intersects(otherGeom): intersectGeom = mineGeom.intersection(otherGeom) pt = intersectGeom.asPoint() if pt.x() != 0 and pt.y() != 0: result.append(Point3D(pt.x(), pt.y())) elif mineGeom.touches(otherGeom): pass return len(result) > 0, result
def LoadData(self, reader, version): QARecord.LoadData(reader, version) for case in switch(version): if case(QAFileVersion.V8) or case(QAFileVersion.V8_1) or case( QAFileVersion.V10): self.modelSpace = reader.ReadBoolean() self.viewSize = reader.ReadDouble() self.viewCenter = Point3D(reader.ReadDouble(), reader.ReadDouble(), reader.ReadDouble()) self.imageFormatType = reader.ReadByte() self.imageRatio = reader.ReadDouble() num = reader.ReadInt64() self.value.SetLength(num) # self.value.Seek((long)0, SeekOrigin.Begin); self.value.write(reader.ReadBytes(int(num)), 0, int(num)) return else: raise SystemError