QGroundControl
Ground Control Station for MAVLink Drones
Loading...
Searching...
No Matches
KMLDomDocument.h
Go to the documentation of this file.
1#pragma once
2
3#include <QtCore/QLoggingCategory>
4#include <QtGui/QColor>
5#include <QtXml/QDomDocument>
6#include <QtXml/QDomElement>
7
8class QColor;
9class QGeoCoordinate;
10
11Q_DECLARE_LOGGING_CATEGORY(KMLDomDocumentLog)
12
13
14class KMLDomDocument : public QDomDocument
15{
16public:
17 KMLDomDocument(const QString &name);
18
19 void appendChildToRoot(const QDomNode &child);
20 QDomElement addFolder(const QString &name);
21 QDomElement addPlacemark(const QString &name, bool visible);
22 void addTextElement(QDomElement &parentElement, const QString &name, const QString &value);
23 void addLookAt(QDomElement &parentElement, const QGeoCoordinate &coord);
24
25 // Content helpers
26 void addDescription(QDomElement &parent, const QString &content);
27
28 // Style helpers
29 QDomElement addStyle(const QString &id);
30 void addLineStyle(QDomElement &styleElement, const QColor &color, int width = 1, double opacity = 1.0);
31 void addPolyStyle(QDomElement &styleElement, const QColor &color, double opacity = 1.0);
32
33 // Geometry element helpers
34 QDomElement addPoint(QDomElement &parent, const QGeoCoordinate &coord,
35 const QString &altitudeMode = QLatin1String("absolute"), bool extrude = true);
36 QDomElement addLineString(QDomElement &parent, const QList<QGeoCoordinate> &coords,
37 const QString &altitudeMode = QLatin1String("absolute"),
38 bool extrude = true, bool tessellate = true);
39 QDomElement addPolygon(QDomElement &parent, const QList<QGeoCoordinate> &coords,
40 const QString &altitudeMode = QLatin1String("clampToGround"));
41
42 // Formatting utilities (static - can be used without instantiating)
43 static QString kmlColorString(const QColor &color, double opacity = 1);
44 static QString kmlCoordString(const QGeoCoordinate &coord);
45
46 // KML constants
47 static constexpr const char *kmlNamespace = "http://www.opengis.net/kml/2.2";
48 static constexpr const char *kmlSchemaLocation = "https://schemas.opengis.net/kml/2.2.0/ogckml22.xsd";
49 static constexpr const char *xsiNamespace = "http://www.w3.org/2001/XMLSchema-instance";
50 static constexpr const char *balloonStyleName = "BalloonStyle";
51
52protected:
54
55private:
56 void _addStandardStyles();
57};
Q_DECLARE_LOGGING_CATEGORY(AndroidSerialLog)
Used to convert a Plan to a KML document.
QDomElement _rootDocumentElement