Commit 7b00e7a3 authored by Sebastian Verling's avatar Sebastian Verling

first implementation of binary representation of elevation data

parent 612d219d
...@@ -52,9 +52,6 @@ ...@@ -52,9 +52,6 @@
#include <QtNetwork/QNetworkAccessManager> #include <QtNetwork/QNetworkAccessManager>
#include <QFile> #include <QFile>
#include "TerrainTile.h" #include "TerrainTile.h"
#include <QJsonDocument>
#include <QJsonObject>
#include <QJsonArray>
int QGeoTiledMapReplyQGC::_requestCount = 0; int QGeoTiledMapReplyQGC::_requestCount = 0;
...@@ -129,18 +126,13 @@ QGeoTiledMapReplyQGC::networkReplyFinished() ...@@ -129,18 +126,13 @@ QGeoTiledMapReplyQGC::networkReplyFinished()
// convert "a" to binary in case we have elevation data // convert "a" to binary in case we have elevation data
if ((UrlFactory::MapType)tileSpec().mapId() == UrlFactory::MapType::AirmapElevation) { if ((UrlFactory::MapType)tileSpec().mapId() == UrlFactory::MapType::AirmapElevation) {
QJsonParseError parseError;
QJsonDocument json = QJsonDocument::fromJson(a, &parseError); a = TerrainTile::serialize(a);
if (parseError.error != QJsonParseError::NoError) {
emit aborted();
return;
} else {
a = TerrainTile::serialize(json);
if (a.isEmpty()) { if (a.isEmpty()) {
emit aborted(); emit aborted();
return; return;
} }
}
} }
setMapImageData(a); setMapImageData(a);
if(!format.isEmpty()) { if(!format.isEmpty()) {
......
...@@ -111,11 +111,17 @@ QGeoCoordinate TerrainTile::centerCoordinate(void) const ...@@ -111,11 +111,17 @@ QGeoCoordinate TerrainTile::centerCoordinate(void) const
return _southWest.atDistanceAndAzimuth(_southWest.distanceTo(_northEast) / 2.0, _southWest.azimuthTo(_northEast)); return _southWest.atDistanceAndAzimuth(_southWest.distanceTo(_northEast) / 2.0, _southWest.azimuthTo(_northEast));
} }
QByteArray TerrainTile::serialize(QJsonDocument document) QByteArray TerrainTile::serialize(QByteArray input)
{ {
QJsonParseError parseError;
QJsonDocument document = QJsonDocument::fromJson(input, &parseError);
if (parseError.error != QJsonParseError::NoError) {
QByteArray emptyArray;
return emptyArray;
}
QByteArray byteArray; QByteArray byteArray;
QIODevice::OpenMode writeonly = QIODevice::WriteOnly; QDataStream stream(&byteArray, QIODevice::WriteOnly);
QDataStream stream(&byteArray, writeonly);
if (!document.isObject()) { if (!document.isObject()) {
qCDebug(TerrainTileLog) << "Terrain tile json doc is no object"; qCDebug(TerrainTileLog) << "Terrain tile json doc is no object";
QByteArray emptyArray; QByteArray emptyArray;
......
...@@ -89,7 +89,7 @@ public: ...@@ -89,7 +89,7 @@ public:
* *
* @return serialized data * @return serialized data
*/ */
static QByteArray serialize(QJsonDocument document); static QByteArray serialize(QByteArray input);
private: private:
inline int _latToDataIndex(double latitude) const; inline int _latToDataIndex(double latitude) const;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment