QGroundControl
Ground Control Station for MAVLink Drones
Loading...
Searching...
No Matches
ElevationMapProvider.cpp
Go to the documentation of this file.
3
4#include <QtCore/QDir>
5#include <QtCore/QTemporaryFile>
6
7int CopernicusElevationProvider::long2tileX(double lon, int z) const
8{
9 Q_UNUSED(z)
10 return static_cast<int>(floor((lon + 180.0) / TerrainTileCopernicus::kTileSizeDegrees));
11}
12
13int CopernicusElevationProvider::lat2tileY(double lat, int z) const
14{
15 Q_UNUSED(z)
16 return static_cast<int>(floor((lat + 90.0) / TerrainTileCopernicus::kTileSizeDegrees));
17}
18
19QString CopernicusElevationProvider::_getURL(int x, int y, int zoom) const
20{
21 Q_UNUSED(zoom)
22 const double lat1 = (static_cast<double>(y) * TerrainTileCopernicus::kTileSizeDegrees) - 90.0;
23 const double lon1 = (static_cast<double>(x) * TerrainTileCopernicus::kTileSizeDegrees) - 180.0;
24 const double lat2 = (static_cast<double>(y + 1) * TerrainTileCopernicus::kTileSizeDegrees) - 90.0;
25 const double lon2 = (static_cast<double>(x + 1) * TerrainTileCopernicus::kTileSizeDegrees) - 180.0;
26 const QString url = _mapUrl.arg(lat1).arg(lon1).arg(lat2).arg(lon2);
27 return url;
28}
29
31 double topleftLat, double bottomRightLon,
32 double bottomRightLat) const
33{
34 QGCTileSet set;
35 set.tileX0 = long2tileX(topleftLon, zoom);
36 set.tileY0 = lat2tileY(bottomRightLat, zoom);
37 set.tileX1 = long2tileX(bottomRightLon, zoom);
38 set.tileY1 = lat2tileY(topleftLat, zoom);
39
40 set.tileCount = (static_cast<quint64>(set.tileX1) -
41 static_cast<quint64>(set.tileX0) + 1) *
42 (static_cast<quint64>(set.tileY1) -
43 static_cast<quint64>(set.tileY0) + 1);
44
45 set.tileSize = getAverageSize() * set.tileCount;
46
47 return set;
48}
49
50QByteArray CopernicusElevationProvider::serialize(const QByteArray &image) const
51{
53}
int lat2tileY(double lat, int z) const final
int long2tileX(double lon, int z) const final
QByteArray serialize(const QByteArray &image) const final
QGCTileSet getTileCount(int zoom, double topleftLon, double topleftLat, double bottomRightLon, double bottomRightLat) const final
quint32 getAverageSize() const
Definition MapProvider.h:44
static QByteArray serializeFromData(const QByteArray &input)
static constexpr double kTileSizeDegrees
Each terrain tile represents a square area .01 degrees in lat/lon.
quint64 tileCount
Definition QGCTileSet.h:29
quint64 tileSize
Definition QGCTileSet.h:30