21 friend class UnitTestTerrainQuery;
31 bool getAltitudesForCoordinates(
const QList<QGeoCoordinate> &coordinates, QList<double> &altitudes,
bool &
error);
33 void addCoordinateQuery(
TerrainQueryInterface *terrainQueryInterface,
const QList<QGeoCoordinate> &coordinates);
34 void addPathQuery(
TerrainQueryInterface *terrainQueryInterface,
const QGeoCoordinate &startPoint,
const QGeoCoordinate &endPoint);
35 void addCarpetQuery(
TerrainQueryInterface *terrainQueryInterface,
const QGeoCoordinate &swCoord,
const QGeoCoordinate &neCoord,
bool statsOnly);
42 static QList<QGeoCoordinate> _pathQueryToCoords(
const QGeoCoordinate &fromCoord,
const QGeoCoordinate &toCoord,
double &distanceBetween,
double &finalDistanceBetween);
44 void _cacheTile(
const QByteArray &data,
const QString &hash);
46 static void _processCarpetResults(
const QList<double> &altitudes,
int gridSizeLat,
int gridSizeLon,
47 bool statsOnly,
double &minHeight,
double &maxHeight, QList<QList<double>> &carpet);
49 struct QueuedRequestInfo_t {
50 QPointer<TerrainQueryInterface> terrainQueryInterface;
52 double distanceBetween;
53 double finalDistanceBetween;
54 QList<QGeoCoordinate> coordinates;
56 int carpetGridSizeLat;
57 int carpetGridSizeLon;
60 QQueue<QueuedRequestInfo_t> _requestQueue;
64 QHash<QString, TerrainTile*> _tiles;
66 QNetworkAccessManager *_networkManager =
nullptr;