#include "step.h" #include #include #include #include #include #include #include QString Step::getTitle() const { return title; } float Step::getLatitude() const { return latitude; } float Step::getLongitude() const { return longitude; } int Step::getResponse() const { return response; } Step::Step() { latitude = 0.0; longitude = 0.0; response = 0; } Step::Step( QJsonObject &in) { title = in["title"].toString(); response = in["reponse"].toInt(); QString gps = in["GPS"].toString(); QStringList parts = gps.split(" ", Qt::SkipEmptyParts); QChar latDir = parts[0][0]; // c'est le premier QChar du QString t'as capté int latDeg = parts[1].toInt(); float latMin = parts[2].toFloat(); setLatitude(latDeg, latMin, latDir); QChar lonDir = parts[3][0]; int lonDeg = parts[4].toInt(); float lonMin = parts[5].toFloat(); setLongitude(lonDeg, lonMin, lonDir); QJsonArray personnagetab = in["dialogue"].toArray(); for (const QJsonValue &val : personnagetab) { if (val.isObject()) { QJsonObject obj = val.toObject(); QString personnage = obj["personnage"].toString(); personnage.append(personnage); } } QJsonArray textetab = in["dialogue"].toArray(); for (const QJsonValue &val : textetab) { if (val.isObject()) { QJsonObject obj = val.toObject(); QString textes = obj["texte"].toString(); texte.append(textes); } } } void Step::setLatitude(int degree, float minute, QChar NS) { latitude = degree + minute / 60.0; if (NS.toUpper() == 'S') latitude = -latitude; } void Step::setLongitude(int degree, float minute, QChar EW) { longitude = degree + minute / 60.0; if (EW.toUpper() == 'W') longitude = -longitude; }