113 lines
2.5 KiB
C++
113 lines
2.5 KiB
C++
#include "step.h"
|
|
|
|
#include <QJsonDocument>
|
|
#include <QJsonObject>
|
|
#include <QJsonParseError>
|
|
#include <QJsonDocument>
|
|
#include <QJsonObject>
|
|
#include <QJsonArray>
|
|
#include <QJsonParseError>
|
|
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 personnages = obj["personnage"].toString();
|
|
personnage.append(personnages);
|
|
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;
|
|
}
|
|
|
|
|
|
QList<QString> Step::getListeDialogue(){
|
|
return texte;
|
|
}
|
|
QList<QString> Step::getListePersonnage(){
|
|
return personnage;
|
|
}
|
|
|
|
QString Step::toGPSFormat(){
|
|
int latDeg = static_cast<int>(latitude);
|
|
float latMin = (latitude - latDeg) * 60.0;
|
|
QChar latDir = latitude >= 0 ? 'N' : 'S';
|
|
latDeg = abs(latDeg);
|
|
|
|
int lonDeg = static_cast<int>(longitude);
|
|
float lonMin = (longitude - lonDeg) * 60.0;
|
|
QChar lonDir = longitude >= 0 ? 'E' : 'W';
|
|
lonDeg = abs(lonDeg);
|
|
|
|
QString gpsString = QString("%1 %2 %3 %4 %5 %6")
|
|
.arg(latDir)
|
|
.arg(latDeg, 2)
|
|
.arg(latMin, 5, 'f', 3)
|
|
.arg(lonDir)
|
|
.arg(lonDeg, 2)
|
|
.arg(lonMin, 5, 'f', 3);
|
|
|
|
return gpsString;
|
|
}
|