File indexing completed on 2024-05-12 03:50:14

0001 
0002 // SPDX-License-Identifier: LGPL-2.1-or-later
0003 //
0004 // SPDX-FileCopyrightText: 2013 Sanjiban Bairagya <sanjiban22393@gmail.com>
0005 //
0006 
0007 #ifndef GEODATALOCATION_H
0008 #define GEODATALOCATION_H
0009 
0010 #include "GeoDataObject.h"
0011 #include "GeoDataCoordinates.h"
0012 #include "MarbleGlobal.h"
0013 
0014 namespace Marble {
0015 
0016 class GeoDataLocationPrivate;
0017 
0018 /**
0019  */
0020 class GEODATA_EXPORT GeoDataLocation: public GeoDataObject
0021 {
0022 public:
0023     GeoDataLocation();
0024 
0025     GeoDataLocation( const GeoDataLocation &other );
0026 
0027     GeoDataLocation& operator=( const GeoDataLocation &other );
0028 
0029     bool operator==( const GeoDataLocation &other ) const;
0030     bool operator!=( const GeoDataLocation &other ) const;
0031 
0032     ~GeoDataLocation() override;
0033 
0034     /** Provides type information for downcasting a GeoNode */
0035     const char* nodeType() const override;
0036 
0037     qreal latitude(GeoDataCoordinates::Unit) const;
0038 
0039     qreal longitude(GeoDataCoordinates::Unit) const;
0040 
0041     void setLatitude(qreal latitude, GeoDataCoordinates::Unit unit);
0042 
0043     void setLongitude(qreal longitude, GeoDataCoordinates::Unit unit);
0044 
0045     /** Returns the distance to earth's surface in meters, interpreted according to altitudeMode */
0046     qreal altitude() const;
0047 
0048     void setAltitude( qreal altitude );
0049 
0050 protected:
0051     GeoDataLocationPrivate* const d;
0052 };
0053 
0054 }
0055 
0056 #endif // GEODATAORIENTATION_H