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