Commit c7ea53d4 authored by DonLakeFlyer's avatar DonLakeFlyer

Rotate landing area

parent 042f02b5
......@@ -36,8 +36,8 @@ Item {
readonly property int _flightPathIndex: 0
readonly property int _loiterPointIndex: 1
readonly property int _loiterRadiusIndex: 2
readonly property int _landPointIndex: 3
readonly property int _landingAreaIndex: 4
readonly property int _landingAreaIndex: 3
readonly property int _landPointIndex: 4
function hideItemVisuals() {
for (var i=0; i<_itemVisuals.length; i++) {
......@@ -57,12 +57,12 @@ Item {
itemVisual = loiterRadiusComponent.createObject(map)
map.addMapItem(itemVisual)
_itemVisuals[_loiterRadiusIndex] = itemVisual
itemVisual = landPointComponent.createObject(map)
map.addMapItem(itemVisual)
_itemVisuals[_landPointIndex] = itemVisual
itemVisual = landingAreaComponent.createObject(map)
map.addMapItem(itemVisual)
_itemVisuals[_landingAreaIndex] = itemVisual
itemVisual = landPointComponent.createObject(map)
map.addMapItem(itemVisual)
_itemVisuals[_landPointIndex] = itemVisual
}
}
......@@ -258,20 +258,36 @@ Item {
Component {
id: landingAreaComponent
MapRectangle {
MapPolygon {
z: QGroundControl.zOrderMapItems
border.width: 1
border.color: "black"
color: "green"
opacity: 0.5
topLeft: _missionItem.landingCoordinate.atDistanceAndAzimuth(hypotenuse, -angleDegrees)
bottomRight: _missionItem.landingCoordinate.atDistanceAndAzimuth(hypotenuse, 180 - angleDegrees)
readonly property real landingWidth: 10
readonly property real landingWidth: 15
readonly property real landingLength: 100
readonly property real angleRadians: Math.atan((landingWidth / 2) / (landingLength / 2))
readonly property real angleDegrees: angleRadians * (180 / Math.PI)
readonly property real angleDegrees: (angleRadians * (180 / Math.PI))
readonly property real hypotenuse: (landingWidth / 2) / Math.sin(angleRadians)
property real landingAreaAngle: _missionItem.landingCoordinate.azimuthTo(_missionItem.loiterTangentCoordinate)
function calcPoly() {
path = [ ]
addCoordinate(_missionItem.landingCoordinate.atDistanceAndAzimuth(hypotenuse, landingAreaAngle - angleDegrees))
addCoordinate(_missionItem.landingCoordinate.atDistanceAndAzimuth(hypotenuse, landingAreaAngle + angleDegrees))
addCoordinate(_missionItem.landingCoordinate.atDistanceAndAzimuth(hypotenuse, landingAreaAngle + (180 - angleDegrees)))
addCoordinate(_missionItem.landingCoordinate.atDistanceAndAzimuth(hypotenuse, landingAreaAngle - (180 - angleDegrees)))
}
Component.onCompleted: calcPoly()
Connections {
target: _missionItem
onLandingCoordinateChanged: calcPoly()
onLoiterTangentCoordinateChanged: calcPoly()
}
}
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment