diff --git a/src/PlanView/FWLandingPatternMapVisual.qml b/src/PlanView/FWLandingPatternMapVisual.qml index b6fc98884562e196a6efabe84b8c4016dbeb816c..03c85493e49022c5e9d20bc508e4616d94ac4d5c 100644 --- a/src/PlanView/FWLandingPatternMapVisual.qml +++ b/src/PlanView/FWLandingPatternMapVisual.qml @@ -37,6 +37,7 @@ Item { readonly property int _loiterPointIndex: 1 readonly property int _loiterRadiusIndex: 2 readonly property int _landPointIndex: 3 + readonly property int _landingAreaIndex: 4 function hideItemVisuals() { for (var i=0; i<_itemVisuals.length; i++) { @@ -59,6 +60,9 @@ Item { itemVisual = landPointComponent.createObject(map) map.addMapItem(itemVisual) _itemVisuals[_landPointIndex] = itemVisual + itemVisual = landingAreaComponent.createObject(map) + map.addMapItem(itemVisual) + _itemVisuals[_landingAreaIndex] = itemVisual } } @@ -218,7 +222,6 @@ Item { } } - // Loiter radius visual Component { id: loiterRadiusComponent @@ -232,7 +235,6 @@ Item { } } - // Land point Component { id: landPointComponent @@ -252,4 +254,24 @@ Item { } } } + + Component { + id: landingAreaComponent + + MapRectangle { + 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 landingLength: 100 + readonly property real angleRadians: Math.atan((landingWidth / 2) / (landingLength / 2)) + readonly property real angleDegrees: angleRadians * (180 / Math.PI) + readonly property real hypotenuse: (landingWidth / 2) / Math.sin(angleRadians) + } + } }