supercell-wx/wxdata/include/scwx/common/geographic.hpp
Dan Paulat 6e7a13494a Updating radar site display fields to be more human-friendly
- Latitude/longitude in degrees N/S/E/W
- Radar types with hyphens
- Sort by raw decimal values
2022-10-07 22:29:30 -05:00

45 lines
923 B
C++

#pragma once
#include <string>
namespace scwx
{
namespace common
{
/**
* @brief Coordinate type to hold latitude and longitude of a location.
*/
struct Coordinate
{
double latitude_; ///< Latitude in degrees
double longitude_; ///< Longitude in degrees
Coordinate() : Coordinate(0.0, 0.0) {}
Coordinate(double latitude, double longitude) :
latitude_ {latitude}, longitude_ {longitude}
{
}
bool operator==(const Coordinate& o) const
{
return latitude_ == o.latitude_ && longitude_ == o.longitude_;
}
};
enum class DegreeStringType
{
Decimal,
DegreesMinutesSeconds
};
std::string
GetLatitudeString(double latitude,
DegreeStringType type = DegreeStringType::Decimal);
std::string
GetLongitudeString(double longitude,
DegreeStringType type = DegreeStringType::Decimal);
} // namespace common
} // namespace scwx