Files
qt5-legatus-legacy/Lts/Viewer/SituationMap/Map/coord_translation_functor.h
T
2026-08-13 18:33:10 +02:00

89 lines
2.6 KiB
C++
Executable File

/**
* @RDE_HEADER@
* Interface-Implementation of Map
* $Id$
* $HeadURL$
* $Author$
*/
#pragma once
// Own
#include "situation_map_types.h"
// ESRI
// Qt
#include <QString>
namespace Esri
{
namespace ArcGISRuntime
{
class Point;
}
}
namespace SituationMap
{
/**
* @brief The CoordTranslationFunctor is a base class translating between
* the GeographicCoordinats (WGS84 - EPSG:4326) and the
* EsriMap working on map coordinates.
*
* Forward (geographicToMap):
* Geo (lon, lat) to map.
*
* Backward (mapToGeographic):
* Map to Geo (lon, lat).
*/
class CoordTranslationFunctor
{
public:
/*! \name Construction, Destruction */
//@{
explicit CoordTranslationFunctor() = default; ///< Contructor
virtual ~CoordTranslationFunctor() = default; ///< Destructor
//@}
/*! \name Complete translation */
//@{
Q_REQUIRED_RESULT virtual QPointF geographicToMap(const double lon, const double lat) const = 0; ///< Forward: geographic coord to mapCoord, in radian
Q_REQUIRED_RESULT virtual QPointF mapToGeographic(const double x, const double y) const = 0; ///< Backward: mapCoord to geographic Coord
Q_REQUIRED_RESULT virtual QPointF geographicToMap(const QPointF &coord) const = 0; ///< Forward: geographic coord to mapCoord
Q_REQUIRED_RESULT virtual QPointF mapToGeographic(const QPointF &coord) const = 0; ///< Backward: mapCoord to geographic Coord
Q_REQUIRED_RESULT virtual QPointF geographicToMap(const Esri::ArcGISRuntime::Point &coord) const = 0; ///< Forward: geographic coord to mapCoord
Q_REQUIRED_RESULT virtual QPointF mapToGeographic(const Esri::ArcGISRuntime::Point &coord) const = 0; ///< Backward: mapCoord to geographic Coord
Q_REQUIRED_RESULT virtual Point3D geographicToMap(const Point3D &point3D) const = 0; ///< Forward: geographic coord to mapCoord
Q_REQUIRED_RESULT virtual Point3D mapToGeographic(const Point3D &point3D) const = 0; ///< Backward: mapCoord to geographic Coord
Q_REQUIRED_RESULT virtual bool mapIsGeographic() const = 0;
virtual void geographicToUtm(const double referenceLon, QList<QPointF> &points) const = 0; ///< tanslate to proper utm coordinate system
virtual void utmToGeographic(const double referenceLon, QList<QPointF> &points) const = 0; ///< translate back to goegraphic coordiante system
//@}
/*! \name For statistic or tests */
//@{
virtual int projectionCounter() const = 0;
virtual void resetProjectionCounter() = 0;
//@}
};
//------------------------------------------------------------------------------
} // namespace SituationMap