#ifndef KMLPARSER_H #define KMLPARSER_H #include #include #include "parser.h" class KMLParser : public Parser { public: ~KMLParser() {} bool parse(QFile *file, QList &tracks, QList &routes, QList &waypoints); QString errorString() const {return _reader.errorString();} int errorLine() const {return _reader.lineNumber();} private: void kml(QList &tracks, QList &waypoints); void document(QList &tracks, QList &waypoints); void folder(QList &tracks, QList &waypoints); void placemark(QList &tracks, QList &waypoints); void multiGeometry(QList &tracks, QList &waypoints, const QString &name, const QString &desc, const QDateTime timestamp); void track(TrackData &track); void lineString(TrackData &track); void point(Waypoint &waypoint); bool pointCoordinates(Waypoint &waypoint); bool lineCoordinates(TrackData &track); bool coord(Trackpoint &trackpoint); QDateTime timeStamp(); qreal number(); QDateTime time(); QXmlStreamReader _reader; }; #endif // KMLPARSER_H