/**************************************************************************** * * (c) 2009-2016 QGROUNDCONTROL PROJECT * * QGroundControl is licensed according to the terms in the file * COPYING.md in the root of the source code directory. * ****************************************************************************/ import QtQuick 2.3 import QtQuick.Controls 1.2 import QtLocation 5.3 import QtPositioning 5.3 import QGroundControl 1.0 import QGroundControl.ScreenTools 1.0 import QGroundControl.Palette 1.0 import QGroundControl.Controls 1.0 import QGroundControl.FlightMap 1.0 /// Base control for both Survey and Corridor Scan map visuals Item { id: _root property var map ///< Map control to place item in property var _missionItem: object property var _mapPolygon: object.surveyAreaPolygon property bool _currentItem: object.isCurrentItem property var _transectPoints: _missionItem.visualTransectPoints property int _transectCount: _transectPoints.length / (_hasTurnaround ? 4 : 2) property bool _hasTurnaround: _missionItem.turnAroundDistance.rawValue !== 0 property int _firstTrueTransectIndex: _hasTurnaround ? 1 : 0 property int _lastTrueTransectIndex: _transectPoints.length - (_hasTurnaround ? 2 : 1) property int _lastPointIndex: _transectPoints.length - 1 property bool _showPartialEntryExit: !_currentItem && _hasTurnaround &&_transectPoints.length >= 2 property var _fullTransectsComponent: null property var _entryTransectsComponent: null property var _exitTransectsComponent: null property var _entryCoordinate property var _exitCoordinate property var _dynamicComponents: [ ] signal clicked(int sequenceNumber) function _addVisualElements() { var toAdd = [ fullTransectsComponent, entryTransectComponent, exitTransectComponent, entryPointComponent, exitPointComponent, entryArrow1Component, entryArrow2Component, exitArrow1Component, exitArrow2Component ] for (var i=0; i 3 property int nextTrueTransectIndex: _firstTrueTransectIndex + (_hasTurnaround ? 4 : 2) } } Component { id: exitArrow1Component MapLineArrow { fromCoord: _transectPoints[_lastTrueTransectIndex - 1] toCoord: _transectPoints[_lastTrueTransectIndex] arrowPosition: 3 visible: _currentItem } } Component { id: exitArrow2Component MapLineArrow { fromCoord: _transectPoints[prevTrueTransectIndex - 1] toCoord: _transectPoints[prevTrueTransectIndex] arrowPosition: 13 visible: _currentItem && _transectCount > 3 property int prevTrueTransectIndex: _lastTrueTransectIndex - (_hasTurnaround ? 4 : 2) } } // Exit point Component { id: exitPointComponent MapQuickItem { anchorPoint.x: sourceItem.anchorPointX anchorPoint.y: sourceItem.anchorPointY z: QGroundControl.zOrderMapItems coordinate: _missionItem.exitCoordinate visible: _missionItem.exitCoordinate.isValid sourceItem: MissionItemIndexLabel { index: _missionItem.lastSequenceNumber checked: _missionItem.isCurrentItem onClicked: _root.clicked(_missionItem.sequenceNumber) } } } }