Files
qt5-legatus-legacy/Lts/Tools/rme-playback/simulator/markerhelper.cpp
T
2026-08-13 18:33:10 +02:00

73 lines
2.3 KiB
C++
Executable File

#include "markerhelper.h"
#include <QDebug>
#include <QJsonObject>
#include <QJsonArray>
#include <QJsonDocument>
#include <qeventloop.h>
#include <qqmlengine.h>
#include <QNetworkReply>
MarkerHelper::MarkerHelper() {
m_manager = new QNetworkAccessManager(this);
}
void MarkerHelper::startSimulation(QString replayId) {
}
void MarkerHelper::postObject(QString replayId,int id, double lat, double lng, QString status, QString partie) {
// Erstelle das GeoJSON-Objekt
QString sidic;
if(status == "damaged") {
sidic = "10061000001212000000"; // SIDIC CODE FOR SMYBOL ( DAMAGED )
} else if (status == "destroyed") {
sidic = "10031500001202000000"; // SIDIC CODE FOR SMYBOL ( DESTROYED )
} else if (status == "fully_capable") {
sidic = "30031020000000000000"; // SIDIC CODE FOR SYMBOL ( FULLY_CAPALE )
}
QJsonObject geoJson;
geoJson.insert("type", "Feature");
QJsonObject geometry;
geometry.insert("type", "Point");
QJsonArray coordinates;
coordinates.append(lng);
coordinates.append(lat);
geometry.insert("coordinates", coordinates);
QJsonObject properties;
properties.insert("id", id);
properties.insert("timestamp", QDateTime::currentMSecsSinceEpoch());
properties.insert("replay_id", replayId);
properties.insert("parties", partie);
properties.insert("sidic", sidic);
geoJson.insert("properties", properties);
geoJson.insert("geometry", geometry);
QJsonDocument jsonDoc(geoJson);
QByteArray jsonData = jsonDoc.toJson();
QNetworkRequest request;
request.setUrl(QUrl("http://localhost:8080/objects"));
request.setHeader(QNetworkRequest::ContentTypeHeader, "application/json");
QSslConfiguration sslConfig = QSslConfiguration::defaultConfiguration();
sslConfig.setPeerVerifyMode(QSslSocket::VerifyNone);
request.setSslConfiguration(sslConfig);
QNetworkReply *reply = m_manager->post(request, jsonData);
connect(reply, &QNetworkReply::finished, [reply] {
if (reply->error() == QNetworkReply::NoError) {
QByteArray response = reply->readAll();
// Verarbeite die Antwort
} else {
qDebug() << "Error sending GeoJSON:" << reply->errorString();
}
reply->deleteLater();
});
}