7 changed files with 250 additions and 53 deletions
@ -0,0 +1,64 @@ |
|||||||
|
/**************************************************************************** |
||||||
|
* |
||||||
|
* (c) 2009-2016 QGROUNDCONTROL PROJECT <http://www.qgroundcontrol.org> |
||||||
|
* |
||||||
|
* QGroundControl is licensed according to the terms in the file |
||||||
|
* COPYING.md in the root of the source code directory. |
||||||
|
* |
||||||
|
****************************************************************************/ |
||||||
|
|
||||||
|
import QtQuick 2.2 |
||||||
|
import QtQuick.Controls 1.2 |
||||||
|
import QtLocation 5.3 |
||||||
|
import QtPositioning 5.2 |
||||||
|
|
||||||
|
import QGroundControl.ScreenTools 1.0 |
||||||
|
import QGroundControl.Palette 1.0 |
||||||
|
import QGroundControl.Controls 1.0 |
||||||
|
|
||||||
|
/// Fixed Wing Landing Pattern map visuals |
||||||
|
Item { |
||||||
|
property var map ///< Map control to place item in |
||||||
|
|
||||||
|
property var _loiterPoint |
||||||
|
property var _flightPath |
||||||
|
|
||||||
|
Component.onCompleted: { |
||||||
|
_flightPath = flightPathComponent.createObject(map) |
||||||
|
_loiterPoint = loiterComponent.createObject(map) |
||||||
|
map.addMapItem(_flightPath) |
||||||
|
map.addMapItem(_loiterPoint) |
||||||
|
} |
||||||
|
|
||||||
|
Component.onDestruction: { |
||||||
|
_loiterPoint.destroy() |
||||||
|
_flightPath.destroy() |
||||||
|
} |
||||||
|
|
||||||
|
// Flight path |
||||||
|
Component { |
||||||
|
id: flightPathComponent |
||||||
|
|
||||||
|
MapPolyline { |
||||||
|
line.color: "white" |
||||||
|
line.width: 2 |
||||||
|
path: [ object.loiterCoordinate, object.exitCoordinate ] |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
// Loiter point |
||||||
|
Component { |
||||||
|
id: loiterComponent |
||||||
|
|
||||||
|
MapQuickItem { |
||||||
|
anchorPoint.x: sourceItem.width / 2 |
||||||
|
anchorPoint.y: sourceItem.height / 2 |
||||||
|
coordinate: object.loiterCoordinate |
||||||
|
|
||||||
|
sourceItem: |
||||||
|
MissionItemIndexLabel { |
||||||
|
label: "L" |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
@ -1,2 +1,41 @@ |
|||||||
[ |
[ |
||||||
|
{ |
||||||
|
"name": "Landing distance", |
||||||
|
"shortDescription": "Distance between landing and loiter points.", |
||||||
|
"type": "double", |
||||||
|
"units": "m", |
||||||
|
"decimalPlaces": 1, |
||||||
|
"defaultValue": 100.0 |
||||||
|
}, |
||||||
|
{ |
||||||
|
"name": "Landing heading", |
||||||
|
"shortDescription": "Heading from land point to loiter point.", |
||||||
|
"type": "double", |
||||||
|
"units": "deg", |
||||||
|
"decimalPlaces": 0, |
||||||
|
"defaultValue": 0.0 |
||||||
|
}, |
||||||
|
{ |
||||||
|
"name": "Loiter altitude", |
||||||
|
"shortDescription": "Altitude to loiter prior to landing.", |
||||||
|
"type": "double", |
||||||
|
"units": "m", |
||||||
|
"decimalPlaces": 1, |
||||||
|
"defaultValue": 40.0 |
||||||
|
}, |
||||||
|
{ |
||||||
|
"name": "Loiter radius", |
||||||
|
"shortDescription": "Loiter radius.", |
||||||
|
"type": "double", |
||||||
|
"decimalPlaces": 1, |
||||||
|
"min": 0.1, |
||||||
|
"units": "m", |
||||||
|
"defaultValue": 75.0 |
||||||
|
}, |
||||||
|
{ |
||||||
|
"name": "Clockwise loiter", |
||||||
|
"shortDescription": "If true, loiter will be clockwise. False, loiter will be counter-clockwise.", |
||||||
|
"type": "bool", |
||||||
|
"defaultValue": true |
||||||
|
} |
||||||
] |
] |
||||||
|
Loading…
Reference in new issue