|
QGroundControl
Ground Control Station for MAVLink Drones
|
The QGCMapPolygon class provides a polygon which can be displayed on a map using a map visuals control. More...
#include <QGCMapPolygon.h>
Inheritance diagram for QGCMapPolygon:
Collaboration diagram for QGCMapPolygon:Signals | |
| void | countChanged (int count) |
| void | pathChanged (void) |
| void | dragPathChanged (void) |
| void | dirtyChanged (bool dirty) |
| void | cleared (void) |
| void | centerChanged (QGeoCoordinate center) |
| void | dragCenterChanged (QGeoCoordinate center) |
| void | centerDragChanged (bool centerDrag) |
| void | vertexDragChanged (bool vertexDrag) |
| void | interactiveChanged (bool interactive) |
| bool | isValidChanged (void) |
| bool | isEmptyChanged (void) |
| void | traceModeChanged (bool traceMode) |
| void | showAltColorChanged (bool showAltColor) |
| void | selectedVertexChanged (int index) |
Public Member Functions | |
| QGCMapPolygon (QObject *parent=nullptr) | |
| QGCMapPolygon (const QGCMapPolygon &other, QObject *parent=nullptr) | |
| ~QGCMapPolygon () override | |
| const QGCMapPolygon & | operator= (const QGCMapPolygon &other) |
| Q_INVOKABLE void | clear (void) |
| Q_INVOKABLE void | appendVertex (const QGeoCoordinate &coordinate) |
| Q_INVOKABLE void | removeVertex (int vertexIndex) |
| Q_INVOKABLE void | appendVertices (const QVariantList &varCoords) |
| void | appendVertices (const QList< QGeoCoordinate > &coordinates) |
| Q_INVOKABLE void | adjustVertex (int vertexIndex, const QGeoCoordinate coordinate) |
| Q_INVOKABLE void | splitPolygonSegment (int vertexIndex) |
| Splits the segment comprised of vertextIndex -> vertexIndex + 1. | |
| Q_INVOKABLE bool | containsCoordinate (const QGeoCoordinate &coordinate) const |
| Returns true if the specified coordinate is within the polygon. | |
| Q_INVOKABLE void | offset (double distance) |
| Offsets the current polygon edges by the specified distance in meters. | |
| Q_INVOKABLE bool | loadKMLOrSHPFile (const QString &file) |
| QList< QGeoCoordinate > | coordinateList (void) const |
| Returns the path in a list of QGeoCoordinate's format. | |
| Q_INVOKABLE QGeoCoordinate | vertexCoordinate (int vertex) const |
| Returns the QGeoCoordinate for the vertex specified. | |
| Q_INVOKABLE void | verifyClockwiseWinding (void) |
| Adjust polygon winding order to be clockwise (if needed) | |
| Q_INVOKABLE void | beginReset (void) |
| Q_INVOKABLE void | endReset (void) |
| void | saveToJson (QJsonObject &json) |
| bool | loadFromJson (const QJsonObject &json, bool required, QString &errorString) |
| QList< QPointF > | nedPolygon (void) const |
| Convert polygon to NED and return (D is ignored) | |
| double | area (void) const |
| Returns the area of the polygon in meters squared. | |
| QDomElement | kmlPolygonElement (KMLDomDocument &domDocument) |
| int | count (void) const |
| bool | dirty (void) const |
| void | setDirty (bool dirty) |
| QGeoCoordinate | center (void) const |
| bool | centerDrag (void) const |
| bool | vertexDrag (void) const |
| bool | interactive (void) const |
| bool | isValid (void) const |
| bool | empty (void) const |
| bool | traceMode (void) const |
| bool | showAltColor (void) const |
| int | selectedVertex () const |
| QVariantList | path (void) const |
| QmlObjectListModel * | qmlPathModel (void) |
| QmlObjectListModel & | pathModel (void) |
| void | setPath (const QList< QGeoCoordinate > &path) |
| void | setPath (const QVariantList &path) |
| void | setCenter (QGeoCoordinate newCenter) |
| void | setCenterDrag (bool centerDrag) |
| void | setVertexDrag (bool vertexDrag) |
| void | setInteractive (bool interactive) |
| void | setTraceMode (bool traceMode) |
| void | setShowAltColor (bool showAltColor) |
| void | selectVertex (int index) |
Static Public Attributes | |
| static constexpr const char * | jsonPolygonKey = "polygon" |
The QGCMapPolygon class provides a polygon which can be displayed on a map using a map visuals control.
It maintains a representation of the polygon on QVariantList and QmlObjectListModel format.
Definition at line 17 of file QGCMapPolygon.h.
| QGCMapPolygon::QGCMapPolygon | ( | QObject * | parent = nullptr | ) |
Definition at line 17 of file QGCMapPolygon.cc.
| QGCMapPolygon::QGCMapPolygon | ( | const QGCMapPolygon & | other, |
| QObject * | parent = nullptr |
||
| ) |
Definition at line 27 of file QGCMapPolygon.cc.
|
override |
Definition at line 39 of file QGCMapPolygon.cc.
References pathChanged(), and qgcApp.
| void QGCMapPolygon::adjustVertex | ( | int | vertexIndex, |
| const QGeoCoordinate | coordinate | ||
| ) |
Adjust the value for the specified coordinate
| vertexIndex | Polygon point index to modify (0-based) |
| coordinate | New coordinate for point |
Definition at line 100 of file QGCMapPolygon.cc.
References dragPathChanged(), pathChanged(), setDirty(), and QmlObjectListModel::value().
Referenced by setCenter().
| void QGCMapPolygon::appendVertex | ( | const QGeoCoordinate & | coordinate | ) |
Definition at line 281 of file QGCMapPolygon.cc.
References QmlObjectListModel::append(), dragPathChanged(), and pathChanged().
Referenced by GeoFenceController::addInclusionPolygon(), and splitPolygonSegment().
| void QGCMapPolygon::appendVertices | ( | const QList< QGeoCoordinate > & | coordinates | ) |
Definition at line 299 of file QGCMapPolygon.cc.
References QmlObjectListModel::append(), beginReset(), dragPathChanged(), endReset(), and pathChanged().
| void QGCMapPolygon::appendVertices | ( | const QVariantList & | varCoords | ) |
Definition at line 318 of file QGCMapPolygon.cc.
References appendVertices().
Referenced by appendVertices(), loadKMLOrSHPFile(), offset(), operator=(), and verifyClockwiseWinding().
| double QGCMapPolygon::area | ( | void | ) | const |
Returns the area of the polygon in meters squared.
Definition at line 593 of file QGCMapPolygon.cc.
References nedPolygon().
Referenced by TransectStyleComplexItem::coveredArea().
| void QGCMapPolygon::beginReset | ( | void | ) |
Definition at line 642 of file QGCMapPolygon.cc.
References ObjectItemModelBase::beginResetModel().
Referenced by appendVertices(), loadKMLOrSHPFile(), offset(), and verifyClockwiseWinding().
|
inline |
Definition at line 108 of file QGCMapPolygon.h.
Referenced by SurveyComplexItem::centerCoordinate().
|
signal |
Referenced by setCenter(), and setCenterDrag().
|
inline |
Definition at line 109 of file QGCMapPolygon.h.
Referenced by setCenterDrag().
|
signal |
Referenced by setCenterDrag().
| void QGCMapPolygon::clear | ( | void | ) |
Definition at line 75 of file QGCMapPolygon.cc.
References QmlObjectListModel::clearAndDeleteContents(), cleared(), dragPathChanged(), pathChanged(), and setDirty().
Referenced by StructureScanComplexItem::load(), loadFromJson(), loadKMLOrSHPFile(), offset(), operator=(), and verifyClockwiseWinding().
|
signal |
Referenced by clear().
| bool QGCMapPolygon::containsCoordinate | ( | const QGeoCoordinate & | coordinate | ) | const |
Returns true if the specified coordinate is within the polygon.
Definition at line 173 of file QGCMapPolygon.cc.
| QList< QGeoCoordinate > QGCMapPolygon::coordinateList | ( | void | ) | const |
Returns the path in a list of QGeoCoordinate's format.
Definition at line 244 of file QGCMapPolygon.cc.
Referenced by StructureScanComplexItem::greatestDistanceTo(), StructureScanComplexItem::setCoordinate(), and TransectStyleComplexItem::setCoordinate().
|
inline |
Definition at line 105 of file QGCMapPolygon.h.
Referenced by StructureScanComplexItem::appendMissionItems(), StructureScanComplexItem::coordinate(), StructureScanComplexItem::lastSequenceNumber(), nedPolygon(), offset(), StructureScanComplexItem::rotateEntryPoint(), selectVertex(), GeoFenceManager::sendToVehicle(), setCenter(), StructureScanComplexItem::setCoordinate(), and TransectStyleComplexItem::setCoordinate().
|
signal |
Referenced by StructureScanComplexItem::StructureScanComplexItem().
|
inline |
Definition at line 106 of file QGCMapPolygon.h.
Referenced by setDirty().
|
signal |
|
signal |
Referenced by setCenter().
|
signal |
Referenced by adjustVertex(), appendVertex(), appendVertices(), clear(), and setCenter().
|
inline |
Definition at line 113 of file QGCMapPolygon.h.
References QmlObjectListModel::count().
| void QGCMapPolygon::endReset | ( | void | ) |
Definition at line 647 of file QGCMapPolygon.cc.
References ObjectItemModelBase::endResetModel().
Referenced by appendVertices(), loadKMLOrSHPFile(), offset(), and verifyClockwiseWinding().
|
inline |
Definition at line 111 of file QGCMapPolygon.h.
Referenced by setInteractive().
|
signal |
Referenced by setInteractive().
|
signal |
|
inline |
Definition at line 112 of file QGCMapPolygon.h.
References QmlObjectListModel::count().
Referenced by StructureScanComplexItem::readyForSaveState(), and TransectStyleComplexItem::readyForSaveState().
|
signal |
| QDomElement QGCMapPolygon::kmlPolygonElement | ( | KMLDomDocument & | domDocument | ) |
Definition at line 652 of file QGCMapPolygon.cc.
References KMLDomDocument::addTextElement(), and KMLDomDocument::kmlCoordString().
Referenced by TransectStyleComplexItem::addKMLVisuals().
| bool QGCMapPolygon::loadFromJson | ( | const QJsonObject & | json, |
| bool | required, | ||
| QString & | errorString | ||
| ) |
Load a polygon from json
| json | Json object to load from |
| required | true: no polygon in object will generate error |
| errorString | Error string if return is false |
Definition at line 217 of file QGCMapPolygon.cc.
References QmlObjectListModel::append(), clear(), errorString, jsonPolygonKey, GeoJsonHelper::loadGeoCoordinateArray(), pathChanged(), setDirty(), and JsonParsing::validateRequiredKeys().
Referenced by StructureScanComplexItem::load(), and QGCFencePolygon::loadFromJson().
| bool QGCMapPolygon::loadKMLOrSHPFile | ( | const QString & | file | ) |
Loads a polygon from a KML/SHP file
Definition at line 571 of file QGCMapPolygon.cc.
References appendVertices(), beginReset(), clear(), endReset(), errorString, ShapeFileHelper::loadPolygonsFromFile(), and QGC::showAppMessage().
| QList< QPointF > QGCMapPolygon::nedPolygon | ( | void | ) | const |
Convert polygon to NED and return (D is ignored)
Definition at line 493 of file QGCMapPolygon.cc.
References QGCGeo::convertGeoToNed(), QmlObjectListModel::count(), count(), nedPolygon(), and vertexCoordinate().
Referenced by area(), nedPolygon(), and offset().
| void QGCMapPolygon::offset | ( | double | distance | ) |
Offsets the current polygon edges by the specified distance in meters.
Definition at line 517 of file QGCMapPolygon.cc.
References appendVertices(), beginReset(), clear(), QGCGeo::convertNedToGeo(), count(), endReset(), nedPolygon(), and vertexCoordinate().
| const QGCMapPolygon & QGCMapPolygon::operator= | ( | const QGCMapPolygon & | other | ) |
Definition at line 59 of file QGCMapPolygon.cc.
References appendVertices(), clear(), path(), and setDirty().
Referenced by QGCFencePolygon::operator=().
|
inline |
Definition at line 118 of file QGCMapPolygon.h.
Referenced by operator=(), GeoFenceManager::sendToVehicle(), setPath(), and setPath().
|
signal |
Referenced by adjustVertex(), appendVertex(), appendVertices(), clear(), loadFromJson(), removeVertex(), setCenter(), setCenterDrag(), setPath(), setPath(), setVertexDrag(), splitPolygonSegment(), StructureScanComplexItem::StructureScanComplexItem(), TransectStyleComplexItem::TransectStyleComplexItem(), and ~QGCMapPolygon().
|
inline |
Definition at line 120 of file QGCMapPolygon.h.
|
inline |
Definition at line 119 of file QGCMapPolygon.h.
| void QGCMapPolygon::removeVertex | ( | int | vertexIndex | ) |
Definition at line 334 of file QGCMapPolygon.cc.
References pathChanged(), QmlObjectListModel::removeAt(), and selectVertex().
| void QGCMapPolygon::saveToJson | ( | QJsonObject & | json | ) |
Saves the polygon to the json object.
| json | Json object to save to |
Definition at line 208 of file QGCMapPolygon.cc.
References jsonPolygonKey, GeoJsonHelper::saveGeoCoordinateArray(), and setDirty().
Referenced by StructureScanComplexItem::save(), and QGCFencePolygon::saveToJson().
|
inline |
Definition at line 116 of file QGCMapPolygon.h.
|
signal |
Referenced by selectVertex().
| void QGCMapPolygon::selectVertex | ( | int | index | ) |
Definition at line 710 of file QGCMapPolygon.cc.
References count(), and selectedVertexChanged().
Referenced by removeVertex(), and splitPolygonSegment().
| void QGCMapPolygon::setCenter | ( | QGeoCoordinate | newCenter | ) |
Definition at line 406 of file QGCMapPolygon.cc.
References adjustVertex(), centerChanged(), count(), dragCenterChanged(), dragPathChanged(), and pathChanged().
Referenced by SurveyComplexItem::setCenterCoordinate().
| void QGCMapPolygon::setCenterDrag | ( | bool | centerDrag | ) |
Definition at line 447 of file QGCMapPolygon.cc.
References centerChanged(), centerDrag(), centerDragChanged(), and pathChanged().
| void QGCMapPolygon::setDirty | ( | bool | dirty | ) |
Definition at line 124 of file QGCMapPolygon.cc.
References dirty(), dirtyChanged(), and QmlObjectListModel::setDirty().
Referenced by adjustVertex(), clear(), loadFromJson(), operator=(), saveToJson(), GeoFenceController::setDirty(), TransectStyleComplexItem::setDirty(), setPath(), and setPath().
| void QGCMapPolygon::setInteractive | ( | bool | interactive | ) |
Definition at line 475 of file QGCMapPolygon.cc.
References interactive(), and interactiveChanged().
Referenced by GeoFenceController::addInclusionPolygon().
| void QGCMapPolygon::setPath | ( | const QList< QGeoCoordinate > & | path | ) |
Definition at line 182 of file QGCMapPolygon.cc.
References QmlObjectListModel::append(), QmlObjectListModel::clearAndDeleteContents(), path(), pathChanged(), and setDirty().
Referenced by StructureScanComplexItem::setCoordinate(), and TransectStyleComplexItem::setCoordinate().
| void QGCMapPolygon::setPath | ( | const QVariantList & | path | ) |
Definition at line 195 of file QGCMapPolygon.cc.
References QmlObjectListModel::append(), QmlObjectListModel::clearAndDeleteContents(), path(), pathChanged(), and setDirty().
| void QGCMapPolygon::setShowAltColor | ( | bool | showAltColor | ) |
Definition at line 703 of file QGCMapPolygon.cc.
References showAltColor(), and showAltColorChanged().
| void QGCMapPolygon::setTraceMode | ( | bool | traceMode | ) |
Definition at line 695 of file QGCMapPolygon.cc.
References traceMode(), and traceModeChanged().
| void QGCMapPolygon::setVertexDrag | ( | bool | vertexDrag | ) |
Definition at line 463 of file QGCMapPolygon.cc.
References pathChanged(), vertexDrag(), and vertexDragChanged().
|
inline |
Definition at line 115 of file QGCMapPolygon.h.
Referenced by setShowAltColor().
|
signal |
Referenced by setShowAltColor().
| void QGCMapPolygon::splitPolygonSegment | ( | int | vertexIndex | ) |
Splits the segment comprised of vertextIndex -> vertexIndex + 1.
Definition at line 255 of file QGCMapPolygon.cc.
References appendVertex(), QmlObjectListModel::insert(), pathChanged(), and selectVertex().
|
inline |
Definition at line 114 of file QGCMapPolygon.h.
Referenced by setTraceMode().
|
signal |
| void QGCMapPolygon::verifyClockwiseWinding | ( | void | ) |
Adjust polygon winding order to be clockwise (if needed)
Definition at line 613 of file QGCMapPolygon.cc.
References appendVertices(), beginReset(), clear(), and endReset().
| QGeoCoordinate QGCMapPolygon::vertexCoordinate | ( | int | vertex | ) | const |
Returns the QGeoCoordinate for the vertex specified.
Definition at line 483 of file QGCMapPolygon.cc.
Referenced by StructureScanComplexItem::appendMissionItems(), StructureScanComplexItem::coordinate(), nedPolygon(), and offset().
|
inline |
Definition at line 110 of file QGCMapPolygon.h.
Referenced by setVertexDrag().
|
signal |
Referenced by setVertexDrag().
|
staticconstexpr |
Definition at line 132 of file QGCMapPolygon.h.
Referenced by StructureScanComplexItem::load(), loadFromJson(), and saveToJson().