Marble

ElevationModel.h
1 // SPDX-License-Identifier: LGPL-2.1-or-later
2 //
3 // SPDX-FileCopyrightText: 2011 Niko Sams <[email protected]>
4 //
5 
6 
7 #ifndef MARBLE_ELEVATIONMODEL_H
8 #define MARBLE_ELEVATIONMODEL_H
9 
10 #include "marble_export.h"
11 
12 #include <QObject>
13 
14 class QImage;
15 
16 namespace Marble
17 {
18 class GeoDataCoordinates;
19 
20 namespace {
21  unsigned int const invalidElevationData = 32768;
22 }
23 
24 class TileId;
25 class ElevationModelPrivate;
26 class HttpDownloadManager;
27 class PluginManager;
28 
29 class MARBLE_EXPORT ElevationModel : public QObject
30 {
31  Q_OBJECT
32 public:
33  explicit ElevationModel( HttpDownloadManager *downloadManager, PluginManager* pluginManager, QObject *parent = nullptr );
34  ~ElevationModel() override;
35 
36  qreal height( qreal lon, qreal lat ) const;
37  QVector<GeoDataCoordinates> heightProfile( qreal fromLon, qreal fromLat, qreal toLon, qreal toLat ) const;
38 
39 Q_SIGNALS:
40  /**
41  * Elevation tiles loaded. You will get more accurate results when querying height
42  * for at least one that was queried before.
43  **/
44  void updateAvailable();
45 
46 private:
47  Q_PRIVATE_SLOT( d, void tileCompleted( const TileId&, const QImage& ) )
48 
49 private:
50  friend class ElevationModelPrivate;
51  ElevationModelPrivate *d;
52 };
53 
54 }
55 
56 #endif // MARBLE_ELEVATIONMODEL_H
Binds a QML item to a specific geodetic location in screen coordinates.
This file is part of the KDE documentation.
Documentation copyright © 1996-2023 The KDE developers.
Generated on Mon Sep 25 2023 03:50:18 by doxygen 1.8.17 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.