Browse Source

Merge pull request #6259 from DonLakeFlyer/VertexReference

Corridor Scan: Fix bad Vertex reference
QGC4.4
Don Gagne 7 years ago committed by GitHub
parent
commit
c0fa493fb6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 7
      src/MissionManager/CorridorScanComplexItem.cc
  2. 6
      src/MissionManager/QGCMapPolygon.cc

7
src/MissionManager/CorridorScanComplexItem.cc

@ -305,12 +305,15 @@ void CorridorScanComplexItem::_rebuildCorridorPolygon(void)
QList<QGeoCoordinate> secondSideVertices = _corridorPolyline.offsetPolyline(-halfWidth); QList<QGeoCoordinate> secondSideVertices = _corridorPolyline.offsetPolyline(-halfWidth);
_surveyAreaPolygon.clear(); _surveyAreaPolygon.clear();
QList<QGeoCoordinate> rgCoord;
foreach (const QGeoCoordinate& vertex, firstSideVertices) { foreach (const QGeoCoordinate& vertex, firstSideVertices) {
_surveyAreaPolygon.appendVertex(vertex); rgCoord.append(vertex);
} }
for (int i=secondSideVertices.count() - 1; i >= 0; i--) { for (int i=secondSideVertices.count() - 1; i >= 0; i--) {
_surveyAreaPolygon.appendVertex(secondSideVertices[i]); rgCoord.append(secondSideVertices[i]);
} }
_surveyAreaPolygon.appendVertices(rgCoord);
} }
void CorridorScanComplexItem::_rebuildTransectsPhase1(void) void CorridorScanComplexItem::_rebuildTransectsPhase1(void)

6
src/MissionManager/QGCMapPolygon.cc

@ -371,7 +371,7 @@ QGeoCoordinate QGCMapPolygon::vertexCoordinate(int vertex) const
if (vertex >= 0 && vertex < _polygonPath.count()) { if (vertex >= 0 && vertex < _polygonPath.count()) {
return _polygonPath[vertex].value<QGeoCoordinate>(); return _polygonPath[vertex].value<QGeoCoordinate>();
} else { } else {
qWarning() << "QGCMapPolygon::vertexCoordinate bad vertex requested"; qWarning() << "QGCMapPolygon::vertexCoordinate bad vertex requested:count" << vertex << _polygonPath.count();
return QGeoCoordinate(); return QGeoCoordinate();
} }
} }
@ -530,6 +530,10 @@ double QGCMapPolygon::area(void) const
{ {
// https://www.mathopenref.com/coordpolygonarea2.html // https://www.mathopenref.com/coordpolygonarea2.html
if (_polygonPath.count() < 3) {
return 0;
}
double coveredArea = 0.0; double coveredArea = 0.0;
QList<QPointF> nedVertices = nedPolygon(); QList<QPointF> nedVertices = nedPolygon();
for (int i=0; i<nedVertices.count(); i++) { for (int i=0; i<nedVertices.count(); i++) {

Loading…
Cancel
Save