7import QGroundControl.Controls
8import QGroundControl.FlightMap
11 property color arrowColor: "white"
12 property var fromCoord: QtPositioning.coordinate()
13 property var toCoord: QtPositioning.coordinate()
14 property int arrowPosition: 1 ///< 1: first quarter, 2: halfway, 3: last quarter
16 property var _map: parent
17 property real _arrowSize: 15
18 property real _arrowHeading: 0
20 function _updateArrowDetails() {
21 if (fromCoord && fromCoord.isValid && toCoord && toCoord.isValid) {
22 var lineDistanceQuarter = fromCoord.distanceTo(toCoord) / 4
23 coordinate = fromCoord.atDistanceAndAzimuth(lineDistanceQuarter * arrowPosition, fromCoord.azimuthTo(toCoord))
24 _arrowHeading = coordinate.azimuthTo(toCoord) // Account for changing bearing along great circle path
26 coordinate = QtPositioning.coordinate()
31 onFromCoordChanged: _updateArrowDetails()
32 onToCoordChanged: _updateArrowDetails()
41 var ctx = getContext("2d");
43 ctx.strokeStyle = arrowColor
45 ctx.moveTo(_arrowSize, 0);
46 ctx.lineTo(_arrowSize * 2, _arrowSize)
49 ctx.moveTo(_arrowSize, 0);
50 ctx.lineTo(0, _arrowSize)