#ifndef KMLPARSER_H #define KMLPARSER_H #include #include #include "parser.h" class KMLParser : public Parser { public: bool parse(QFile *file, QList &tracks, QList &routes, QList &areas, QVector &waypoints); QString errorString() const {return _reader.errorString();} int errorLine() const {return _reader.lineNumber();} private: void kml(QList &tracks, QList &areas, QVector &waypoints); void document(QList &tracks, QList &areas, QVector &waypoints); void folder(QList &tracks, QList &areas, QVector &waypoints); void placemark(QList &tracks, QList &areas, QVector &waypoints); void multiGeometry(QList &tracks, QList &areas, QVector &waypoints, const QString &name, const QString &desc, const QDateTime ×tamp); void track(SegmentData &segment); void multiTrack(TrackData &t); void lineString(SegmentData &segment); void linearRing(QVector &coordinates); void boundary(QVector &coordinates); void polygon(Area &area); void point(Waypoint &waypoint); bool pointCoordinates(Waypoint &waypoint); bool lineCoordinates(SegmentData &segment); bool polygonCoordinates(QVector &points); bool coord(Trackpoint &trackpoint); void extendedData(SegmentData &segment, int start); void schemaData(SegmentData &segment, int start); void heartRate(SegmentData &segment, int start); void cadence(SegmentData &segment, int start); void speed(SegmentData &segment, int start); void temperature(SegmentData &segment, int start); QDateTime timeStamp(); qreal number(); QDateTime time(); QXmlStreamReader _reader; }; #endif // KMLPARSER_H