Files
pilotclient/src/blackmisc/geo/latitude.h
Klaus Basan e55480737e Ref T111, lat/lng/angle changes
* get struct CAngle::DegMinSecFractionalSec to obtain parts
* round to epsilon utility functions and fix (qint64)
2017-09-24 19:51:09 +01:00

71 lines
2.3 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/* Copyright (C) 2013
* swift project Community / Contributors
*
* This file is part of swift project. It is subject to the license terms in the LICENSE file found in the top-level
* directory of this distribution and at http://www.swift-project.org/license.html. No part of swift project,
* including this file, may be copied, modified, propagated, or distributed except according to the terms
* contained in the LICENSE file.
*/
//! \file
#ifndef BLACKMISC_GEO_LATITUDE_H
#define BLACKMISC_GEO_LATITUDE_H
#include "blackmisc/blackmiscexport.h"
#include "blackmisc/geo/earthangle.h"
namespace BlackMisc
{
namespace Geo
{
//! Latitude
class BLACKMISC_EXPORT CLatitude :
public CEarthAngle<CLatitude>,
public Mixin::MetaType<CLatitude>,
public Mixin::String<CLatitude>,
public Mixin::DBusOperators<CLatitude>,
public Mixin::Index<CLatitude>
{
public:
//! Base type
using base_type = CEarthAngle<CLatitude>;
BLACKMISC_DECLARE_USING_MIXIN_METATYPE(CLatitude)
BLACKMISC_DECLARE_USING_MIXIN_STRING(CLatitude)
BLACKMISC_DECLARE_USING_MIXIN_INDEX(CLatitude)
//! To WGS84 string
QString toWgs84(int fractionalDigits = 3) const
{
return CEarthAngle<CLatitude>::toWgs84('N', 'S', fractionalDigits);
}
//! \copydoc BlackMisc::Mixin::String::toQString
QString convertToQString(bool i18n = false) const
{
QString s(CEarthAngle::convertToQString(i18n));
if (!this->isZeroEpsilonConsidered())
{
s.append(this->isNegativeWithEpsilonConsidered() ? " S" : " N");
}
return s;
}
//! Default constructor
CLatitude() = default;
//! Constructor
explicit CLatitude(const BlackMisc::PhysicalQuantities::CAngle &angle) : CEarthAngle(angle) {}
//! Init by double value
//! \remark Latitude measurements range from 0° to (+/)90°
CLatitude(double value, const BlackMisc::PhysicalQuantities::CAngleUnit &unit) : CEarthAngle(value, unit) {}
};
} // ns
} // ns
Q_DECLARE_METATYPE(BlackMisc::Geo::CLatitude)
#endif // guard