#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 timestamp); void track(TrackData &track); void multiTrack(TrackData &t); void lineString(TrackData &track); void linearRing(QVector &coordinates); void boundary(QVector &coordinates); void polygon(Area &area); void point(Waypoint &waypoint); bool pointCoordinates(Waypoint &waypoint); bool lineCoordinates(TrackData &track); bool polygonCoordinates(QVector &points); bool coord(Trackpoint &trackpoint); void extendedData(TrackData &track, int start); void schemaData(TrackData &track, int start); void heartRate(TrackData &track, int start); void cadence(TrackData &track, int start); void speed(TrackData &track, int start); void temperature(TrackData &track, int start); QDateTime timeStamp(); qreal number(); QDateTime time(); QXmlStreamReader _reader; }; #endif // KMLPARSER_H