File indexing completed on 2025-01-05 03:58:57
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 DIGIKAM_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